MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

M
MCP Docs Server
作者 @praveenc

MCP server for searching Model Context Protocol documentation. BM25 search, auto-indexing, TypeScript. Works with Cursor, WindSurf, Claude Desktop, Kiro, and any MCP client.

创建于 12/26/2025
更新于 about 5 hours ago
Repository documentation and setup instructions

MCP Docs Server

A Model Context Protocol (MCP) server for searching MCP protocol documentation. Built with TypeScript using the official MCP SDK.

npm version MCP Registry

Features

  • BM25 Search - High-quality ranked search using BM25 algorithm with Porter stemming
  • Fast Startup - Indexes document titles at startup, fetches content on-demand
  • Markdown Aware - Weights headers, code blocks, and links for better relevance
  • stdio Transport - Runs as a local process for easy integration

Installation

Quick Start (Recommended)

Add to your MCP client configuration (Claude Desktop, Kiro, etc.):

{
  "mcpServers": {
    "mcp-docs-server": {
      "command": "npx",
      "args": ["-y", "@praveenc/mcp-docs-server"]
    }
  }
}

That's it! The server will be downloaded and run automatically.

Global Install

npm install -g @praveenc/mcp-docs-server

Then configure your MCP client:

{
  "mcpServers": {
    "mcp-docs-server": {
      "command": "mcp-docs-server"
    }
  }
}

Tools

search_mcp_docs

Search MCP protocol documentation with ranked results.

Parameters:

  • query (string, required): Search query string
  • k (number, optional): Maximum results to return (default: 5). Returns fewer if fewer documents match.

Example:

{
  "query": "transports",
  "k": 5
}

Returns:

[
  {
    "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/transports.md",
    "title": "Transports",
    "score": 15.725,
    "snippet": "MCP uses JSON-RPC to encode messages..."
  }
]

fetch_mcp_doc

Fetch full document content by URL.

Parameters:

  • uri (string, required): Document URL from modelcontextprotocol.io

Example:

{
  "uri": "https://modelcontextprotocol.io/specification/2025-11-25/server/tools.md"
}

Returns:

{
  "url": "https://modelcontextprotocol.io/specification/2025-11-25/server/tools.md",
  "title": "Tools",
  "content": "# Tools\n\nTools enable servers to expose executable functionality..."
}

Testing with MCP Inspector

npx @modelcontextprotocol/inspector npx -y @praveenc/mcp-docs-server

Development

Clone the repository for local development:

git clone https://github.com/praveenc/mcp-docs-server.git
cd mcp-docs-server
npm install

Commands

# Run in development mode
npm run dev

# Run tests
npm test

# Type check
npm run typecheck

# Build
npm run build

# Test with MCP Inspector (development)
npm run inspect:dev

Local MCP Client Config (Development)

{
  "mcpServers": {
    "mcp-docs-server": {
      "command": "npx",
      "args": ["tsx", "/path/to/mcp-docs-server/src/index.ts"]
    }
  }
}

Architecture

src/
├── index.ts          # MCP server entry point
├── config.ts         # Configuration
├── tools/
│   └── docs.ts       # search_mcp_docs, fetch_mcp_doc
└── utils/
    ├── cache.ts      # Document caching
    ├── doc-fetcher.ts # HTTP fetching & HTML parsing
    ├── indexer.ts    # BM25 search index
    ├── logger.ts     # Logging utilities
    ├── stopwords.ts  # Stop words list
    ├── text-processor.ts # Text utilities
    └── url-validator.ts  # URL validation

Search Algorithm

The search uses BM25 (Best Matching 25) with enhancements:

  • Porter Stemming - Matches word variants (e.g., "running" → "run")
  • Bigrams - Captures phrase matches (e.g., "tool input")
  • Weighted Scoring:
    • Title matches: 3-8x boost
    • Header matches: 4x weight
    • Code blocks: 2x weight
    • Link text: 2x weight
  • Domain Term Preservation - Technical terms like "mcp", "json", "stdio" are not stemmed

License

MIT

快速设置
此服务器的安装指南

安装包 (如果需要)

npx @modelcontextprotocol/server-mcp-docs-server

Cursor 配置 (mcp.json)

{ "mcpServers": { "praveenc-mcp-docs-server": { "command": "npx", "args": [ "praveenc-mcp-docs-server" ] } } }