文档MCP服务器
一个服务器,供开发人员访问他们最喜欢的库的更新文档。
概述
此MCP(模型控制器演示器)服务器提供了一个统一的接口,用于访问来自各种库的文档。它聚合了来自多个来源的文档,允许在所有库中搜索,并确保开发人员可以访问最新的信息。
特性
- 文档聚合:从各种图书馆来源收集文件
- 搜索功能:搜索所有库或按特定库筛选
- 版本管理:访问不同版本库的文档
- 自动更新:定期获取最新文件
- API访问:通过API对文档进行编程访问
- 交互式用户界面:用于浏览文档的Web界面
快速安装
使用安装脚本
最简单的开始方法:
# Clone the repository
git clone https://github.com/SubaashNair/documentation-mcp-server.git
cd documentation-mcp-server
# Make the installation script executable
chmod +x install.sh
# Run the installation script
./install.sh使用Docker
# Clone the repository
git clone https://github.com/SubaashNair/documentation-mcp-server.git
cd documentation-mcp-server
# Copy and edit environment variables
cp .env.example .env
# Start with Docker Compose
docker-compose up -d手动安装
有关详细的安装说明,请参阅 安装指南.
用法
web界面
引导到 http://localhost:3000 在浏览器中访问web界面。
API使用
服务器提供了一个RESTful API,用于对文档进行编程访问。
示例:搜索文档
curl -X GET "http://localhost:3000/api/search?q=useState&library=react"示例:获取库文档
curl -X GET "http://localhost:3000/api/libraries/react/hooks/useState"示例:获取API状态
curl -X GET "http://localhost:3000/api/status"有关API的完整文档,请访问 /api-docs 在您的服务器上(例如。, http://localhost:3000/api-docs).
建筑
文档MCP服务器遵循模型控制器呈现器(MCP)模式:
- 模型:用于获取和存储文档的数据服务(
src/services/) - 控制器:API终结点的请求处理程序(
src/controllers/) - 主持人:前端接口和API响应格式(
public/)
配置
可以通过编辑来配置服务器 .env 文件或设置环境变量。
基本配置
| 变量 | 描述 | 默认值 |
|---|---|---|
PORT | 运行服务器的端口 | 3000 |
GITHUB_TOKEN | API访问的GitHub令牌 | - |
DOCUMENTATION_UPDATE_SCHEDULE | Cron更新时间表 | 0 0 * * * (每日) |
LIBRARIES | 以逗号分隔的要获取的库列表 | react,vue,angular |
有关完整的配置选项,请参阅 安装指南.
添加新库
要将新库添加到文档服务器,请执行以下操作:
- 在中创建新文件
src/libraries/遵循现有库的模式 - 实现获取和解析文档所需的接口
- 将库添加到配置中
示例实现:
// src/libraries/your-library.js
const fetchYourLibraryDocumentation = async (version) => {
// Implementation for fetching documentation
// ...
};
module.exports = {
fetchDocumentation: fetchYourLibraryDocumentation
};然后将其添加到您的 .env 文件:
LIBRARIES=react,vue,angular,your-library文档
路线图
- \[\]添加对更多库的支持(TypeScript、Node.js等)
- \[\]实现用户帐户和收藏夹
- \[\]添加离线文档支持
- \[\]创建用于访问文档的CLI工具
- \[\]实施社区对文档的贡献
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- 文档和API设计灵感来自 DevDocs
- 架构模式来自 Express.js
- 搜索功能由 Lunr.js
