多源开发文档查询服务

一个基于Rust编写的多源开发文档查询服务器,为AI编程助手提供无缝访问多个技术文档源的能力。

  • by mosif16
  • Rust
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 mosif16/Apple-Doc-Mcp

使用说明

多提供商文档MCP服务器

一个用Rust编写的模型上下文协议(MCP)服务器,可以直接在AI编码助手中从多个来源无缝访问开发人员文档。

支持的文档提供商

提供商 描述 技术
苹果 iOS/macOS开发 SwiftUI、UIKit、Foundation、CoreML、Vision和60多个框架
锈 Rust文档 std、core、alloc+docs.rs中的任何crate
电报 Bot API文档 方法、类型和参数
TON 区块链API REST端点和架构
茧 机密计算 架构和智能合约
MDN Web开发 JavaScript、TypeScript、Web API、DOM
web框架 前端/后端 React、Next.js、Node.js
MLX 苹果Silicon ML MLXArray、MLXNN、MLX优化器(Swift和Python)
拥抱脸 LLM/AI开发 变压器、快速变压器、模型卡

快速开始

构建Rust二进制文件(需要Rust 1.76+):

cargo build --release

配置您的MCP客户端:

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

对于当地发展:

cargo run -p docs-mcp-cli

用法

服务器公开了一个统一的 query 自动检测适当提供者并返回全面文档的工具。

自然语言查询

简单描述一下你在找什么:

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" }

如何查询

提出实施问题:

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

提供商自动检测

查询工具会根据关键字自动路由到正确的提供者:

  • 苹果:SwiftUI、UIKit、iOS、macOS、Foundation、CoreData等。
  • 锈:std、tokio、serde、HashMap、Vec、async等。
  • 电报:bot、sendMessage、getUpdates、webhook等。
  • TON:区块链、钱包、捷顿、tonapi等。
  • 茧:机密计算、TDX、认证等。
  • MDN:JavaScript、JS、DOM、fetch、promise、array等。
  • 反应:钩子、useState、useEffect、组件、JSX等。
  • Next.js:nextjs、应用路由器、服务器组件等。
  • Node.js:nodejs、fs、path、http、stream等。
  • MLX:mlx、mlxarray、mlxnn、苹果硅、mlexplore等。
  • 拥抱脸:拥抱面、变压器、汽车模型、自动加油机等。

所得

对于每个查询,该工具返回:

  • 完整的文档内容 (未截断摘要)
  • 代码示例 随时可用
  • 声明/签名 供API参考
  • 参数 附描述
  • 平台可用性 信息
  • 相关API 进一步探索

提供商特定示例

苹果(SwiftUI、UIKit等)

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

锈

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

电报机器人API

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

TON区块链

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

茧

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

MDN Web文档

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

反应

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(苹果硅ML)

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

拥抱脸

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

搜索提示

  • 使用自然语言查询以获得最佳结果
  • 包括技术名称以进行精确匹配(例如,“SwiftUI按钮”而不仅仅是“按钮”)
  • 尝试如何查询实施指南
  • 使用 maxResults 控制结果计数的参数

环境变量

变量 目的
DOCSMCP_CACHE_DIR 覆盖磁盘缓存位置
DOCSMCP_HEADLESS 设置为 1 跳过stdio传输(测试)
RUST_LOG 控制日志记录(info, debug, trace)

建筑

├── 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

发展

# 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文件。