这是一个模型上下文协议(MCP)服务器,它将Apple DocC文档存档暴露给AI代理,从而实现实时访问Swift文档,而无需训练数据或大量上下文窗口。
npm install
npm run build
添加到您的MCP客户端配置:
{
"mcpServers": {
"docc": {
"command": "node",
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "/path/to/your/docc/archives",
"--archive-path", "~/Documents/Xcode/DerivedData"
]
}
}
}
使用--archive-path参数配置存档路径:
单个存档目录:
{
"mcpServers": {
"docc": {
"command": "node",
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "/Users/yourname/docc-archives"
]
}
}
}
多个存档目录:
{
"mcpServers": {
"docc": {
"command": "node",
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "/Users/yourname/Project1/docs",
"--archive-path", "/Users/yourname/Project2/docs",
"--archive-path", "~/Documents/Xcode/DerivedData"
]
}
}
}
使用Xcode生成的文档:
{
"mcpServers": {
"docc": {
"command": "node",
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "~/Library/Developer/Xcode/DerivedData/YourApp-*/Build/Products/Debug/YourApp.doccarchive"
]
}
}
}
注意:必须至少指定一个--archive-path。如果没有提供存档路径,服务器将以错误退出。
Xcode生成的文档:
~/Library/Developer/Xcode/DerivedData/YourApp-*/Build/Products/Debug*/Documentation/~/Library/Developer/Xcode/DerivedData/YourApp-*/Build/Products/Release*/Documentation/Swift包管理器:
.build/plugins/Swift-DocC/outputs/YourPackage.doccarchive手动构建DocC:
docs/(如果您将存档组织在一个docs文件夹中)swift package generate-documentation的项目根目录下多个项目:
{
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "~/MySwiftPackage1/docs",
"--archive-path", "~/MySwiftPackage2/.build/plugins/Swift-DocC/outputs",
"--archive-path", "~/Library/Developer/Xcode/DerivedData"
]
}
list_archives列出所有可用的DocC存档及其元数据。
{
"name": "list_archives"
}
search_docc跨DocC文档进行搜索。
{
"name": "search_docc",
"arguments": {
"query": "SwiftSyntax",
"archive": "SwiftSyntax",
"type": "struct"
}
}
get_symbol获取特定符号的详细信息。
{
"name": "get_symbol",
"arguments": {
"symbolId": "documentation/swiftsyntax/tokensyntax",
"archive": "SwiftSyntax"
}
}
get_article获取特定文章或教程的详细信息。
{
"name": "get_article",
"arguments": {
"articleId": "meetcomposablearchitecture",
"archive": "ComposableArchitecture"
}
}
browse_archive浏览DocC存档的结构。
{
"name": "browse_archive",
"arguments": {
"archive": "SwiftSyntax",
"path": "documentation/swiftsyntax"
}
}
服务器期望在由--archive-path指定的目录中的DocC存档:
运行测试脚本来验证功能:
node test-server.js
这将:
查找所有SwiftUI导航组件:
{
"name": "search_docc",
"arguments": {
"query": "navigation",
"type": "struct"
}
}
获取TokenSyntax的详细信息:
{
"name": "get_symbol",
"arguments": {
"symbolId": "documentation/swiftsyntax/tokensyntax",
"archive": "SwiftSyntax"
}
}
浏览SwiftSyntax类型:
{
"name": "browse_archive",
"arguments": {
"archive": "SwiftSyntax",
"path": "documentation/swiftsyntax"
}
}
此服务器与标准DocC存档兼容。要生成兼容的存档:
# 使用Swift-DocC
swift package generate-documentation --target MyLibrary
# 使用Xcode
# 产品 → 构建文档
MIT许可证