MCP 服务器项目是一个具备文档管理、爬虫抓取和工具调用等功能的项目。它可以自动加载文档,支持从各类框架官方文档站点抓取内容,并提供搜索文档、获取文档详情等工具,方便用户进行文档管理和搜索。
要使用 MCP 服务器项目,你可以按照以下步骤进行操作:
# 克隆仓库到本地
git clone https://github.com/your-username/mcp-server.git
cd mcp-server
# 安装依赖项
npm install
# 启动服务器
node server.js
docs 目录下的 JSON 文件,也可从当前工作目录加载。页面 ID 默认使用 URL 作为键,所有来源名称会自动转为小写以确保一致性。search_docs 和 get_doc_detail 两个工具,方便用户搜索文档和获取文档详情。git clone https://github.com/your-username/mcp-server.git
cd mcp-server
npm install
node server.js
mcp-server/
├── server.js # 主服务器文件
├── docs/ # 文档存储目录
│ └── doc.json # 示例文档文件
├── crawl/ # 爬虫相关模块
│ ├── crawler.js # 爬虫主逻辑
│ └── parsers/ # 数据解析模块
├── tools/ # MCP 工具实现
│ ├── search_docs.js # 搜索文档工具
│ └── get_doc_detail.js # 获取文档详情工具
└── test/ # 测试用例
└── test_server.js # 服务器测试用例
文档文件应为 JSON 格式,包含以下字段:
{
"source": {
"name": "taro",
"url": "https://docs.taro.zone/docs"
},
"lastUpdated": "2024-03-27T12:00:00Z",
"pages": {
"https://docs.taro.zone/docs/components-desc": {
"title": "组件库说明 | Taro 文档",
"content": "页面内容..."
},
// 更多页面...
}
}
docs 目录下的 JSON 文件。url 字段。系统内置爬虫支持从各类框架官方文档站点抓取内容并转换为本地可用的文档格式。爬虫特性包括:
服务器提供以下 MCP 工具:
search_docs - 搜索文档query: 搜索关键词 (字符串, 必须)source: 文档源名称 (字符串, 可选)limit: 最大结果数量 (数字, 可选, 默认为10)query 为 "reload" 时,会触发重新加载文档。get_doc_detail - 获取文档详情id: 文档 ID (字符串, 必须)source: 文档源名称 (字符串, 可选){
"name": "mcp-server",
"type": "http",
"url": "http://localhost:3000"
}
// 搜索文档示例
{
"command": "search_docs",
"params": {
"query": "组件开发指南",
"source": "taro"
}
}
// 获取文档详情示例
{
"command": "get_doc_detail",
"params": {
"id": "https://docs.taro.zone/docs/components-desc"
}
}
node server.js
npm test
test('search_docs should return results', async () => {
const response = await fetch('/api/search_docs?query=test');
expect(response.status).toBe(200);
});
test('get_doc_detail should return details', async () => {
const response = await fetch('/api/get_doc_detail?id=document-id');
expect(response.status).toBe(200);
});
文档中未提及相关许可证信息。
欢迎 fork 和提交 PR!