研究MCP服务器
 ](https://nodejs.org/)
一种模型上下文协议(MCP)服务器,结合了谷歌自定义搜索和维基百科功能,用于研究和信息检索。该服务器提供28个工具、23个资源和22个研究提示,用于搜索、分析、内容提取和研究管理。
特性
- 28种工具:谷歌搜索(10)、维基百科(10)和增强分析(8)
- 23个资源:模板、指南和缓存的研究数据
- 22个提示:涵盖研究方法的结构化提示
- 8种分析工具,无需额外的API密钥即可工作
- 用于性能优化的多层LRU缓存
- 基于MCP客户端的配置(Cursor、Claude等)
快速开始
- 克隆并安装:
git clone https://github.com/your-repo/research-mcp-server.git
cd research-mcp-server
npm install- 配置环境(可选):
export GOOGLE_API_KEY="your_google_api_key"
export GOOGLE_CSE_ID="your_search_engine_id"- 配置MCP客户端(游标):
添加到您的 .cursor/mcp.json:
{
"mcpServers": {
"research-mcp-server": {
"command": "npx",
"args": ["ts-node", "--esm", "index.ts"],
"env": {
"GOOGLE_API_KEY": "${env:GOOGLE_API_KEY}",
"GOOGLE_CSE_ID": "${env:GOOGLE_CSE_ID}"
}
}
}
}- 该服务器将在您的MCP客户端中可用,带有28个工具、23个资源和22个提示。
起源
此项目是以下内容的组合和增强版本:
- 谷歌搜索MCP -原始Google自定义搜索MCP服务器
- 维基百科mcp服务器 -原始维基百科MCP服务器
研究mcp服务器建立在这些基础之上,添加了增强的分析工具、改进的缓存、统一的配置和全面的提示库,同时保持与原始mcp规范的兼容性。
目录
- 增强的分析工具 - 谷歌搜索工具 - 维基百科工具 - 研究资源 - 研究提示
- 光标MCP配置 - 环境变量 - Google API设置
- 工具(共28个) - 资源(共23项) - 提示(共22条)
特性
增强的分析工具(8个工具-不需要API密钥)
无需外部依赖即可工作的内置分析功能:
content_sentiment_analysis-分析文本内容的情感keyword_extraction-从文本内容中提取关键术语和主题url_metadata_extractor-从URL中提取元数据,包括标题、描述和基本信息citation_formatter-以APA、MLA或芝加哥风格格式化引文research_session_manager-管理研究会议、保存研究结果和组织笔记content_deduplication-从搜索结果中删除重复内容并合并类似项目archive_org_search-在Archive.org(Wayback Machine)上搜索存档的网页data_export-以各种格式(JSON、CSV、Markdown)导出研究数据
谷歌搜索工具(10个工具)
网络搜索和内容分析功能:
google_search-使用Google自定义搜索API搜索网页extract_content-从网页中提取主要内容search_analytics-分析搜索趋势,从多个查询中获得见解multi_site_search-同时搜索多个特定网站news_monitor-监控新闻并获取特定主题的警报academic_search-搜索学术论文和研究文件content_summarizer-汇总来自多个URL的内容fact_checker-通过搜索事实核查来源来核实索赔research_assistant-具有多查询分析功能的综合研究助理search_trends-跟踪和分析搜索兴趣随时间的变化趋势
维基百科工具(10个工具)
维基百科集成,用于百科全书式知识访问:
wikipedia_search-搜索与查询匹配的维基百科文章wikipedia_get_page-获取完整的维基百科页面内容wikipedia_get_summary-获取维基百科页面的简要摘要wikipedia_get_page_by_id-按页面ID获取维基百科页面内容wikipedia_random-获取一个随机的维基百科页面wikipedia_page_languages-获取维基百科页面可用的语言wikipedia_batch_search-一次搜索多个查询以提高效率wikipedia_batch_get_pages-一次获取多个维基百科页面以提高效率wikipedia_search_nearby-查找特定坐标附近的维基百科文章wikipedia_get_pages_in_category-浏览特定维基百科类别中的页面
研究资源(23个资源)
研究模板、指南和缓存数据的集合:
模板和指南(5个资源):
research://templates/literature-review-进行文献综述的结构化模板research://templates/research-proposal-综合研究提案框架research://guides/methodology/{type}-不同研究方法指南research://citations/styles/{style}-引文风格指南(APA、MLA、芝加哥)writing://templates/academic-paper-标准学术论文结构模板
写作资源(3个资源):
writing://guides/academic-writing-学术写作原则综合指南writing://checklists/peer-review-同行评审手稿准备清单
数据分析资源(4个资源):
analysis://guides/statistical-methods-常见统计分析方法指南analysis://templates/data-analysis-数据分析报告结构化框架analysis://visualization/types/{chart_type}-不同类型数据可视化指南
缓存的研究数据(11个资源):
google://search/{query}-缓存的谷歌搜索结果google://trends/{topic}-搜索趋势和分析数据web://content/{url}-缓存的web内容提取结果wiki://search/{query}-缓存维基百科搜索结果wiki://page/{title}-缓存的维基百科页面内容analysis://sentiment/{text}-缓存情绪分析结果analysis://keywords/{text}-缓存关键字提取结果analysis://url-metadata/{url}-缓存的URL元数据research://sessions/{name}-保存的研究会议和发现archive://snapshots/{url}-缓存的存档网页
研究提示(22个提示)
涵盖研究方法的快速图书馆:
规划与设计(10个提示):
literature-review-planning-具有搜索策略的综合文献综述计划research-question-development-制定明确、重点突出的研究问题,并给出操作定义academic-paper-outline-用章节结构创建详细的学术论文大纲data-analysis-planning-使用适当的统计方法规划数据分析方法methodology-selection-基于研究问题和约束的指导方法选择systematic-review-protocol-制定全面的系统评价方案meta-analysis-planning-计划一项荟萃分析,考虑统计和方法学因素qualitative-coding-framework-为专题分析开发定性编码框架grant-proposal-writing-构建并撰写一份引人注目的拨款提案research-networking-strategy-制定建立研究网络和合作的战略
分析和方法(12个提示):
statistical-test-selection-根据数据特征选择适当的统计测试results-interpretation-解释具有实际意义的统计结果peer-review-preparation-准备手稿供同行评审,并附上全面的检查表citation-management-遵循风格指南管理引文和参考文献ethics-review-preparation-准备进行全面的伦理审查research-rigor-assessment-通过有效性、可靠性和质量标准评估研究的严谨性journal-selection-strategy-根据研究主题和目标制定期刊选择策略manuscript-revision-planning-根据审稿人的反馈计划手稿修订collaboration-planning-规划研究合作,包括角色、职责和协议research-presentation-planning-根据受众分析和交付策略计划研究报告impact-assessment-planning-使用指标和评估框架规划研究影响评估research-dissemination-strategy-制定跨多渠道的研究传播策略
安装
此MCP服务器旨在通过MCP客户端使用。通过MCP客户端(Cursor、Claude等)安装和配置它,如下面的配置部分所示。
对于当地发展:
npm install配置
在MCP客户端(Cursor、Claude等)中配置Research MCP服务器,而不是使用.env文件。MCP服务器通过客户端传递的环境变量接收配置。
光标配置
创建一个 .cursor/mcp.json 文件在您的项目或 ~/.cursor/mcp.json 在您的主目录中:
发展(推荐):
{
"mcpServers": {
"research-mcp-server": {
"command": "npx",
"args": ["ts-node", "--esm", "${workspaceFolder}/research-mcp-server/index.ts"],
"env": {
"GOOGLE_API_KEY": "${env:GOOGLE_API_KEY}",
"GOOGLE_CSE_ID": "${env:GOOGLE_CSE_ID}",
"WIKIPEDIA_CACHE_MAX": "100",
"WIKIPEDIA_CACHE_TTL": "300000",
"WIKIPEDIA_DEFAULT_LANGUAGE": "en"
}
}
}
}生产(建造后):
{
"mcpServers": {
"research-mcp-server": {
"command": "node",
"args": ["${workspaceFolder}/research-mcp-server/dist/research-server.js"],
"env": {
"GOOGLE_API_KEY": "${env:GOOGLE_API_KEY}",
"GOOGLE_CSE_ID": "${env:GOOGLE_CSE_ID}",
"WIKIPEDIA_CACHE_MAX": "100",
"WIKIPEDIA_CACHE_TTL": "300000",
"WIKIPEDIA_DEFAULT_LANGUAGE": "en"
}
}
}
}用于全局配置(~/.cursor/mcp.json),替换 ${workspaceFolder} 带有您的研究mcp服务器目录的完整路径。
备注:用 npm run build,服务器将在 dist/index.js 用于生产用途。
环境变量
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
GOOGLE_API_KEY | Google自定义搜索API密钥 | - | 可选\* |
GOOGLE_CSE_ID | 谷歌自定义搜索引擎ID | - | 可选\* |
WIKIPEDIA_CACHE_MAX | 维基百科缓存条目的最大数量 | 100 | 没有 |
WIKIPEDIA_CACHE_TTL | 维基百科缓存TTL(ms) | 300000 | 没有 |
WIKIPEDIA_DEFAULT_LANGUAGE | 默认维基百科语言 | en | 没有 |
SERVER_NAME | 用于识别的服务器名称 | research-mcp-server | 没有 |
\*谷歌搜索是可选的-服务器仅支持维基百科功能
Google API设置
- 转到 谷歌云控制台
- 创建新项目或选择现有项目
- 启用自定义搜索API
- 创建凭据(API密钥)
- 在以下位置创建自定义搜索引擎 https://cse.google.com/
- 获取您的搜索引擎ID
用法
Research MCP Server旨在通过MCP客户端(如Cursor、Claude或其他MCP兼容应用程序)使用。在MCP客户端配置中配置它,如上所示。
本地开发
对于开发和测试,您可以直接运行服务器:
# Set environment variables (optional)
export GOOGLE_API_KEY=your_api_key
export GOOGLE_CSE_ID=your_search_engine_id
# Run in development mode
npm run dev生产部署
通过MCP客户端的配置系统构建和部署:
npm run build然后使用上面的生产配置在MCP客户端中进行配置。
可用工具
服务器提供以下全面的研究工具:
增强的分析工具(共8个-不需要API密钥)
content_sentiment_analysis-使用内置的情感分析来分析文本内容的情感keyword_extraction-从文本内容中提取关键术语和主题url_metadata_extractor-从URL中提取元数据,包括标题、描述和基本信息citation_formatter-以APA、MLA或芝加哥风格格式化引文research_session_manager-管理研究会议、保存研究结果和组织笔记content_deduplication-从搜索结果中删除重复内容并合并类似项目archive_org_search-在Archive.org(Wayback Machine)上搜索存档的网页data_export-以各种格式(JSON、CSV、Markdown)导出研究数据
谷歌搜索工具(共10个)
google_search-使用Google自定义搜索API搜索网页extract_content-从网页中提取主要内容search_analytics-分析搜索趋势,从多个搜索查询中获得见解multi_site_search-同时搜索多个特定网站news_monitor-监控新闻并获取特定主题的警报academic_search-搜索学术论文和研究文件content_summarizer-汇总来自多个URL的内容fact_checker-通过搜索事实核查来源来核实索赔research_assistant-具有多查询分析功能的综合研究助理search_trends-跟踪和分析搜索兴趣随时间的变化趋势
维基百科工具(共10个)
wikipedia_search-搜索与查询匹配的维基百科文章wikipedia_get_page-获取完整的维基百科页面内容wikipedia_get_summary-获取维基百科页面的简要摘要wikipedia_get_page_by_id-按页面ID获取维基百科页面内容wikipedia_random-获取一个随机的维基百科页面wikipedia_page_languages-获取维基百科页面可用的语言wikipedia_batch_search-一次搜索多个查询以提高效率wikipedia_batch_get_pages-一次获取多个维基百科页面以提高效率wikipedia_search_nearby-查找特定坐标附近的维基百科文章wikipedia_get_pages_in_category-浏览特定维基百科类别中的页面
建筑
Research MCP服务器采用模块化专业架构构建,专为研究工作流程而设计:
核心组件
ResearchMCPServer-实现模型上下文协议的主MCP服务器类GoogleSearchService-处理Google自定义搜索API与缓存的交互WikipediaService-使用可配置的缓存和批处理操作管理维基百科API调用AnalysisEngine-内置文本分析引擎,用于情感、关键字和内容处理ResearchSessionManager-用于组织研究结果的内存会话存储PromptLibrary-收集22个结构化提示,涵盖研究方法
主要特点
- MCP协议与工具、资源和提示的合规性
- 与MCP客户端兼容的基于环境的配置系统
- 多层LRU缓存以提高性能
- 优雅的降级和错误处理
- 模块化设计,关注点清晰分离
技术栈
- 运行时间:Node.js≥18.0.0,带ES模块
- 语言:TypeScript用于类型安全
- HTTP客户端:具有重试逻辑的Axios,可实现可靠的API交互
- Web抓取:用于HTML内容提取和解析的Cheerio
- 缓存:LRU缓存用于内存高效的数据存储
- 分析:内置情感分析和文本处理库
缓存策略
服务器实施了针对研究工作流程优化的复杂多层缓存策略:
缓存层:
- 谷歌搜索缓存:LRU缓存(500个条目,30分钟TTL)
- 缓存搜索结果以最大限度地减少API调用 - 减少重复查询的延迟 - 失败请求自动失效
- 维基百科缓存:可配置的LRU缓存(默认值:100个条目,5分钟TTL)
- 百科全书内容的单独缓存 - 批量操作支持,提高效率 - 支持多语言的特定语言缓存
- 分析结果缓存:计算结果的持久缓存
- 情感分析、关键字提取、URL元数据 - 减少重复分析的处理开销 - 高效存储已处理内容
缓存管理
- 自动失效:失败的请求不会填充缓存
- TTL管理:可配置不同数据类型的生存时间
- 内存优化:独立缓存防止交叉污染
- 性能监控:缓存命中率/未命中率优化
错误处理
Research MCP服务器实施错误处理策略以确保可靠运行:
弹性特征
- 优雅的降级:当单个服务不可用时,服务器继续运行
- 在维基百科功能保持活动状态时,可以禁用谷歌搜索 - 分析工具独立于外部API工作 - 无论服务状态如何,提示始终可用
- 重试逻辑:瞬态故障的自动重试机制
- API利率限制的指数退避 - 可配置的重试尝试和超时
- 错误消息:详细的错误报告
- 明确指出哪个服务失败 - 可能时的解决建议
后备策略
- 服务级别回退:主要服务失败时的替代方法
- 缓存优先响应:在实时查询失败时提供缓存结果
- 部分成功处理:即使某些操作失败,也能返回可用数据
发展
先决条件
- Node.js≥18.0.0
- npm或yarn包管理器
- TypeScript编译器
- Google自定义搜索API(可选)
地方发展设置
# Clone the repository
git clone https://github.com/your-repo/research-mcp-server.git
cd research-mcp-server
# Install dependencies
npm install
# Configure environment (optional)
cp .env.example .env
# Edit .env with your API keys
# Run in development mode
npm run dev可用脚本
| 命令 | 描述 |
|---|---|
npm run dev | 使用热重新加载启动开发服务器 |
npm run build | 构建生产就绪的TypeScript编译 |
npm run start | 从构建文件运行生产服务器 |
npm test | 运行测试套件(实施时) |
npm run lint | 运行ESLint进行代码质量检查 |
npm run clean | 删除构建工件和缓存 |
代码质量
- TypeScript:启用严格类型检查
- ESLint:已配置代码一致性
- Pretier:代码格式标准(推荐)
- 赫斯基:用于质量保证的预提交挂钩
测试策略
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run specific test file
npm test -- path/to/test/file贡献
- 克隆该仓库
- 创建要素分支:
git checkout -b feature/your-feature - 使用正确的TypeScript类型进行更改
- 添加新功能的测试
- 确保所有测试通过:
npm test - 运行linting:
npm run lint - 使用常规提交消息进行提交
- 推送到您的分支机构并创建拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
我们欢迎对研究MCP服务器的贡献。请查看我们的 贡献指南 了解详细信息。
快速贡献指南
- 克隆该仓库
- 创建要素分支:
git checkout -b feature/your-feature-name - 使用TypeScript开发最佳实践
- 彻底测试-确保所有现有功能正常工作
- 在README和代码注释中记录新功能
- 提交带有清晰描述的拉取请求
开发标准
- TypeScript:所有新代码都需要严格的类型
- 错误处理:全面的错误处理和用户友好的消息
- 文档:清晰的代码注释和README更新
- 测试:新功能的单元测试(实施时)
- 性能:考虑缓存和优化新功能
支持
获取帮助
- 文档:查看此README和内联代码文档
- Bug报告:在GitHub上创建问题
- 功能请求:使用GitHub issues建议新功能
- 讨论:加入社区讨论,了解最佳实践
常见问题
- 服务器无法启动:检查Node.js版本(≥18.0.0)和环境变量
- API错误:验证Google API密钥和网络连接
- 性能问题:检查缓存配置和可用内存
- MCP客户问题:确保正确
.cursor/mcp.json配置
社区资源
- GitHub问题:用于错误报告和功能请求
- GitHub讨论:关于问题和社区支持
- 文档:综合指南和API参考资料
______________________________________________________________________
