MCP Scopus
MCP(模型上下文协议)服务器,用于在Scopus上搜索学术论文,帮助人工智能助手撰写论文而不会产生幻觉引用。
 ](https://nodejs.org/) ](https://www.docker.com/)
为何这很重要
当人工智能助理撰写学术论文或研究内容时,他们经常 幻觉引文 -发明不存在的论文,误认作者,或捏造DOI。这个MCP服务器通过让AI直接访问来解决这个问题 真实学术数据 Scopus是世界上最大的摘要和引文数据库。
问题
- 人工智能使不存在的论文产生幻觉
- 捏造的作者姓名和隶属关系
- 发明DOI和引用计数
- 过时或不正确的出版数据
解决方案
- Scopus数据库中的真实论文
- 准确的作者信息
- 已验证的DOI和引用指标
- 最新出版物详细信息
特性
论文搜索与检索
- 搜索路径 -按关键字、标题、作者、摘要、年份范围搜索
- 搜索_个人_高级 -结构化搜索,结合作者、期刊、隶属关系、关键字、年份范围和文档类型,无需Scopus查询语法
- get_paper_by_id -通过Scopus ID获取完整详细信息
- get_paper_by_doi -按DOI检索论文(包括作者、所属机构、关键字在内的完整元数据)
- 获取_摘要 -获取论文摘要
作者信息
- 搜索_作者 -按姓名查找作者
- 获取作者id -获取包含h指数、引文、主题领域和顶级合著者的作者简介
- 获取_作者_出版物 -列出作者的所有出版物
引文分析
- get_citations -引用特定作品的论文
- 获取引用 -论文参考书目(对大型参考文献列表有分页警告)
- get_citation_overview -论文的逐年引用细分
期刊与场馆情报
- 获取新闻资讯 -获取期刊指标:CiteScore、SJR、SNIP、学科领域
- 搜索_期刊 -按名称搜索期刊,获取ISSN和元数据
机构和域名搜索
- 搜索\_ \_隶属关系 -按大学/组织查找论文(带年份过滤)
- 搜索_主题_区域 -在ASJC主题领域代码中搜索特定领域的文献综述
______________________________________________________________________
安装
先决条件
- Node.js 18+ (必填)
- A. Scopus API密钥 (学术用途免费)
步骤1:克隆和构建
# Clone the repository
git clone https://github.com/andri-setiawan/MCP-scopus.git
cd MCP-scopus
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test步骤2:获取Scopus API密钥
- 访问 爱思唯尔开发者门户
- 创建一个免费账户
- 申请API访问权限
- 选择“Scopus搜索API”
- 您将通过电子邮件收到API密钥
注: 免费API密钥有速率限制。对于生产用途,请考虑付费订阅。
______________________________________________________________________
配置(选择一个)
选项A:直接Node.js(推荐)
最稳定可靠的方法。 直接使用stdio传输,无需网络开销。
Claude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"scopus": {
"command": "node",
"args": [
"/path/to/MCP-scopus/dist/index.js"
],
"env": {
"SCOPUS_API_KEY": "your_api_key_here"
}
}
}
}配置文件位置:
| 操作系统 | 路径 |
|---|---|
| 窗户 | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
示例:Windows配置
{
"mcpServers": {
"scopus": {
"command": "node",
"args": [
"D:\\Documents\\MCP-scopus\\dist\\index.js"
],
"env": {
"SCOPUS_API_KEY": "your_api_key_here"
}
}
}
}示例:macOS/Linux配置
{
"mcpServers": {
"scopus": {
"command": "node",
"args": [
"/home/username/MCP-scopus/dist/index.js"
],
"env": {
"SCOPUS_API_KEY": "your_api_key_here"
}
}
}
}为什么推荐这种方法
| 特性 | 直接Node.js | HTTP/SSE(Docker) |
|---|---|---|
| 稳定性 | 最佳 | 良好 |
| 延迟 | 较低 | 较高 |
| 连接 | 直接stdio | 基于网络 |
| 超时 | 没有问题 | 可能 |
| 需要Docker | 否 | 是 |
| 设置复杂性 | 简单 | 更复杂 |
______________________________________________________________________
选项B:Docker+HTTP/SSE(替代方案)
如果您喜欢容器化或需要远程访问:
# Build the image
docker build -t mcp-scopus .
# Run the container
docker run -d \
--name mcp-scopus \
--restart unless-stopped \
-p 5566:5566 \
-e SCOPUS_API_KEY=your_api_key_here \
mcp-scopusClaude桌面配置(HTTP)
{
"mcpServers": {
"scopus": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:5566/sse"],
"env": {}
}
}
}Docker管理
docker logs mcp-scopus # View logs
docker restart mcp-scopus # Restart container
docker stop mcp-scopus # Stop container
docker start mcp-scopus # Start container______________________________________________________________________
用法示例
配置后,重新启动Claude Desktop并尝试:
"Search for recent papers about transformer architectures in NLP"
"Find papers by Geoffrey Hinton from the last 5 years"
"What papers cite the attention is all you need paper?"
"Get details about paper with DOI 10.1016/j.example.2023.01.001"
"Find publications from Stanford University about machine learning"
"What are the metrics for the journal Nature (ISSN 0028-0836)?"
"Search for conference papers about LLMs published between 2023 and 2024"
"Show me the citation trajectory of paper 2-s2.0-85012345678"
"Find papers in Computer Science (ASJC 1700) about reinforcement learning"搜索语法
服务器支持Scopus高级查询语法:
machine learning AND PUBYEAR > 2023
TITLE(deep learning) AND AUTHOR(lecun)
ABS(neural networks) AND KEY(transformer)
SRCTITLE(Nature) AND PUBYEAR = 2024或使用 search_papers_advanced 对于不学习Scopus语法的结构化查询:
keywords: "transformer", author: "vaswani", journal: "NeurIPS", yearFrom: 2017, documentType: "conference-paper"______________________________________________________________________
可用工具
| 工具 | 说明 |
|---|---|
search_papers | 使用过滤器和年份范围按查询搜索论文 |
search_papers_advanced | 结构化多字段搜索(作者、期刊、所属机构、关键字、年份、文档类型) |
get_paper_by_id | 通过Scopus ID获取论文详细信息 |
get_paper_by_doi | 按DOI获取论文详细信息(完整元数据) |
get_abstract | 获取论文摘要 |
search_authors | 搜索作者 |
get_author_by_id | 获取合著者的个人资料 |
get_author_publications | 列出作者的论文 |
get_citations | 获取引用论文 |
get_references | 获取论文的参考文献 |
get_citation_overview | 逐年引文细分 |
get_journal_info | 期刊指标:CiteScore、SJR、SNIP |
search_journals | 按名称搜索期刊 |
search_by_affiliation | 按机构搜索(带年份过滤器) |
search_by_subject_area | 按ASJC主题代码搜索 |
______________________________________________________________________
api参考
搜索路径
{
query: string, // Required: Search query
count?: number, // Default: 10, Max: 200
start?: number, // For pagination
sortBy?: string, // 'relevance' | 'date' | 'citedby-count' | 'pub-name'
sortOrder?: string, // 'asc' | 'desc'
yearFrom?: number, // Filter from year (e.g., 2020)
yearTo?: number // Filter to year (e.g., 2024)
}搜索_个人_高级
{
keywords?: string, // Keywords for title/abstract/keywords search
author?: string, // Author name
affiliation?: string, // Institution name
journal?: string, // Source/journal title
yearFrom?: number, // Start year
yearTo?: number, // End year
documentType?: string, // 'article' | 'review' | 'conference-paper' | etc.
count?: number, // Default: 10
sortBy?: string, // Sort field
sortOrder?: string // Sort order
}获取新闻资讯
{
issn: string // Required: ISSN of the journal
}get_citation_overview
{
scopusId: string // Required: Scopus ID of the paper
}搜索_主题_区域
{
subjectCode: string, // Required: ASJC code (e.g., '1700' for Computer Science)
keywords?: string, // Additional keywords
yearFrom?: number, // Start year
yearTo?: number, // End year
count?: number, // Default: 10
sortBy?: string, // Sort field
sortOrder?: string // Sort order
}______________________________________________________________________
建筑
src/
index.ts # Stdio MCP server (recommended)
http-server.ts # HTTP/SSE MCP server (alternative)
handlers.ts # All tool execution logic (shared)
tools.ts # Tool definitions and schemas (shared)
formatters.ts # Response formatting helpers (shared)
client.ts # Scopus API client with rate limiting (shared)
schemas.ts # Zod input validation schemas (shared)
types.ts # TypeScript interfaces for Scopus API responses
__tests__/ # Test suite两种运输模式通过以下方式共享相同的逻辑 registerHandlers() 功能,因此任何错误修复或功能都适用于两者。
______________________________________________________________________
发展
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run tests
npm test
# Watch tests
npm run test:watch
# Run in development mode (stdio)
npm run dev
# Run HTTP server
npm run start:http______________________________________________________________________
项目结构
MCP-scopus/
src/
index.ts # Stdio MCP server (recommended)
http-server.ts # HTTP/SSE MCP server (alternative)
handlers.ts # Shared tool execution logic
tools.ts # Shared tool definitions
formatters.ts # Response formatters
client.ts # API client with rate limiting
schemas.ts # Zod validation schemas
types.ts # TypeScript interfaces
__tests__/ # Test files
dist/ # Compiled JavaScript
Dockerfile
docker-compose.yml
package.json
tsconfig.json
vitest.config.ts
README.md______________________________________________________________________
故障排除
连接超时错误
如果您在HTTP/SSE中看到超时错误, 切换到选项A(Direct Node.js) -它更稳定。
API关键问题
# Test your API key
curl -H "X-ELS-APIKey: your_key" "https://api.elsevier.com/content/search/scopus?query=test"速率限制(429个错误)
服务器以指数回退方式自动重试429个响应。如果你仍然看到问题,减少你的 count 参数或空格请求。
容器无法启动
# Check logs
docker logs mcp-scopus
# Rebuild
docker stop mcp-scopus && docker rm mcp-scopus
docker build -t mcp-scopus . --no-cache
docker run -d --name mcp-scopus -p 5566:5566 -e SCOPUS_API_KEY=your_key mcp-scopus______________________________________________________________________
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
致谢
- 模型上下文协议 通过Anthropic
- API Scopus 爱思唯尔
______________________________________________________________________
免责声明
本项目不隶属于爱思唯尔或Scopus,也不由其认可或赞助。Scopus是爱思唯尔公司的注册商标。使用Scopus API受爱思唯耳服务条款约束。
