godot-docs-mcp
Serves the Godot Engine documentation to AI coding agents, grounding them with accurate APIs, exact signatures, and code examples to reduce hallucinations.
README
godot-docs-mcp
An MCP server that serves the Godot Engine documentation to AI coding agents.
Godot is under-represented in LLM training data relative to Unity and Unreal, so agents routinely hallucinate GDScript APIs, invent node names, and apply Godot 3.x idioms to 4.x projects. This server grounds them in the real docs: full-text search over the manual and tutorials, plus a structured class reference built from the engine's own API metadata.
Built on MCP specification revision 2026-07-28 via the official
mcp Python SDK v2, which also serves
every earlier protocol revision from the same server.
Status: in development. The server, its tools and resources, the command line, and the weekly workflow that publishes the index all work, and a prebuilt index for Godot 4.7 is published, so
syncinstalls one without a build. Not on PyPI yet — install from git, as below. Packaging as a Claude Code plugin, with skills, is a later phase.
How it works
The documentation is indexed offline into a single SQLite database, so lookups are fast and work without a network connection.
| Content | Source | Why |
|---|---|---|
| Manual, tutorials, getting started | godotengine/godot-docs .rst |
The authored prose |
| Class reference | godotengine/godot doc/classes/*.xml |
Structured and typed — the .rst class pages are generated from these, so the XML gives exact signatures rather than prose |
docs.godotengine.org sits behind a Cloudflare challenge that rejects non-browser clients,
so the rendered site is not used as a source. Everything comes from GitHub.
Getting started
Install the prebuilt index. It is one download of about 8 MB, and it only has to happen once per Godot version.
uvx --from git+https://github.com/mcintalmo/godot-docs-mcp godot-docs-mcp sync
uvx --from git+https://github.com/mcintalmo/godot-docs-mcp godot-docs-mcp status
Then point a client at it. For Claude Code:
claude mcp add godot-docs -- \
uvx --from git+https://github.com/mcintalmo/godot-docs-mcp godot-docs-mcp
No index published for the version you want, or working on the parsers? Build one from
source instead. That needs git and takes about a minute:
uvx --from git+https://github.com/mcintalmo/godot-docs-mcp godot-docs-mcp sync --rebuild
Ask something a model reliably gets wrong — "what's the correct 4.x signature for
move_and_slide?" — and the answer should come back from get_godot_class_member as
bool move_and_slide(), with no arguments. It took several in Godot 3.x, which is what most
training data remembers.
Commands
| Command | Purpose |
|---|---|
godot-docs-mcp |
Serve over stdio. This is what a client launches; serve is the default |
godot-docs-mcp sync |
Download a prebuilt index. --rebuild builds one from source instead |
godot-docs-mcp status |
What is indexed, what it was built from, and whether it has fallen behind. --json for a script |
godot-docs-mcp search "how do I make a character jump" |
Run a query through the same code the tools use, and print the ranking |
godot-docs-mcp package |
Write the release assets for the installed index. For the build workflow |
Every setting is also an environment variable, prefixed GODOT_DOCS_MCP_ — see
config.py for the full table.
Staying current
The documentation moves without warning, so two things track it independently.
A weekly workflow checks whether the upstream commits
have moved, and if they have, rebuilds the index, queries the whole corpus to confirm it
answers, and publishes it as a release asset. godot-docs-mcp sync is how that reaches you.
A running server checks once a day, in the background, whether a newer index has been
published. It never downloads one — an index that lags still answers correctly for the
version it was built from, and replacing it is your call. What it does instead is say so:
in godot://status, and as a one-line notice on search results. If the check cannot run,
the answer is "could not check", never "up to date".
Tools
Every tool is read-only, and every response is capped so that one call cannot crowd out the conversation it was meant to inform. A response that was cut says so, and names the call that returns the rest.
| Tool | Purpose |
|---|---|
search_godot_docs |
Ranked search across the manual, tutorials, and class reference. Questions in plain words work |
fetch_godot_doc |
A page, or a single section of one |
get_godot_class |
Inheritance chain plus a signature map for a class — no prose, so a 300 KB class entry stays answerable |
get_godot_class_member |
Exact signature and full description for one member |
search_godot_code_examples |
GDScript and C# snippets, with the page and heading they came from |
Resources
| URI | Content |
|---|---|
godot://status |
Indexed version, counts, and the upstream commits it was built from |
godot://index |
A map of the corpus: what it holds, how it is addressed, which tool to call |
godot://doc/{path}, godot://doc/{path}#{anchor} |
A page, or one section of it |
godot://class/{name}, godot://class/{name}#{member} |
A class, or one member of it |
The 515 pages and 1,078 classes are deliberately not enumerated in resources/list.
The templates are the URIs every tool already returns, so a search hit can be followed by
the host without a further tool call.
Development
Requires uv.
uv sync --dev
uv run pre-commit install
| Command | Purpose |
|---|---|
uv run pytest |
Unit suite (hermetic — no network) |
uv run pytest -m slow |
Integration tests against a real index |
uv run ruff check --fix && uv run ruff format |
Lint and format |
uv run ty check |
Type check |
uv run pre-commit run --all-files |
Everything the CI lint job runs |
See CLAUDE.md for the architecture and contribution conventions.
License
MIT. The Godot documentation itself is licensed CC BY 4.0 by Juan Linietsky, Ariel Manzur and the Godot community; this project redistributes an indexed form of it and does not alter that license.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.