Crossref MCP 服务器是一个用于与 Crossref API 交互的模型上下文协议 (MCP) 服务器,它能帮助用户根据标题、作者搜索作品,还能通过 DOI 获取作品详细信息。
在配置文件中添加以下内容来安装:
{
"mcpServers": {
"crossref": {
"command": "npx",
"args": [
"-y",
"@botanicastudios/crossref-mcp"
]
}
}
}
该服务器提供了三种主要工具,以下是具体使用示例:
根据标题在 Crossref 中搜索作品:
// 示例:搜索包含 "量子计算" 在标题中的作品
{
"title": "quantum computing",
"rows": 5 // 可选,默认为 5
}
根据作者在 Crossref 中搜索作品:
// 示例:搜索由 "Einstein" 撰写的著作
{
"author": "Einstein",
"rows": 5 // 可选,默认为 5
}
通过 DOI 获取特定作品的信息:
// 示例:获取 DOI 为 "10.1088/1742-6596/1398/1/012023" 的作品
{
"doi": "10.1088/1742-6596/1398/1/012023"
}
所有响应均以结构化的 JSON 对象形式返回,具有以下格式:
{
"status": "success",
"query": {
/* 原始查询参数 */
},
"count": 5,
"results": [
{
"title": "作品标题",
"authors": [
{
"given": "名字",
"family": "姓氏",
"name": "名字 姓氏"
}
],
"published": {
"dateParts": [2023, 1, 15],
"dateString": "2023-1-15"
},
"type": "期刊文章",
"doi": "10.xxxx/xxxxx",
"url": "https://doi.org/10.xxxx/xxxxx",
"journalTitle": "期刊标题",
"volume": "卷号",
"issue": "期数",
"pageRange": "页码范围"
}
]
}
{
"status": "success",
"result": {
"title": "作品标题",
"authors": [
{
"given": "名字",
"family": "姓氏",
"name": "名字 姓氏"
}
],
"published": {
"dateParts": [2023, 1, 15],
"dateString": "2023-1-15"
},
"type": "期刊文章",
"doi": "10.xxxx/xxxxx",
"url": "https://doi.org/10.xxxx/xxxxx",
"journalTitle": "期刊标题",
"volume": "卷号",
"issue": "期数",
"pageRange": "页码范围"
}
}
{
"status": "error",
"message": "错误信息"
}
要运行测试套件,请执行以下命令:
npm test crossref
crossref-mock 模拟 Crossref API 的响应。要添加更多测试用例,请按照以下步骤操作:
test/crossref.test.js 文件中,添加新的测试描述文件。通过这些工具和方法,您可以轻松地与 Crossref API 交互,并获取所需的作品信息。