OpenAlex MCP服务器
一个模型上下文协议(MCP)服务器,提供对OpenAlex API的访问,这是一个覆盖超过2.4亿学术著作的全球研究系统的完全开放目录。
基于原项目: 此项目基于 openalex mcp 修改而来
特性
此MCP服务器提供搜索和检索工具:
- 作品 -学术文章、预印本、数据集、书籍(超过2.4亿项)
- 作者 -与ORCID集成的研究人员和创作者
- 来源 -期刊、会议、存储库(约25万个场所)
- 机构 -大学、医院、实验室与ROR匹配
- 概念 -分层研究主题(0-5级)
- 出版商 -出版机构
- 资助方 -拨款机构
- 自动完成 -在所有实体类型中提前键入搜索
- 文本分类 -任意文本的概念预测
安装
来自npm(推荐)
npm install -g bach-openalex-mcp来源
git clone https://github.com/reetp14/openalex-mcp.git
cd openalex-mcp
npm install
npm run build用法
作为MCP服务器
添加到MCP客户端配置中:
{
"mcpServers": {
"openalex": {
"command": "npx",
"args": ["bach-openalex-mcp"]
}
}
}
json
或者,如果在本地安装:
{
"mcpServers": {
"openalex": {
"command": "node",
"args": ["./node_modules/openalex-mcp/build/index.js"]
}
}
}可用工具
实体搜索工具
所有搜索工具都支持完整的OpenAlex查询语法:
search_works-搜索学术著作search_authors-搜索研究人员和创作者search_sources-搜索期刊、会议、存储库search_institutions-搜索大学、医院、实验室search_concepts-搜索研究主题search_publishers-搜索出版机构search_funders-搜索资助机构
常用参数:
search-全文搜索查询filter-布尔过滤器(例如。,concept.id:C12345,from_publication_date:2022-01-01)sort-带可选项的排序字段:desc(例如。,cited_by_count:desc)page/per_page-标准分页(最多10000个结果)cursor-深度分页(使用*首次通话)group_by-按字段进行分面/聚合select-要返回的逗号分隔字段sample-随机样本量,可选seedmailto-您的电子邮件要求更高的费率限制
单实体检索
get_entity-通过OpenAlex ID获取单个实体
- entity_type -其中之一:作品、作者、来源、机构、概念、出版商、资助者 - openalex_id -OpenAlex ID(例如,W2741809807、A1969205038)
实用工具
autocomplete-跨实体类型提前键入搜索
- search -搜索查询(必填) - type -要在其中搜索的实体类型(可选) - per_page -建议数量(最多50条)
classify_text-从文本中预测研究概念
- title -要分类的标题文本 - abstract -要分类的抽象文本
例子
搜索2023年以来的人工智能论文
{
"tool": "search_works",
"arguments": {
"search": "artificial intelligence",
"filter": "from_publication_date:2023-01-01,to_publication_date:2023-12-31",
"sort": "cited_by_count:desc",
"per_page": 10,
"mailto": "researcher@university.edu"
}
}按机构查找作者
{
"tool": "search_authors",
"arguments": {
"filter": "last_known_institution.id:I27837315",
"sort": "works_count:desc",
"select": "id,display_name,works_count,cited_by_count"
}
}按年份获取出版趋势
{
"tool": "search_works",
"arguments": {
"filter": "concepts.id:C154945302",
"group_by": "publication_year"
}
}自动完成日志名称
{
"tool": "autocomplete",
"arguments": {
"search": "nature",
"type": "sources",
"per_page": 5
}
}对研究文本进行分类
{
"tool": "classify_text",
"arguments": {
"title": "Deep Learning for Medical Image Analysis",
"abstract": "We present a novel approach using convolutional neural networks..."
}
}查询语法快速参考
过滤器
- 链条与
,对于AND:concept.id:C12345,publication_year:2023 - 链条与
|对于OR:type:journal|type:repository - 否定
!:authors.id!A12345(作者除外) - 日期范围:
from_publication_date:2020-01-01,to_publication_date:2023-12-31
排序
- 提升:
sort=publication_year - 降序:
sort=cited_by_count:desc - 多个:
sort=publication_year:desc,cited_by_count:desc
分页
- 标准:
page=2&per_page=100(最多10000个结果) - 深度:
cursor=*(第一次调用),然后使用returnnext_cursor
速率限制
- 匿名:10次请求/秒,100000次/天
- 随着
mailto:100个请求/秒,1000000个/天
API响应格式
所有工具都返回标准的OpenAlex JSON信封:
{
"meta": {
"count": 249256387,
"db_response_time_ms": 12,
"page": 1,
"per_page": 25,
"next_cursor": "ZjEwMD..."
},
"results": [
{
/* entity object */
}
]
}发展
# Watch mode during development
npm run watch
# Test with MCP inspector
npm run inspector
# Run basic functionality test
node test-simple.js环境配置
服务器支持配置环境变量。复制 .env.example 到 .env 并配置:
cp .env.example .env
# Edit .env with your settings环境变量
OPENALEX_BEARER_TOKEN:通过身份验证的API访问的承载令牌(可选)OPENALEX_DEFAULT_EMAIL:没有时用于费率限制的默认电子邮件mailto提供的参数
API访问说明
- 免费使用:OpenAlex API是免费和开放的
- 速率限制:10请求/秒(匿名)或100请求/秒
mailto) - 认证:从环境中自动加载承载令牌
- 响应大小:使用
select用于限制大型数据集响应大小的参数
优化响应示例:
{
"tool": "search_works",
"arguments": {
"search": "machine learning",
"select": "id,display_name,publication_year,cited_by_count",
"per_page": 10
}
}关于OpenAlex
OpenAlex是一个完全开放的全球研究系统目录,以亚历山大图书馆命名,由非营利组织创建 我们的研究。它提供有关学术作品、作者、机构等的免费、全面的元数据。
- 网站:https://openalex.org/
- API文件:https://docs.openalex.org/
- 数据来源:Crossref、ORCID、ROR、微软学术图谱等
