fumadocs-mcp
Fumadocs MCP Server
An MCP (Model Context Protocol) server that provides AI tools with access to Fumadocs documentation. This makes it easier for AI assistants to help you integrate Fumadocs into your existing projects.
Features
Search documentation - Find relevant docs by keyword
Browse topics - Explore documentation sections
Fetch pages - Get full content of any documentation page
Setup guides - Get framework-specific installation instructions
Component docs - Get UI component documentation with props and examples
Related MCP server: Dedalus MCP Documentation Server
Installation
Using npx (recommended)
npx fumadocs-mcpGlobal installation
npm install -g fumadocs-mcp
fumadocs-mcpFrom source
git clone https://github.com/k4cper-g/fumadocs-mcp
cd fumadocs-mcp
npm install
npm run buildConfiguration
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"fumadocs": {
"command": "npx",
"args": ["fumadocs-mcp"]
}
}
}Or if installed from source:
{
"mcpServers": {
"fumadocs": {
"command": "node",
"args": ["/path/to/fumadocs-mcp/build/index.js"]
}
}
}Claude Code
The MCP will be automatically available when configured in Claude Desktop.
Available Tools
list_topics
Browse available documentation sections and topics.
Parameters:
- section (optional): "all" | "cli" | "headless" | "framework" | "mdx" | "ui"search_docs
Search documentation by keyword.
Parameters:
- query (required): Search query string
- section (optional): Filter to a specific sectionget_page
Fetch the full content of a documentation page.
Parameters:
- path (required): Documentation path (e.g., "/docs/manual-installation/next")get_setup_guide
Get a complete setup guide for adding Fumadocs to an existing project.
Parameters:
- framework (required): "next" | "react-router" | "tanstack-start" | "waku"
- includeUI (optional): Whether to include UI setup instructions (default: true)get_component
Get documentation for a specific UI component.
Parameters:
- component (required): Component name (e.g., "accordion", "tabs", "codeblock")Example Usage
Once configured, you can ask Claude things like:
"How do I add Fumadocs to my existing Next.js project?"
"Show me how to use the Tabs component in Fumadocs"
"Search for documentation about internationalization"
"What components are available in Fumadocs UI?"
Development
# Install dependencies
npm install
# Build
npm run build
# Run in development mode
npm run dev
# Test with MCP Inspector
npm run inspectorLicense
MIT
Available Tools
5 toolsget_componentC
Get documentation for a specific Fumadocs UI component. Includes props, usage examples, and configuration options. Available components: accordion, tabs, codeblock, steps, files, banner, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| component | Yes | Component name (e.g., 'accordion', 'tabs', 'codeblock', 'steps') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool returns (documentation including props, usage examples, and configuration options), which is helpful. However, it doesn't mention whether this is a read-only operation, if there are rate limits, authentication requirements, or error conditions. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences. The first sentence clearly states the purpose and scope, while the second provides examples and hints at additional components. There's minimal waste, though the phrase 'and more' could be slightly more specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no annotations, no output schema), the description is moderately complete. It covers the purpose and output content but lacks behavioral details like error handling or authentication. Without an output schema, it should ideally describe return values more explicitly, though it does mention 'props, usage examples, and configuration options'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'component' parameter clearly documented as 'Component name (e.g., 'accordion', 'tabs', 'codeblock', 'steps')'. The description adds value by listing additional component examples ('files, banner, and more') and specifying what documentation includes, but doesn't provide syntax or format details beyond what the schema already covers. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get documentation for a specific Fumadocs UI component.' It specifies the verb ('Get') and resource ('documentation for a specific Fumadocs UI component'), and lists examples of available components. However, it doesn't explicitly differentiate from sibling tools like 'get_page' or 'search_docs', which likely retrieve different types of documentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions available components but doesn't explain when to choose 'get_component' over sibling tools like 'get_page' (for page documentation), 'list_topics' (for topic listing), or 'search_docs' (for broader searches). No context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pageA
Fetch the full content of a specific Fumadocs documentation page. Provide the path (e.g., '/docs/manual-installation/next') to get detailed documentation.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Documentation path (e.g., '/docs/manual-installation/next' or '/docs/ui/components/tabs') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool fetches content but lacks details on permissions, rate limits, error handling, or response format. For a read operation with no annotation coverage, this is a significant gap in transparency about how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence and uses a second sentence to clarify the parameter usage, with no wasted words. It is appropriately sized for a single-parameter tool, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and parameter usage but lacks behavioral context like response details or error cases. For a read tool with no output schema, more information on what is returned would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'path' fully documented in the schema. The description adds minimal value by providing an example ('/docs/manual-installation/next') but does not explain semantics beyond what the schema already states, such as path formatting rules or constraints. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Fetch the full content') and resource ('a specific Fumadocs documentation page'), distinguishing it from siblings like 'list_topics' (which lists topics) and 'search_docs' (which searches). It explicitly mentions the type of content retrieved ('detailed documentation'), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to get detailed documentation' for a specific page), but it does not explicitly state when not to use it or name alternatives. For example, it doesn't clarify that 'get_component' might be for UI components or 'get_setup_guide' for setup instructions, leaving some ambiguity in sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_setup_guideA
Get a complete setup guide for adding Fumadocs to an existing project. Specify the framework (next, react-router, tanstack-start, or waku) to get framework-specific instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | Yes | The framework to get installation instructions for | |
| includeUI | No | Whether to include Fumadocs UI setup instructions (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation by using 'Get', but does not detail aspects like authentication requirements, rate limits, or output format. The description adds some context about framework-specific instructions but lacks comprehensive behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence and efficiently specifies the framework options in the second. Every sentence adds value without redundancy, making it appropriately sized and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema), the description is complete enough for basic usage but lacks details on behavioral aspects like error handling or output structure. It covers the what and how for parameters but does not fully compensate for the absence of annotations or output schema, leaving gaps in operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (framework and includeUI) with descriptions and enum values. The description mentions the framework parameter but does not add meaning beyond what the schema provides, such as explaining the implications of includeUI or default behaviors. Baseline 3 is appropriate as the schema handles most documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get a complete setup guide') and resource ('adding Fumadocs to an existing project'), distinguishing it from sibling tools like get_component or list_topics by focusing on installation instructions rather than content retrieval. It explicitly mentions the target frameworks, making the purpose distinct and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when needing setup instructions for Fumadocs integration with specified frameworks. However, it does not explicitly state when not to use it or name alternatives among sibling tools, such as using search_docs for general documentation queries instead of setup guides.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_topicsA
Browse available Fumadocs documentation sections and topics. Use without parameters to see all sections, or specify a section to see all topics in that section.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | Section to list topics from, or 'all' for overview |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool's behavior: browsing sections and topics, with optional filtering by section. However, it lacks details on output format, pagination, error handling, or performance characteristics. For a read-only tool, this is adequate but not comprehensive, earning a baseline score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured in two sentences. The first sentence states the purpose, and the second provides usage instructions. Every word earns its place with no redundancy or fluff, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter, no output schema, no annotations), the description is complete enough for basic use. It covers purpose and usage but lacks details on output format or behavioral nuances. For a simple browsing tool, this is minimally viable but could be enhanced with more context about what the output looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'section' parameter fully documented via enum values. The description adds minimal value beyond the schema, only mentioning that using no parameters shows all sections and specifying a section shows topics in that section. This aligns with the schema but doesn't provide additional semantic context, resulting in the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Browse available Fumadocs documentation sections and topics.' It specifies the verb ('browse') and resource ('documentation sections and topics'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'search_docs' or 'get_page', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: 'Use without parameters to see all sections, or specify a section to see all topics in that section.' This explains when to use the tool with or without parameters. However, it doesn't mention when to use this tool versus alternatives like 'search_docs' or 'get_page', which would be needed for a score of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsB
Search Fumadocs documentation by keyword. Returns matching documentation pages with titles, descriptions, and paths. Use this to find specific topics or features.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query to find in documentation | |
| section | No | Filter results to a specific documentation section |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions what the tool returns (pages with titles, descriptions, paths) but lacks details on behavioral traits such as pagination, rate limits, authentication needs, error handling, or whether it's a read-only operation. For a search tool with no annotations, this leaves significant gaps in understanding how it behaves beyond the basic output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: two sentences that efficiently state the purpose and usage without waste. The first sentence covers the action and output, and the second provides usage context. Every sentence earns its place, making it front-loaded and easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the context: no annotations, no output schema, 2 parameters with full schema coverage, and sibling tools present, the description is moderately complete. It explains the core functionality but lacks details on behavioral aspects (e.g., how results are formatted, limitations) and doesn't fully differentiate from siblings. For a search tool, this is adequate but has clear gaps in providing a full picture for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear descriptions for both parameters ('query' and 'section'), including an enum for 'section'. The description doesn't add any semantic details beyond what the schema provides (e.g., it doesn't explain query syntax or section meanings further). According to the rules, with high schema coverage (>80%), the baseline is 3 even without param info in the description, which fits here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search Fumadocs documentation by keyword' with the verb 'search' and resource 'documentation'. It specifies what it returns ('matching documentation pages with titles, descriptions, and paths'), making the purpose clear. However, it doesn't explicitly distinguish this tool from sibling tools like 'get_page' or 'list_topics', which might also retrieve documentation content, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance: 'Use this to find specific topics or features' suggests it's for keyword-based searching rather than direct retrieval. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_page' (which might fetch a specific page by path) or 'list_topics' (which might list topics without searching). No exclusions or clear alternatives are mentioned, so the guidance is basic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: get_component retrieves UI component details, get_page fetches full page content, get_setup_guide provides framework-specific setup instructions, list_topics browses documentation sections, and search_docs performs keyword searches. There is no overlap in functionality, making tool selection straightforward for an agent.
All tool names follow a consistent verb_noun pattern with snake_case: get_component, get_page, get_setup_guide, list_topics, and search_docs. The verbs (get, list, search) are appropriately descriptive and uniform, creating a predictable and readable naming convention throughout the set.
With 5 tools, the server is well-scoped for its purpose of accessing Fumadocs documentation. Each tool serves a specific and necessary function (e.g., retrieving components, pages, setup guides, browsing topics, and searching), with no redundancy or missing core operations, making the count ideal for the domain.
The tool set provides complete coverage for documentation access: it supports retrieving specific components and pages, getting setup instructions, browsing topics, and searching. This covers all typical user workflows (lookup, navigation, and discovery) without obvious gaps, ensuring agents can handle common documentation tasks effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for agentverse documentation, generated by doc2mcp.
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to access up-to-date documentation for Python libraries like LangChain, LlamaIndex, and OpenAI through dynamic fetching from official sources.1MIT
- AlicenseAqualityDmaintenanceAn MCP server that serves documentation and enables AI-powered search, Q\&A, and document analysis for developer tools and guides.54MIT
- AlicenseNot gradedqualityAmaintenanceSelf-hosted MCP server that indexes documentation from various sources and makes it searchable by AI assistants via the Model Context Protocol and REST API.18975Apache 2.0
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides tools for retrieving and processing documentation through vector search, enabling AI assistants to augment their responses with relevant documentation context.17MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/k4cper-g/fumadocs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server