README
🚀 代码研究 MCP 服务器
这是一个基于 Model Context Protocol(模型上下文协议)的服务器,它提供了搜索和访问多种编程资源的功能。该服务器集成了多个流行的开发者平台,能够帮助大型语言模型(LLMs)查找相关的代码示例、文档和包,极大地提升了编程资源的获取效率。
✨ 主要特性
集成平台
- Stack Overflow:知名的编程问答社区,在这里可以找到各种编程问题的解决方案。
- MDN Web Docs:权威的网页开发文档库,为网页开发者提供了丰富的参考资料。
- GitHub:全球最大的代码和仓库搜索平台,汇聚了众多优秀的开源项目。
- npm:JavaScript 包注册表,方便开发者查找和使用各种 JavaScript 包。
- PyPI:Python 包索引,是 Python 开发者获取各类 Python 包的重要来源。
工具
search_stackoverflow
此工具可在 Stack Overflow 上搜索编程问题和答案。
- 参数:
query(必需):用于输入搜索的查询字符串。limit(可选):设置最大结果数,范围为 1 - 10,默认值为 5。
- 返回值:返回一个格式化的问题列表,其中包含评分、回答数和摘录。
- 缓存策略:结果缓存时间为 1 小时。
search_mdn
该工具用于在 MDN Web Docs 上搜索网页开发文档。
- 参数:
query(必需):输入搜索的查询字符串。
- 返回值:返回前 5 个 MDN 文档匹配项,包含摘要和链接。
- 缓存策略:结果缓存时间为 1 小时。
search_github
此工具可在 GitHub 上搜索代码仓库或用户。
- 参数:
query(必需):输入搜索的查询字符串。limit(可选):设置最大结果数,范围为 1 - 10,默认值为 5。
- 返回值:返回一个列表,包含仓库名称、描述和星标数。
- 缓存策略:结果缓存时间为 1 小时。
search_npm
该工具用于在 npm 上搜索 JavaScript 包。
- 参数:
query(必需):输入搜索的查询字符串。limit(可选):设置最大结果数,范围为 1 - 10,默认值为 5。
- 返回值:返回一个列表,包含包名称、版本和描述。
- 缓存策略:结果缓存时间为 1 小时。
search_pypi
此工具可在 PyPI 上搜索 Python 包。
- 参数:
query(必需):输入搜索的查询字符串。limit(可选):设置最大结果数,范围为 1 - 10,默认值为 5。
- 返回值:返回一个列表,包含包名称、版本和描述。
- 缓存策略:结果缓存时间为 1 小时。
📦 安装指南
使用 Smithery 安装
npx smithery install @nahmanmate/code-research-mcp-server
手动安装
- 克隆仓库:
git clone https://github.com/yourusername/code-research-mcp-server.git cd code-research-mcp-server - 安装依赖:
npm install - 启动服务器:
node index.js
配置 MCP 设置
在 package.json 中添加以下配置:
{
"mcp": {
"servers": {
"code-research-mcp-server": {
"command": "node index.js",
"type": "stdio"
}
}
}
}
🔧 技术细节
以开发模式运行
带有自动重建功能,可使用以下命令:
npm run watch
错误处理
服务器实现了稳健的错误处理机制:
- 针对每个平台的 API 提供特定的错误消息。
- 对 GitHub API 的速率限制进行有效处理。
- 在服务不可用时能够实现优雅降级。
- 通过缓存响应来减少 API 负载。
调试
由于 MCP 服务器通过标准输入/输出进行通信,调试具有一定挑战性。可使用 MCP 检查器进行详细的请求/响应监控:
npm run inspector
检查器提供以下功能:
- 实时请求/响应监控。
- 工具执行跟踪。
- 错误堆栈跟踪。
- 性能指标。
在浏览器中访问提供的 URL 即可获取调试界面。
缓存
使用 node-cache 进行缓存:
- 默认 TTL 为 1 小时。
- 每个查询/限制组合使用独立的缓存键。
- 采用平台特定的缓存策略。
- 实现内存高效存储。
🤝 贡献指南
- 叉仓库。
- 创建功能分支。
- 提交更改。
- 推送到分支。
- 创建拉取请求。
📄 许可证
本项目采用 AGPLv3 许可证。
Scan to join WeChat group