MCP Server Builder
Search and retrieve MCP protocol and FastMCP framework documentation to help build correct MCP servers.
Search documentation using BM25-powered full-text search with relevance ranking across both MCP protocol specifications and FastMCP Python framework documentation
Filter searches by source to target only MCP protocol docs or only FastMCP framework docs
Get ranked results with contextual snippets showing relevant excerpts from documentation pages
Fetch full documentation pages by URL to access complete content including specifications, API references, tutorials, and examples
Find information about MCP architecture, core concepts, transports (stdio, HTTP), tools, resources, prompts, lifecycle, capabilities, error handling, and security
Learn FastMCP patterns including Python decorators, tool definitions with type hints, resource templates, prompt templates, and client integration
Access current documentation that always reflects the latest state from official llms.txt sources
Work with multiple clients including Claude Desktop, Windsurf, Kiro, and other MCP-compatible clients
Benefit from advanced search features like Porter stemming, n-gram indexing, stop word removal, and domain term preservation for highly relevant results
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Server Builderhow do I define tools in FastMCP?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server Builder
Model Context Protocol (MCP) server for searching MCP protocol and FastMCP documentation.
This MCP server helps you build correct MCP servers by providing searchable access to the official MCP specification and FastMCP framework documentation, always reflecting the current state of the protocol.
Features
BM25 Search — Advanced full-text search with Porter stemming and n-gram indexing
Stop Word Removal — 179 common English stop words filtered for better relevance
Domain Term Preservation — MCP-specific terms (
mcp,json,rpc,stdio) kept intactLazy Loading — Fast startup with on-demand content fetching
Always Current — Indexes live documentation from
llms.txtsources on startup
Related MCP server: Whoosh RAG MCP
Data Sources
The server indexes documentation from these curated llms.txt sources:
Source | Description |
Official MCP protocol specification | |
FastMCP Python framework documentation |
Prerequisites
Install
uvfrom AstralInstall Python 3.13 or newer using
uv python install 3.13
Installation
Configure in your MCP client:
{
"mcpServers": {
"mcp-server-builder": {
"command": "uvx",
"args": ["mcp-server-builder@latest"],
"disabled": false,
"autoApprove": []
}
}
}Config file locations:
Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.jsonWindsurf:
~/.codeium/windsurf/mcp_config.jsonKiro:
.kiro/settings/mcp.jsonin your project
Install from PyPI
# Using uv
uv add mcp-server-builder
# Using pip
pip install mcp-server-builderBasic Usage
Example prompts to try:
"How do I define tools in FastMCP?"
"What is the MCP lifecycle?"
"Show me stdio transport configuration"
"How to handle tool errors in MCP?"
"What are MCP resources and how do I use them?"
Available Tools
search_mcp_docs
Search MCP protocol AND FastMCP framework documentation with ranked results and snippets.
search_mcp_docs(query: str, k: int = 5, source: str | None = None) -> list[dict]Parameter | Type | Default | Description |
| str | required | Search query (e.g., "tool input schema", "stdio transport") |
| int | 5 | Maximum number of results to return |
| str | None | None | Optional filter: |
Returns: List of results with url, title, score, snippet, and source.
Examples:
# Search both sources
search_mcp_docs("how to define tools", k=3)
# Search only MCP protocol docs
search_mcp_docs("lifecycle", source="mcp")
# Search only FastMCP framework docs
search_mcp_docs("authentication", source="fastmcp")fetch_mcp_doc
Retrieve full documentation page content by URL from MCP protocol or FastMCP framework docs.
fetch_mcp_doc(uri: str) -> dictParameter | Type | Default | Description |
| str | required | Document URL (http/https from supported domains) |
Supported domains: modelcontextprotocol.io, gofastmcp.com
Returns: Dictionary with url, title, content, source (or error on failure).
Example:
# Fetch MCP protocol doc
fetch_mcp_doc("https://modelcontextprotocol.io/docs/concepts/tools")
# Fetch FastMCP framework doc
fetch_mcp_doc("https://gofastmcp.com/tutorials/tools")Workflow Example
Step 1: Search for relevant documentation
search_mcp_docs("FastMCP tool decorator", k=5)Step 2: Fetch full content of the most relevant result
fetch_mcp_doc("https://gofastmcp.com/tutorials/tools")Architecture
llms.txt URLs (MCP + FastMCP)
↓ startup
BM25 index with stemmed tokens + n-grams (titles only, fast)
↓ search request
Stem query → match unigrams/bigrams/trigrams → BM25 rank
↓ top-k
Lazy content hydration → snippet extraction
↓ response
{ url, title, score, snippet }Development
# Clone and install
git clone https://github.com/praveenc/mcp-server-builder.git
cd mcp-server-builder
uv sync --dev
source .venv/bin/activate
# Run tests
uv run pytest
# Run with MCP Inspector
npx @anthropic-ai/mcp-inspector uv run mcp-server-builder
# Linting and type checking
uv run ruff check src tests
uv run pyrightLicense
MIT - see LICENSE for details.
Contributing
Contributions welcome! Please open an issue or submit a pull request.
Support
For issues and questions, use the GitHub issue tracker
Available Tools
2 toolsfetch_mcp_docA
Fetch full document content by URL from MCP protocol or FastMCP framework docs.
Retrieves complete documentation content from URLs found via search_mcp_docs or provided directly. Works with both documentation sources:
Supported domains:
modelcontextprotocol.io - Official MCP protocol specification
gofastmcp.com - FastMCP Python framework documentation
Use this to get full documentation pages when search snippets aren't sufficient, including:
Complete protocol specifications and API references
Full tutorial and example code
Configuration, authentication, and deployment instructions
Args: uri: Document URI (http/https URLs from supported domains)
Returns: Dictionary containing: - url: Canonical document URL - title: Document title - content: Full document text content - source: Documentation source ("mcp" or "fastmcp") - error: Error message (only present if fetch failed)
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It transparently describes the operation (fetching content), supported sources, return structure, and error handling. It does not mention potential network delays or rate limits, but the tool's read-only nature and simple behavior are well-covered.
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 well-structured with sections, bullet points, and clear guidance. It is front-loaded with the core purpose. Minor redundancy in the bullet list could be trimmed, but overall it is readable and efficient.
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 simplicity (one required parameter, no annotations, output described), the description covers purpose, usage context, parameters, and return values adequately. It lacks details like authentication requirements or URL format validation, but these are not critical for a straightforward fetch tool.
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 coverage is 0%, so the description must compensate. It explicitly documents the 'uri' parameter, specifies supported domains, and implies it expects HTTP/HTTPS URLs. This adds meaningful context beyond the schema's bare type definition.
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 fetches full document content from specific domains (MCP and FastMCP), with a clear verb-resource pairing. It distinguishes itself from sibling 'search_mcp_docs' by indicating it retrieves full pages rather than snippets.
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 explains when to use the tool ('when search snippets aren't sufficient'), lists supported domains, and mentions that URLs can come from search results or be provided directly. It lacks an explicit 'when not to use' statement but strongly implies the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_mcp_docsA
Search MCP protocol AND FastMCP framework documentation with ranked results.
This tool searches across both documentation sources simultaneously:
MCP Protocol (modelcontextprotocol.io):
Official protocol specification and architecture
Transports (stdio, streamable HTTP)
Tools, Resources, and Prompts primitives
Lifecycle, capabilities negotiation, and security
FastMCP Framework (gofastmcp.com):
Python framework for building MCP servers
Decorators, type hints, and Pydantic integration
Authentication, deployment, and production patterns
Client SDK and cloud deployment
Use this to find documentation for building MCP servers with either approach.
Args: query: Search query string (e.g., "tool input schema", "stdio transport") k: Maximum number of results to return (default: 5) source: Optional filter - "mcp" for protocol docs only, "fastmcp" for framework docs only. If None, searches both sources.
Returns: List of dictionaries containing: - url: Document URL - title: Display title - score: Relevance score (higher is better) - snippet: Contextual content preview - source: Documentation source ("mcp" or "fastmcp")
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| k | No | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It explains that the tool searches two sources, returns ranked results, and allows filtering. It details the output format (url, title, score, snippet, source). No side effects are mentioned, but for a search tool, this is acceptable.
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 well-structured with bullet points and clear sections, front-loading the purpose. However, it is slightly verbose; a few sentences could be trimmed without losing meaning.
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 presence of an output schema, the description needn't explain return values, but it does. It covers all relevant aspects: purpose, parameters, sources, output format, and context of building MCP servers. Sibling tool existence is noted. The description is complete.
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 0%, so the description must compensate. It explains 'query' with examples, 'k' with default 5, and 'source' with available values. This adds substantial meaning beyond the raw schema.
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 searches MCP protocol and FastMCP framework documentation, distinguishing it from the sibling tool 'fetch_mcp_doc' which likely retrieves a specific document. The verb 'Search' and resource 'documentation' are precise.
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 gives explicit context: 'Use this to find documentation for building MCP servers...' and implies when not to use (fetch_mcp_doc). However, it lacks explicit 'when not to use' statement or direct alternative naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v1.0.0- Changed
search_mcp_docs1 field changed- added
Input schema / properties / sourceAdded value: +{ + "anyOf": [ + { + "enum": [ + "mcp", + "fastmcp" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Source" +}
2 tool updates
- First observed
fetch_mcp_doc - First observed
search_mcp_docs
TDQS
The two tools have clearly distinct purposes: search returns ranked snippets, fetch retrieves full document content. No overlap in functionality.
Both tools follow a consistent verb_noun pattern ('search_mcp_docs', 'fetch_mcp_doc'), making them predictable and easy to understand.
With only two tools, the server is lean but covers the core documentation retrieval workflow (search and fetch). The name 'MCP Server Builder' might imply broader functionality, but the tool set is appropriate for a focused documentation assistant.
The two tools cover the essential search and retrieve cycle for MCP documentation. A minor gap is the lack of a tool to list available documentation sections or browse structure, but the current set is functional with no dead ends.
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
MCP server for querying Forkast documentation
MCP server for developer documentation, generated by doc2mcp.
MCP server for opencode documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides comprehensive access to MCP documentation through structured guides, full-text search, and interactive development workflows for building servers and clients.337MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides full-text search over documentation using Whoosh, enabling AI assistants to find up-to-date, authoritative answers.MIT
- AlicenseNot gradedqualityAmaintenanceProvides a local MCP server for searching and retrieving documentation from 22+ open-source projects, enabling AI coding assistants to access up-to-date docs without network dependency.112MIT
- AlicenseAqualityDmaintenanceSearch and fetch MCP protocol documentation using BM25 search with weighted scoring and stemming.2482MIT
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/praveenc/mcp-server-builder'
If you have feedback or need assistance with the MCP directory API, please join our Discord server