36 lines
2.2 KiB
Markdown
36 lines
2.2 KiB
Markdown
# 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.
|