学术文献搜索服务

一个提供与Semantic Scholar学术数据库无缝集成的模型上下文协议(MCP)服务器,支持文献检索、作者研究、引用分析和AI驱动的论文推荐。

  • by alperenkocyigit
  • Python
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 alperenkocyigit/semantic-scholar-graph-api

使用说明

📚 语义学者MCP服务器

一个全面的模型上下文协议(MCP)服务器,用于与语义学者的学术数据库无缝集成

维护人员: @阿尔卑斯山

这个强大的MCP服务器通过提供对Semantic Scholar综合数据库的直接访问,弥合了人工智能助理和学术研究之间的差距。无论您是进行文献综述、探索引文网络还是寻求学术见解,该服务器都为数百万篇研究论文提供了一个简化的界面。

🌟 你能做什么?

🔍 高级论文发现

  • 智能搜索:使用自然语言查询查找论文
  • 批量操作:同时处理多篇论文
  • 自动完成:键入时获取智能标题建议
  • 精准匹配:使用基于标题的搜索查找确切的论文

🎯 基于人工智能的推荐

  • 智能纸建议:根据您的兴趣获得个性化的论文建议
  • 多示例学习:使用多个正面和负面例子来微调建议
  • 单张纸相似性:查找与特定研究工作类似的论文
  • 相关性评分:人工智能支持的相关性评分,可更好地发现论文

👥 作者研究

  • 作者简介:全面的作者信息和指标
  • 批量作者数据:一次获取多个作者资料
  • 作者搜索:按姓名或隶属关系查找研究人员

📊 引文分析

  • 引用网络:探索正向和反向引用
  • 参考映射:了解纸张关系
  • 影响指标:访问引用次数和论文影响

💡 内容发现

  • 文本片段:在纸张内容中搜索
  • 背景结果:查找相关段落和引文
  • 全文访问:通过语义学者提供时

🛠️ 快速设置

系统要求

  • python:3.10或更高
  • 依赖项: requests, mcp, bs4, pydantic, uvicorn, httpx, anyio
  • 网络:用于API访问的稳定互联网连接

🆕 新增:MCP流式HTTP传输

此服务器现在实现 MCP流式HTTP 传输协议,提供:

  • 并发性提高20倍:处理更多同时进行的请求
  • 减少延迟:直接HTTP通信,响应时间更快
  • 更好的资源效率:更有效地利用资源
  • 面向未来:HTTP是MCP规范中推荐的传输方式

服务器使用FastMCP实现无缝MCP协议合规性和最佳性能。

🚀 安装选项

⚡ 使用Smithery一键安装

对于Claude Desktop:

npx -y @smithery/cli@latest install @alperenkocyigit/semantic-scholar-graph-api --client claude --config "{}"

对于游标IDE: 引导到 Settings → Cursor Settings → MCP → Add new server 并粘贴:

npx -y @smithery/cli@latest run @alperenkocyigit/semantic-scholar-graph-api --client cursor --config "{}"

对于风帆:

npx -y @smithery/cli@latest install @alperenkocyigit/semantic-scholar-graph-api --client windsurf --config "{}"

对于克莱恩:

npx -y @smithery/cli@latest install @alperenkocyigit/semantic-scholar-graph-api --client cline --config "{}"

🔧 手动安装

  1. 克隆存储库:

    git clone https://github.com/alperenkocyigit/semantic-scholar-graph-api.git
    cd semantic-scholar-graph-api
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 运行MCP流式HTTP服务器:

    python server.py
    

🔧 配置指南

本地设置

Claude桌面设置

macOS/Linux配置: 添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "semanticscholar": {
      "command": "python",
      "args": ["/path/to/your/semantic_scholar_server.py"]
    }
  }
}

Windows配置:

