MD

mosif16/doc-mcp

Developer tools
11 stars 3 forks Quality 60 Trend 8MIT

A Model Context Protocol (MCP) server written in Rust that provides seamless access to developer documentation from multiple sources directly within your AI coding assistant.

Overview

A Model Context Protocol (MCP) server written in Rust that provides seamless access to developer documentation from multiple sources directly within your AI coding assistant. Build the Rust binary (requires Rust 1.76+): The server exposes a single unified query tool that automatically detects the appropriate provider and returns comprehensive documentation. Simply describe what you're looking for: The query tool automatically routes to the correct provider based on keywords: - : SwiftUI, UIKit, iOS, macOS, Foundation, CoreData, etc. - : std, tokio, serde, HashMap, Vec, async, etc. - : bot, sendMessage, getUpdates, webhook, etc. - : blockchain, wallet, jetton, tonapi, etc. - : confidential computing, TDX, attestation, etc. - : JavaScript, JS, DOM, fetch, promise, array, etc. - : hook, useState, useEffect, component, JSX, etc. - : nextjs, App Router, server component, etc. - : nodejs, fs, path, http, stream, etc. - : mlx, mlxarray, mlxnn, apple silicon, ml-explore, etc.

README

Multi-Provider Documentation MCP Server

A Model Context Protocol (MCP) server written in Rust that provides seamless access to developer documentation from multiple sources directly within your AI coding assistant.

Supported Documentation Providers

Provider Description Technologies
Apple iOS/macOS development SwiftUI, UIKit, Foundation, CoreML, Vision, and 60+ frameworks
Rust Rust documentation std, core, alloc + any crate from docs.rs
Telegram Bot API documentation Methods, types, and parameters
TON Blockchain API REST endpoints and schemas
Cocoon Confidential computing Architecture and smart contracts
MDN Web development JavaScript, TypeScript, Web APIs, DOM
Web Frameworks Frontend/Backend React, Next.js, Node.js
MLX Apple Silicon ML MLXArray, MLXNN, MLXOptimizers (Swift & Python)
Hugging Face LLM/AI development Transformers, swift-transformers, model cards

Quick Start

Build the Rust binary (requires Rust 1.76+):

cargo build --release

Configure your MCP client:

{
  "mcpServers": {
    "docs-mcp": {
      "command": "/absolute/path/to/target/release/docs-mcp-cli"
    }
  }
}

For local development:

cargo run -p docs-mcp-cli

Usage

The server exposes a single unified query tool that automatically detects the appropriate provider and returns comprehensive documentation.

Natural Language Queries

Simply describe what you’re looking for:

query { "query": "SwiftUI NavigationStack" }
query { "query": "Rust tokio spawn async" }
query { "query": "Telegram sendMessage parameters" }
query { "query": "JavaScript Array map filter" }
query { "query": "React useState hook" }
query { "query": "Next.js server components" }
query { "query": "Node.js fs readFile" }

How-To Queries

Ask implementation questions:

query { "query": "how to use SwiftUI NavigationStack" }
query { "query": "how to implement tab navigation in SwiftUI" }

Provider Auto-Detection

The query tool automatically routes to the correct provider based on keywords:

  • Apple: SwiftUI, UIKit, iOS, macOS, Foundation, CoreData, etc.
  • Rust: std, tokio, serde, HashMap, Vec, async, etc.
  • Telegram: bot, sendMessage, getUpdates, webhook, etc.
  • TON: blockchain, wallet, jetton, tonapi, etc.
  • Cocoon: confidential computing, TDX, attestation, etc.
  • MDN: JavaScript, JS, DOM, fetch, promise, array, etc.
  • React: hook, useState, useEffect, component, JSX, etc.
  • Next.js: nextjs, App Router, server component, etc.
  • Node.js: nodejs, fs, path, http, stream, etc.
  • MLX: mlx, mlxarray, mlxnn, apple silicon, ml-explore, etc.
  • Hugging Face: huggingface, transformers, automodel, autotokenizer, etc.

