Commit graph

5 commits

Author SHA1 Message Date
Andy Lo-A-Foe
07422a5403
fix(mcp): address PR review - clone maps, validate headers, add tests
- Clone header maps in WithMCPHeaders/MCPHeaders to prevent concurrent
  mutation (maps are shared across goroutines via context).
- Trim whitespace from header names extracted from InboundContext.Raw
  to prevent invalid HTTP header names.
- Add unit tests for headerTransport dynamic header injection:
  dynamic-only, dynamic-overrides-static, and no-dynamic passthrough.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-11 09:55:38 +02:00
Andy Lo-A-Foe
a01c0ec3af
feat(mcp): support per-request dynamic headers from channel context
Channels can now pass HTTP headers to MCP servers on a per-request basis
by storing keys with a "mcp:" prefix in InboundContext.Raw. This enables
forwarding bearer tokens from channel authentication to MCP tool calls.

The context flows: Channel → InboundContext.Raw["mcp:Authorization"]
→ toolshared.MCPHeaders(ctx) → headerTransport.RoundTrip → HTTP header.

SSE/HTTP transports now always use headerTransport (previously only when
static headers were configured) so dynamic headers work out of the box.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-11 09:55:38 +02:00
Hoshina
48d8952591 feat(agent): migrate tool prompts to capability slots 2026-04-24 19:36:46 +08:00
lc6464
743cd3602b
fix(tools): centralize shared LLM note constants 2026-04-17 14:31:43 +08:00
lc6464
4c133dc2d9
refactor(tools): reorganize tool packages and facades 2026-04-17 13:44:31 +08:00