基于模型上下文协议(MCP)的学术文献检索HTTP/SSE服务。它聚合了诸如arXiv、Crossref、OpenAlex、PubMed和Semantic Scholar(可选:通过SerpApi访问Google Scholar)等数据源,为AI助手和应用程序提供标准化的搜索、详情、引用、趋势和推荐能力。
快速导航:入门指南 | API概览 | SSE使用 | 环境变量 | Docker | 示例
dist/免费数据源(开箱即用):
需要注册但免费:
付费/订阅数据源(可选):
搜索功能:
search_papers智能跨源检索(支持自动主题选择)search_papers_by_discipline按主题搜索并自动选择数据源search_papers_by_author按作者搜索search_papers_by_journal按期刊搜索search_papers_by_conference按会议搜索论文信息:
get_paper_details论文详情get_citation_info引用/被引用信息get_recommended_papers相关推荐get_open_access_link检查OA版本趋势分析:
get_research_trends研究趋势get_recent_papers最新论文search_influential_papers高影响力论文research-advisor``literature-finder``research-plan``trend-analysis``paper-comparison
本地运行(Node.js ≥ 18):
npm install
npm run build
npm start
# 服务启动于 http://localhost:3000
健康检查和基本验证:
curl http://localhost:3000/health
curl -X POST http://localhost:3000/api/search \
-H "Content-Type: application/json" \
-d '{"query": "机器学习", "max_results": 5}'
更多脚本:npm run dev(直接编译和启动)npm run watch(监控编译)npm test(示例API测试)。
基础路由:
GET /服务信息GET /health健康检查GET /sse建立SSE(MCP)连接REST路由:
POST /api/search关键词搜索(支持discipline``auto_detect_discipline``sources``max_results)POST /api/search/author作者搜索(author_name可选source``discipline``max_results)POST /api/paper论文详情(paper_id``source)POST /api/citations引用信息(paper_id可选source``max_results)POST /api/recommendations相关推荐(paper_id可选source``max_results)POST /api/trends研究趋势(field可选source``max_results)POST /api/recent最近论文(topic可选days``source``max_results)POST /api/influential高影响力论文(field可选max_results)示例:
# 普通搜索
curl -X POST http://localhost:3000/api/search \
-H "Content-Type: application/json" \
-d '{
"query": "量子计算",
"sources": ["arxiv", "semantic_scholar"],
"max_results": 5
}'
# 学科智能搜索(自动选择数据源)
curl -X POST http://localhost:3000/api/search \
-H "Content-Type:application/json" \
-d '{
"query": "机器学习",
"discipline": "machine_learning",
"max_results": 10
}'
# 自动检测学科
curl -X POST http://localhost:3000/api/search \
-H "Content-Type:application/json" \
-d '{
"query": "CRISPR基因编辑",
"auto_detect_discipline": true,
"max_results": 10
}'
更多示例和字段描述,请参阅:HTTP_API_GUIDE.md``API_REFERENCE.md``examples/。
建立连接:
const es = new EventSource('http://localhost:3000/sse');
es.onmessage = (e) => {
console.log('事件', e.data);
// 首次消息中可获取并保存会话信息(如sessionId)
};
发送消息:使用POST /sse?sessionId=...请求体是MCP请求消息(例如,调用一个工具)。具体消息格式和示例,请参考HTTP_API_GUIDE.md。
注意:服务器为每个SSE连接维护会话,并需要相同的sessionId来发送后续消息。
复制模板并按需填写:
cp env-template .env
可用变量(全部可选):
PORT(默认 3000)HOST(默认 0.0.0.0)CORS_ENABLED(默认启用)基本数据源(推荐配置):
OPENALEX_EMAIL(强烈推荐以提高OpenAlex响应质量)PUBMED_API_KEY(提高PubMed速率限制)SEMANTIC_SCHOLAR_API_KEY(提高速率上限)UNPAYWALL_EMAIL(用于检查OA版本,强烈推荐)CORE_API_KEY(开放获取聚合器,免费注册)可选数据源:
SERPAPI_KEY(启用Google Scholar,付费服务)IEEE_API_KEY(电气工程,需要订阅)ACM_API_KEY(计算机科学,需要订阅)SPRINGER_API_KEY跨学科WOS_API_KEY(Web of Science,需要机构订阅)SCOPUS_API_KEY(Scopus,需要订阅)JSTOR_API_KEY(人文和社会科学,需要订阅)详情请参阅:API_KEY_GUIDE.md。
使用Compose:
npm run compose:up # 启动
npm run compose:logs # 查看日志
npm run compose:restart # 重启
npm run compose:down # 停止
本地镜像:
npm run docker:build
npm run docker:run
# 其他:docker:stop / docker:logs / docker:restart / docker:remove
examples/http-api-examples.js|py|shHTTP API示例test-http-api.js简单连通性和接口演示npm testHTTP_QUICKSTART.md``HOW_TO_TEST.mdsrc/clients/数据源客户端(arXiv/Crossref/OpenAlex/PubMed/Semantic Scholar/Google Scholar)src/tools/MCP工具注册和实现src/prompts/MCP提示定义src/index.tsHTTP/SSE服务入口点examples/调用示例MIT许可证