fabric-docs-mcp

fabric-docs-mcp

MCP server that provides LLM coding agents with version-pinned Fabric modding documentation, including search, page reading, and a curated built-ins index to encourage idiomatic code.

Category
访问服务器

README

fabric-docs-mcp

An MCP server that exposes version-pinned Fabric modding documentation to LLM coding agents. Its goal is to stop agents from writing non-idiomatic code by giving them the actual current Fabric docs, scoped to the exact Minecraft version you develop on.

  • Search + read the official Fabric docs (prose tutorials, code includes resolved into the pages).
  • Version-pinned: docs are indexed per Minecraft version, so an agent pinned to 26.1.2 won't pull 26.1 or 1.21 guidance.
  • Built-ins index: a curated per-category checklist of extension points and idiomatic patterns, so the model checks for the existing path (e.g. vanilla's Oxidizable interface) before reinventing it.

No decompilation, no mappings, no obfuscated-source scraping. Surface level only.

License note: the docs come from FabricMC/fabric-docs, licensed CC BY-NC-SA 4.0 (NonCommercial). This tool reads them from a local clone at runtime and does not redistribute them. See NOTICE.

Requirements

  • uv
  • git
  • A working clone of the Fabric docs repo (see setup below)

Quick start

# 1. install/enter the project
cd fabric-docs-mcp
uv sync --extra dev

# 2. clone the docs and pick a Minecraft version (one-time)
uv run fabric-docs-mcp setup

# 3. run the server over stdio (or configure it in your MCP client)
uv run fabric-docs-mcp serve

setup is interactive: it asks where to clone the Fabric docs (default: under your user config dir), clones it if needed, and asks which Minecraft version to target. It writes a config file, so serve works with no flags afterwards.

Switching Minecraft versions

uv run fabric-docs-mcp switch --version 26.2

switch validates that the version exists in the docs clone, updates the config, and reminds you to git pull in the docs repo to fetch the latest docs.

Config precedence

Settings resolve in this order (highest wins):

  1. CLI flags (serve --repo-dir X --version Y)
  2. Environment variables (FABRIC_DOCS_DIR, FABRIC_DOCS_VERSION)
  3. The config file written by setup
  4. Built-in defaults

The config file lives in your user config directory (e.g. ~/.config/fabric-docs-mcp/config.json or %APPDATA%\fabric-docs-mcp\config.json) — never in the project, so the tool doesn't assume a fixed repo layout and nothing machine-specific is committed.

Refreshing docs

cd /path/to/your/fabric-docs-clone && git pull

Then restart the server. New pages are picked up on next start.

Tools & resources

Kind Name Purpose
Tool search_docs BM25 search over the pinned version's docs, returns ranked hits with snippets
Tool get_doc Full markdown of a page by slug
Tool list_pages List pages, optional category filter
Tool list_categories Doc categories with page counts
Tool get_builtins Curated built-ins / idiom checklist (per category)
Tool version_info Pinned version + versions available on disk
Resource fabric-doc://{+slug} Full markdown of a doc page
Resource fabric-doc://builtins Curated built-in extension points

The version guard keeps every answer scoped to the pinned Minecraft version.

Wiring into an MCP client

Most clients use a mcpServers config with a command. With fabric-docs-mcp installed (or run via uv), example:

{
  "mcpServers": {
    "fabric-docs": {
      "command": "uv",
      "args": ["run", "fabric-docs-mcp", "serve"],
      "cwd": "<path-to-this-project>"
    }
  }
}

Development

uv sync --extra dev
uv run pytest -v          # unit + integration tests
uv run --with mypy mypy src/fabric_docs_mcp/   # type check

The integration tests spawn the real server over stdio and talk JSON-RPC to it, exactly like a real MCP client. They skip automatically if no Fabric docs clone is found (set FABRIC_DOCS_DIR to point at one). In CI, the workflow clones the docs so the integration tests actually run.

Keeping the built-ins index honest

src/fabric_docs_mcp/builtins.py is the anti-slop surface that needs the most human care. When you notice an agent reinventing something a Fabric API hook or vanilla interface already covers, add it there. Treat it as a living checklist, not a fixed file.

License

The project code is MIT. The Fabric documentation content it reads is CC BY-NC-SA 4.0 (see NOTICE).

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选