MCP · read-only · provenance-backed

Reviewed engineering guidance for coding agents.

chatctx is a hosted knowledge base served over the Model Context Protocol. Agents ask an implementation question and get concise guidance that a human owner reviewed, with applicability, caveats, verification checks, and source links. Nothing is published unreviewed, and no generative model touches the retrieval path.

Endpoint: https://chatctx-mcp.brackket.workers.dev/mcp · Streamable HTTP · stateless

Built for agents, not for clicks

This site ships the same documentation in machine-readable form. No JavaScript, no cookie banner, no layout that hides the payload. Fetch what your context window needs.

/llms.txt

The compact index: what chatctx is, where the endpoint lives, and links to everything else.

/llms-full.txt

Complete documentation in one plain-text file, sized for a single tool-call context.

/docs.md

Markdown reference for the tools, arguments, response shapes, and failure modes.

/api.json

JSON Schemas for every tool input, plus limits, error codes, and privacy guarantees.

/agent-instructions.md

Drop-in instructions describing when an agent should call chatctx and when it should not.

/mcp.json

Client configuration snippet for MCP-capable editors and agent runtimes.

Quickstart

  1. Get a key. Keys look like kb_live_… and are issued by the owner. Anonymous guest access is also enabled on the production endpoint with a daily per-IP quota, so you can try the tools with no credentials.
  2. Initialize the session. The endpoint is stateless; every request carries the bearer token and its own JSON-RPC envelope.
    curl -sS https://chatctx-mcp.brackket.workers.dev/mcp \
      -H "Authorization: Bearer $CHATCTX_KEY" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json, text/event-stream" \
      -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
           "params":{"protocolVersion":"2025-06-18","capabilities":{},
                     "clientInfo":{"name":"my-agent","version":"1.0.0"}}}'
  3. Ask a real question. Send notifications/initialized, then call tools/call.
    -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
         "params":{"name":"search_knowledge",
                   "arguments":{"query":"React list rows keep the wrong state after reordering",
                                "technologies":["React"],"max_results":3}}}'
  4. Read the guidance. Results include a recommendation, applicability, pitfalls, verification checks, and sources. Call get_guidance with the returned slug when you need the full record.

Responses are SSE-framed (event: message plus a data: line) even for single JSON-RPC replies, so parse the data line rather than the whole body.

Tools

Tool Purpose Bound
search_knowledge Hybrid text + vector retrieval over approved guidance. 1–10 results, 200–5,000 token budget
get_guidance Full record for one or more slugs or ids from a search. 1–10 records per call
submit_feedback Anonymous signal that guidance was helpful, wrong, stale, or missing. 1,000-character comment

There are no write tools for content, no repository access, and no code upload. Retrieval is read-only; feedback is the only public write.

Why the answers are trustworthy

Limits and behaviour

Query
2–2,000 characters. Up to 10 technology filters, each 80 characters.
Results
1–10 per call, default 5. Token budget 200–5,000, default 2,500.
Retrieval mode
hybrid, keyword_fallback, or no_match. Degraded responses carry degraded: true and a reason.
Auth failures
401 invalid or revoked key, 429 daily quota exhausted with Retry-After, 403 host or origin rejected, 406 missing SSE Accept value.
Guest access
Enabled on production with 250 tool calls per IP per UTC day. Anonymous requests never fall through when a bearer token is present but invalid.

Connect a client

Any MCP client that supports Streamable HTTP works. A minimal configuration:

{
  "servers": {
    "chatctx": {
      "type": "http",
      "url": "https://chatctx-mcp.brackket.workers.dev/mcp",
      "headers": { "Authorization": "Bearer ${input:chatctx-key}" }
    }
  }
}

See docs for the full argument reference and response schema, or fetch /llms-full.txt to hand the whole contract to a model in one request.