{
  "mcpServers": {
    "semanticscholar": {
      "command": "C:\\Users\\YOUR_USERNAME\\miniconda3\\envs\\mcp_server\\python.exe",
      "args": ["D:\\path\\to\\your\\semantic_scholar_server.py"],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

临床整合

{
  "mcpServers": {
    "semanticscholar": {
      "command": "bash",
      "args": [
        "-c",
        "source /path/to/your/.venv/bin/activate && python /path/to/your/semantic_scholar_server.py"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

远程设置

自动配置

npx -y @smithery/cli@latest install @alperenkocyigit/semantic-scholar-graph-api --client <valid-client-name> --key <your-smithery-api-key>

有效客户端名称:[claude、cursor、vscode、boltai]

Json配置

macOS/Linux配置:

{
  "mcpServers": {
    "semantic-scholar-graph-api": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@alperenkocyigit/semantic-scholar-graph-api",
        "--key",
        "your-smithery-api-key"
      ]
    }
  }
}

Windows配置:

{
  "mcpServers": {
    "semantic-scholar-graph-api": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@smithery/cli@latest",
        "run",
        "@alperenkocyigit/semantic-scholar-graph-api",
        "--key",
        "your-smithery-api-key"
      ]
    }
  }
}

WSL配置:

{
  "mcpServers": {
    "semantic-scholar-graph-api": {
      "command": "wsl",
      "args": [
        "npx",
        "-y",
        "@smithery/cli@latest",
        "run",
        "@alperenkocyigit/semantic-scholar-graph-api",
        "--key",
        "your-smithery-api-key"
      ]
    }
  }
}

🎯 可用工具

工具 描述 用例
search_semantic_scholar 按查询搜索论文 文献发现
search_semantic_scholar_authors 按姓名查找作者 研究人员身份
get_semantic_scholar_paper_details 获取全面的论文信息 详细分析
get_semantic_scholar_author_details 获取作者资料 作者研究
get_semantic_scholar_citations_and_references 获取引文网络 影响分析
get_semantic_scholar_paper_match 查找精确的纸张匹配 精确搜索
get_semantic_scholar_paper_autocomplete 获取标题建议 智能完成
get_semantic_scholar_papers_batch 批量纸张检索 批量处理
get_semantic_scholar_authors_batch 批量作者数据 批量分析
search_semantic_scholar_snippets 搜索文本内容 内容发现
get_semantic_scholar_paper_recommendations_from_lists 从正面/负面例子中获得建议 人工智能驱动的发现
get_semantic_scholar_paper_recommendations 从单篇论文中获取推荐 类似的论文发现

💡 使用示例

基本论文搜索

# Search for papers on machine learning
results = await search_semantic_scholar("machine learning", num_results=5)

作者研究

# Find authors working on natural language processing
authors = await search_semantic_scholar_authors("natural language processing")

引文分析

# Get citation network for a specific paper
citations = await get_semantic_scholar_citations_and_references("paper_id_here")

🆕 人工智能论文推荐

多示例建议

# Get recommendations based on multiple positive and negative examples
positive_papers = ["paper_id_1", "paper_id_2", "paper_id_3"]
negative_papers = ["bad_paper_id_1", "bad_paper_id_2"]
recommendations = await get_semantic_scholar_paper_recommendations_from_lists(
    positive_paper_ids=positive_papers,
    negative_paper_ids=negative_papers,
    limit=20
)

单张纸相似性

# Find papers similar to a specific research work
similar_papers = await get_semantic_scholar_paper_recommendations(
    paper_id="target_paper_id",
    limit=15
)

内容发现

# Search for specific text content within papers
snippets = await search_semantic_scholar_snippets(
    query="neural network optimization",
    limit=10
)

📂 项目架构

semantic-scholar-graph-api/
├── 📄 README.md                    # Project documentation
├── 📋 requirements.txt             # Python dependencies
├── 🔍 search.py   # Core API interaction module
├── 🖥️ server.py   # MCP server implementation
└── 🗂️ __pycache__/                # Compiled Python files

核心组件

  • search.py:处理与Semantic Scholar API的所有交互,包括速率限制、错误处理和数据处理
  • server.py:实现MCP服务器协议,并公开用于AI助手集成的工具

🤝 贡献

我们欢迎社区的贡献!以下是您可以提供帮助的方式:

贡献方式

  • 🐛 错误报告:发现问题?让我们知道!
  • 💡 功能请求:有改进的想法吗?
  • 🔧 代码贡献:提交拉取请求
  • 📖 文档:帮助改进我们的文档

开发环境设置

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 进行更改并彻底测试
  4. 提交您的更改: git commit -m 'Add amazing feature'
  5. 推到分支: git push origin feature/amazing-feature
  6. 打开拉取请求

📄 许可证

该项目根据 MIT许可证 -看看 许可证 文件以获取详细信息。


🙏 致谢

  • 语义学者团队 提供卓越的API
  • 模型上下文协议 社区框架
  • 贡献者 谁帮助改进这个项目

📞 支持


Made with ❤️ for the research community
Empowering AI agents with academic knowledge