使用说明
OpenAlex MCP服务器
该项目提供了一个模型上下文协议(MCP)服务器,允许AI代理和其他MCP客户端与 OpenAlex 数据库,专门关注学术作品。它利用了 pyalex Python库与OpenAlex API和 MCP Python SDK (fastmcp)以MCP工具的形式公开功能。
例子
为了获得灵感,您可以向启用了此mcp的AI代理询问一些示例查询:
- 查找引用卷积神经网络基础论文最多的5篇论文
- 我正在寻找与自我监督视觉里程计相关的论文。找到与此主题相关的论文,然后通过阅读标题+摘要对每篇论文的相关性进行评分,然后给它们一个1-10的相关性评分。
- 查找自2020年以来发表的关于变压器模型的最具影响力的论文,并总结该架构是如何演变的
- 查找麻省理工学院和斯坦福大学研究人员合著的论文
特性
此服务器公开了以下MCP工具,用于与OpenAlex works交互:
-
search_works:- 说明: OpenAlex的搜索基于关键字和过滤器。支持搜索查询中的布尔运算符。返回选定字段并使用光标分页。
- 参数:
search_query(字符串,必填):搜索词。filters(object,可选):用于过滤的键值对(例如。,{"publication_year": 2023, "is_oa": true}).有关可能的密钥,请参阅OpenAlex筛选器文档。search_field(字符串,可选,默认值:“默认”):要搜索的字段(“title”、“abstract”、“fulltext”、“title_and_abstract”、“default”-搜索标题、摘要和全文)。select_fields(字符串数组,可选):要返回的根级字段列表(例如。,["id", "doi", "title", "abstract"]).如果需要,包括明文摘要。sort(object,可选):要排序的字段和方向(例如。,{"cited_by_count": "desc"}).per_page(整数,可选,默认值:25):每页结果(最多200个)。cursor(字符串,可选):分页光标。
- 退货: 对象与
results(工作对象列表)和meta(分页信息包括next_cursor).
-
get_work_details:- 说明: 通过特定OpenAlex作品的ID(OpenAlex ID URL、DOI URL、PMID URL、MAG ID)检索其详细信息。
- 参数:
work_id(string,必填):作品的标识符。select_fields(字符串数组,可选):要返回的根级字段列表。如果需要,包括明文摘要。
- 退货: 表示具有选定字段的工作的对象,或错误对象。
-
get_referenced_works:- 说明: 检索引用的OpenAlex ID列表 通过 OpenAlex的一项具体工作(即将发表的引用)。注意:此工具目前仅返回ID列表。使用
get_work_details有关每个参考的更多信息。 - 参数:
work_id(string,必填):OpenAlex ID 引用 工作。
- 退货: 对象与
referenced_work_ids(字符串列表)或错误对象。
- 说明: 检索引用的OpenAlex ID列表 通过 OpenAlex的一项具体工作(即将发表的引用)。注意:此工具目前仅返回ID列表。使用
-
get_citing_works:- 说明: 检索以下作品的列表 引用 OpenAlex的一项具体工作(收到的引用)。使用光标分页。
- 参数:
work_id(string,必填):OpenAlex ID 引用 工作。select_fields(字符串数组,可选):每个引用工作的根级字段列表。per_page(整数,可选,默认值:25):每页结果(最多200个)。cursor(字符串,可选):分页光标。
- 退货: 对象与
results(引用工作对象列表)和meta(分页信息)或错误对象。
-
get_work_ngrams:- 说明: 检索特定OpenAlex作品全文的N-gram(单词邻近信息)(如果可用)。
- 参数:
work_id(string,必填):作品的OpenAlex ID。
- 退货: 表示N-gram的对象,或错误对象(例如,如果找不到N-gram)。
备注
由于文案的原因,OpenAlex通常不存储全文。 这也意味着openalex搜索功能不会搜索全文,而只搜索标题+摘要
设置和安装
安装
-
克隆存储库(可选):
git clone <repository-url> cd openalex-mcp-server -
安装依赖项:
uv venv source .venv/bin/activate uv pip install .这将安装服务器包及其依赖项(
mcp[cli],pyalex). -
运行服务器:
uv --directory /YOUR/INSTALL/DIRECTORY/openalex-mcp-server run server.py
配置
- OpenAlex礼貌池: 要使用更快、更可靠的OpenAlex礼貌池,请设置
OPENALEX_EMAIL环境变量到您的电子邮件地址 之前 运行服务器或在MCP客户端中配置服务器时。如果未设置此变量,服务器将使用具有更严格速率限制的匿名池。export OPENALEX_EMAIL="your.email@example.com"
MCP集成
要将此服务器与MCP客户端(如克劳德VS代码扩展或克劳德桌面)一起使用,您需要将其配置添加到客户端的设置文件中。
配置示例(cline_mcp_settings.json 或类似):
{
"mcpServers": {
"... other servers ...": {},
"openalex": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "uv",
"args": [
"--directory", "/YOUR/INSTALL/DIRECTORY/openalex-mcp-server", "run", "server.py"
],
"env": {
"OPENALEX_EMAIL": "your.email@example.com" // Set your email here!
},
"transportType": "stdio"
}
}
}
- 替换
"your.email@example.com"使用您的实际电子邮件地址。 - 添加配置后重新启动MCP客户端(例如,重新加载VS Code窗口)。
用法
服务器配置并运行后(通过MCP客户端集成或手动进行开发),您可以使用 use_mcp_tool 在您的AI代理中执行命令。
工具调用示例:
-
搜索2023年发表的关于“机器学习”的论文:
<use_mcp_tool> <server_name>openalex</server_name> <tool_name>search_works</tool_name> <arguments> { "search_query": "machine learning", "filters": { "publication_year": 2023 }, "select_fields": ["id", "doi", "title", "publication_year", "cited_by_count"] } </arguments> </use_mcp_tool> -
获取特定工作的详细信息:
<use_mcp_tool> <server_name>openalex</server_name> <tool_name>get_work_details</tool_name> <arguments> { "work_id": "W2741809807", "select_fields": ["title", "authorships", "abstract", "open_access"] } </arguments> </use_mcp_tool> -
获取作品的参考文献:
<use_mcp_tool> <server_name>openalex</server_name> <tool_name>get_referenced_works</tool_name> <arguments> { "work_id": "W2741809807" } </arguments> </use_mcp_tool>
发展
要在本地运行服务器进行开发和测试,请执行以下操作:
- 确保已安装依赖项(请参阅安装)。
- 设置
OPENALEX_EMAIL环境变量。 mcp dev server.py