学术研究数据服务

OpenAlex MCP Server是一个提供全球学术研究系统数据的服务,覆盖超过2.4亿学术作品,支持搜索、检索和分类研究数据。

  • by reetp14
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 reetp14/openalex-mcp

使用说明

OpenAlex MCP服务器

一个模型上下文协议(MCP)服务器,提供对OpenAlex API的访问,这是一个覆盖超过2.4亿学术著作的全球研究系统的完全开放目录。

特性

此MCP服务器提供搜索和检索工具:

  • 作品 -学术文章、预印本、数据集、书籍(超过2.4亿项)
  • 作者 -与ORCID集成的研究人员和创作者
  • 来源 -期刊、会议、存储库(约25万个场所)
  • 机构 -大学、医院、实验室与ROR匹配
  • 概念 -分层研究主题(0-5级)
  • 出版商 -出版机构
  • 资助方 -拨款机构
  • 自动完成 -在所有实体类型中提前键入搜索
  • 文本分类 -任意文本的概念预测

安装

来自npm(推荐)

npm install -g 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": ["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 -随机样本量,可选 seed
  • mailto -您的电子邮件要求更高的费率限制

单实体检索

  • 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=* (第一次调用),然后使用return next_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、微软学术图谱等