What You Get

For each query, the tool returns:

  • Full documentation content (not truncated summaries)
  • Code examples ready to use
  • Declarations/signatures for API reference
  • Parameters with descriptions
  • Platform availability information
  • Related APIs for further exploration

Provider-Specific Examples

Apple (SwiftUI, UIKit, etc.)

query { "query": "SwiftUI Button styling" }
query { "query": "UIKit TableView delegate" }
query { "query": "CoreData fetch request" }

Rust

query { "query": "Rust HashMap insert" }
query { "query": "tokio spawn async task" }
query { "query": "serde serialize struct" }

Telegram Bot API

query { "query": "telegram sendMessage" }
query { "query": "telegram bot webhook" }
query { "query": "telegram inline keyboard" }

TON Blockchain

query { "query": "TON wallet address" }
query { "query": "TON jetton transfer" }

Cocoon

query { "query": "Cocoon TDX attestation" }
query { "query": "Cocoon confidential computing" }

MDN Web Docs

query { "query": "JavaScript Array map" }
query { "query": "fetch API POST request" }
query { "query": "Promise async await" }
query { "query": "DOM querySelector" }

React

query { "query": "React useState hook" }
query { "query": "React useEffect cleanup" }
query { "query": "React useContext provider" }
query { "query": "React memo performance" }

Next.js

query { "query": "Next.js server components" }
query { "query": "Next.js App Router layout" }
query { "query": "Next.js API routes" }
query { "query": "Next.js middleware" }

Node.js

query { "query": "Node.js fs readFile" }
query { "query": "Node.js http server" }
query { "query": "Node.js path join" }
query { "query": "Node.js stream pipe" }

MLX (Apple Silicon ML)

query { "query": "MLX array operations Swift" }
query { "query": "MLX neural network layers" }
query { "query": "mlx.core array Python" }
query { "query": "MLX optimizers SGD" }

Hugging Face

query { "query": "Hugging Face AutoModel" }
query { "query": "transformers AutoTokenizer" }
query { "query": "swift-transformers Hub" }
query { "query": "Hugging Face pipeline" }

Search Tips

  • Use natural language queries for best results
  • Include the technology name for precise matching (e.g., “SwiftUI Button” not just “Button”)
  • Try how-to queries for implementation guidance
  • Use maxResults parameter to control result count

Environment Variables

Variable Purpose
DOCSMCP_CACHE_DIR Override disk cache location
DOCSMCP_HEADLESS Set to 1 to skip stdio transport (testing)
RUST_LOG Control logging (info, debug, trace)

Architecture

├── apps/cli/                    # CLI entry point
├── crates/
│   ├── docs-mcp-client/         # Apple documentation API client
│   ├── docs-mcp-core/           # MCP tools, state, services
│   ├── docs-mcp/                # MCP protocol bootstrap
│   └── multi-provider-client/   # All provider clients
│       ├── telegram/            # Telegram Bot API
│       ├── ton/                 # TON Blockchain
│       ├── cocoon/              # Cocoon confidential computing
│       ├── rust/                # Rust std + docs.rs
│       ├── mdn/                 # MDN Web Docs
│       ├── web_frameworks/      # React, Next.js, Node.js
│       ├── mlx/                 # MLX Apple Silicon ML
│       └── huggingface/         # Hugging Face Transformers

Development

# Build
cargo build --release

# Run tests
cargo test

# Lint
cargo clippy --all-targets

# Test MCP handshake and query tool
printf '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}\n{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}\n{"jsonrpc":"2.0","method":"tools/call","params":{"name":"query","arguments":{"query":"SwiftUI Button"}},"id":2}\n' | ./target/release/docs-mcp-cli

License

See LICENSE file for details.

View the full README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide New to MCP? Start with the mcpskill.org guide →

Configuration

{ "mcpServers": { "docs-mcp": { "command": "/absolute/path/to/target/release/docs-mcp-cli" } } }