Files
LazyBearWorks/AGENTS.md

2.2 KiB

AGENTS.md

Scope

  • LazyBearWorks.sln builds exactly one project: LazyBear.MCP/. Libraries/Confluence/ is present in the repo but is not part of the solution and has no .csproj; ignore it unless the user explicitly asks for it.

Source Of Truth

  • Trust LazyBear.MCP/Program.cs and project config over README.md. The README describes Razor Pages/UI and a broader tool surface, but the current app only configures MCP HTTP transport and auto-registers tool classes from the assembly.

Entry Points

  • Main app entrypoint: LazyBear.MCP/Program.cs.
  • Live MCP tools are discovered via AddMcpServer().WithHttpTransport().WithToolsFromAssembly(). Current tool classes are under LazyBear.MCP/Services/Kubernetes/ and LazyBear.MCP/Services/Jira/ and use [McpServerToolType].
  • Do not assume Razor Pages are active just because Pages/ exists: Program.cs does not call AddRazorPages() or MapRazorPages().

Commands

  • Build from repo root: dotnet build
  • Build project directly: dotnet build "LazyBear.MCP/LazyBear.MCP.csproj"
  • Run from repo root: dotnet run --project "LazyBear.MCP"
  • MCP manual check: npx @modelcontextprotocol/inspector dotnet run --project LazyBear.MCP
  • There are no test projects in the solution right now; default verification is dotnet build, plus a focused run/inspector check for transport or tool-registration changes.

Runtime Quirks

  • LazyBear.MCP/Properties/launchSettings.json says http://localhost:5079, but the app actually listens on http://localhost:5000 because Program.cs hardcodes app.Run("http://localhost:5000").
  • SDK pin is in LazyBear.MCP/global.json (10.0.100), not at the repo root.

Config Gotchas

  • App config lives in LazyBear.MCP/appsettings.json.
  • Kubernetes:KubeconfigPath defaults empty. K8sClientFactory then tries the default kubeconfig, then in-cluster config.
  • Jira tools require Jira:Url; if it is empty, JiraClientFactory throws during provider setup. The app still starts because providers capture init errors and tools return those errors as strings.
  • Treat appsettings.json values as potentially sensitive; do not commit real Jira tokens or cluster-specific settings.