Skip to content

AI Developer Toolkit MCP Server

The AI Developer Toolkit MCP server is a public, read-only Model Context Protocol endpoint at https://developertoolkit.ai/mcp. It exposes every English and Polish guide on this site through two tools, search and fetch, over Streamable HTTP. It needs no account and no API key, and it only reads documentation: it cannot touch your repository.

This page is for developers who want their agent to check a workflow against a written guide before acting, and for tech leads who want the whole team’s agents reading the same source. The situation it fixes: you ask Claude Code for a pre-commit hook, and it confidently uses a setting that was renamed two releases ago. You find out when the commit goes through unchecked. A documentation server moves that check to before the agent writes anything. If MCP servers and transports are new to you, start with the introduction to Model Context Protocol.

  • A one-line install for Claude Code, Codex and Cursor, and a command that proves the connection works.
  • Three copy-paste prompts that make the agent search, fetch and cite a guide before it plans or edits.
  • A way to verify that the agent really used the guide, without re-reading its whole answer.
  • The traps: what is logged, why a Polish query can return an English article, and what breaks per client.

The endpoint is hosted, so there is nothing to install and no local process to keep running. There is no OAuth step: the server serves the same public documentation to everyone.

  1. Register the server under the name dtk in your client.

    Run in a terminal. --scope user makes the server available in every project; leave it out for the current project only (the default scope is local), or use --scope project to write a shared .mcp.json for the team.

    Terminal window
    claude mcp add --transport http --scope user dtk https://developertoolkit.ai/mcp
  2. Confirm the client sees the server.

    Terminal window
    claude mcp get dtk

    The command health-checks the server. A server added with --scope project shows as pending approval until you approve it in a session.

  3. Ask one question that forces a tool call, such as the first prompt below, and check the transcript for a search call to dtk followed by a fetch.

To try the server without configuring a client, open the MCP demo page. A browser that opens https://developertoolkit.ai/mcp directly is redirected there too.

search takes a query of up to 1,024 characters and returns at most 10 ranked results. Each result carries a snippet (the article’s description), not the article text:

{ "results": [{ "id": "en/claude-code/automate/hooks-automation", "title": "...", "url": "https://developertoolkit.ai/...", "snippet": "...", "lang": "en" }] }

fetch takes an id from those results and returns the whole article as Markdown, with metadata naming the language, the section, the lastUpdated date, and a gated flag. gated only reports whether the page sits behind the subscription on the website; the tool returns the full text either way. An unknown id comes back as a tool error that tells the model to call search first.

Both tools are annotated read-only. Each result is returned twice, as structuredContent and as JSON in the text content, so a client that reads only one of the two still gets the canonical URL it needs for a citation.

Use the docs server inside a plan, build and verify loop

Section titled “Use the docs server inside a plan, build and verify loop”

The server earns its place at two points: while the agent plans, so the plan follows a written procedure, and while you verify, so a claim in the output can be traced to a dated page. A search that the agent runs after it has already written the code only decorates the answer.

How to check that the agent actually used the guide

Section titled “How to check that the agent actually used the guide”

You do not need to read the agent’s whole answer to know whether it followed the documentation. Check these four things instead:

  1. The tool calls exist. The transcript shows a search and a fetch on dtk before the first file edit. An answer that cites a guide with no fetch in the transcript came from the model’s memory.
  2. The citation is real. The URL and lastUpdated in the answer match what fetch returned. Open one cited URL; a paraphrase with no URL does not count.
  3. The installed CLI wins. Guides are dated. When a guide and claude --help or codex --help disagree about a flag, the binary on your machine is authoritative, which is why the first prompt tells the agent to stop on a mismatch.
  4. The result passes a gate. A hook is proven by a commit it should block; a plan by its UNSOURCED list being empty or approved; config by the client connecting. The developer who merges signs off on the change. The tech lead signs off on any shared .mcp.json or .cursor/mcp.json entry.

How search ranks results, and when a Polish query returns English

Section titled “How search ranks results, and when a Polish query returns English”

Ranking is field-weighted term matching with inverse document frequency. A term in the title scores 5, in a heading 2, and in the description 1, each multiplied by how rare the term is across the corpus. A query that appears verbatim in a title gets a 1.5× bonus. Rare words carry the score, so a Polish query built from Polish words matches Polish titles, and there is no language parameter to set.

The English and Polish versions of one article collapse into a single result, so one guide never takes two of the 10 slots. On a tie the English version wins. That matters when your Polish query consists only of English technical terms, such as Claude Code hooks: the English title matches at least as well, and English wins ties. Add a Polish word that appears in Polish titles (hooki Claude Code), or ask the agent to fetch the pl/ id instead.

Two tools with short schemas add little to the context window, and both Claude Code and Codex load MCP tools through tool search, so the definitions are not all loaded up front. The real cost is fetch: it returns a whole article. In the 2026-09-26 build, fetch on en/claude-code/automate/hooks-automation returns 11,866 bytes of Markdown (1,622 words), the median English article is about 11 KB, and the longest is about 83 KB. To see the token cost in your own session, run /context in Claude Code before and after a fetch. Ask for one article at a time rather than letting the agent fetch every search result.

The server is stateless: no account and no session state between calls. It is not unlogged. Every tool call is recorded in this site’s product analytics under an anonymous ID, with the tool name, its arguments, the client’s user agent, and a location derived from the caller’s IP address. Treat a query like a public search: keep secrets, customer data and proprietary code out of it. The privacy policy covers the analytics.

When the dtk server fails to connect or answer

Section titled “When the dtk server fails to connect or answer”
SymptomCauseRecovery
Claude Code lists dtk as failed, other HTTP servers workA protocol-negotiation mismatch. Claude Code negotiates MCP spec 2026-07-28 with direct HTTP servers by defaultRetry with MCP_PROTOCOL_NEGOTIATION=legacy claude. If that connects, report the failure through the site’s contact page
claude mcp add succeeds but tools never appearThe server was added without --transport http, so Claude Code tried to launch the URL as a stdio commandclaude mcp remove dtk, then add it again with --transport http
The agent answers from memory and cites nothingThe prompt did not require a tool call, or tool search did not surface dtkName the server in the prompt (“use the dtk MCP server”) and require a URL plus lastUpdated in the answer
fetch returns “Unknown document id”The agent built an id by hand instead of taking one from searchTell it to call search first and pass the returned id unchanged
Results are in the wrong languageA query of English technical terms matched both versions, and English wins tiesAdd a word in the target language, or fetch the pl/ or en/ id directly
A corporate network blocks the requestAn egress proxy does not allow developertoolkit.aiAllow the host, or fall back to /llms-full.txt as a local file

For errors that are not specific to this server, see MCP server connection issues.

When to use the docs server instead of llms-full.txt or Context7

Section titled “When to use the docs server instead of llms-full.txt or Context7”

The same text is published as /llms.txt (an index) and /llms-full.txt (every English article in one file, about 5.8 MB at the 2026-09-26 build), and /llms-full-pl.txt (every Polish article). The full file suits offline use or a one-off import. For a question during a session, it is the wrong tool: the agent would read megabytes to use one page. The MCP server returns ten snippets and then one article.

The server answers “how do I run this workflow with an agent”, not “what is the current API of this library”. For library and framework reference, pair it with a library documentation server such as Context7.

This site runs the server, so this page cites no adoption figure for it: as of 2026-09-26, no third-party source counts its users.