diff options
| author | Claude <noreply@anthropic.com> | 2026-05-25 04:57:37 +0000 |
|---|---|---|
| committer | Claude <noreply@anthropic.com> | 2026-05-25 04:57:37 +0000 |
| commit | e766b4c3ef13181ec6adf90ec4abe9db0129fab1 (patch) | |
| tree | 760b26fdd0342d1d41371d25a0950e83610ced13 /internal/config/config.go | |
| parent | 1ea57a7dbf4d34045a361e9bba9191de06cd1749 (diff) | |
feat(api): chatbot-facing MCP server for task orchestration (Phase 3)
Adds a chatbot-facing MCP server mounted at /chatbot/mcp, guarded by the shared
API bearer token (new config api_token, wired through SetAPIToken). Tools:
submit_task, list_tasks, get_task, get_events, answer_question, accept_task,
reject_task, cancel_task. submit_task creates and immediately queues a task,
resolving the repository URL from a named project when not given explicitly.
To keep the REST API and the MCP surface from drifting, the accept/reject/
cancel/answer operations are extracted into a shared service layer (taskops.go)
with typed errors mapped to REST status codes; the existing HTTP handlers now
delegate to it. The endpoint is only served when a token is configured and
presented as a bearer.
https://claude.ai/code/session_01SESwn7kQ7oP62trWw6pc39
Diffstat (limited to 'internal/config/config.go')
| -rw-r--r-- | internal/config/config.go | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go index 25187cf..94f3ec7 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -62,6 +62,7 @@ type Config struct { WebhookURL string `toml:"webhook_url"` WorkspaceRoot string `toml:"workspace_root"` WebhookSecret string `toml:"webhook_secret"` + APIToken string `toml:"api_token"` // shared bearer for web UI + chatbot MCP; empty disables both auth and the chatbot MCP endpoint Projects []Project `toml:"projects"` VAPIDPublicKey string `toml:"vapid_public_key"` VAPIDPrivateKey string `toml:"vapid_private_key"` |
