返回市场
科学枢纽MCP服务器

科学枢纽MCP服务器

作者:Ladvien2 星标更新:2025-09-26

项目介绍

rust-research-mcp

一个用于学术研究和知识积累的模型上下文协议(MCP)服务器,通过智能论文搜索、检索和元数据提取实现。

License: GPL-3.0 Rust MCP Compatible MSRV

⚠️ 法律免责声明

重要:此工具仅限个人学术用途。

本软件仅供教育和研究目的使用。用户应确保其使用符合以下规定:

  • 所有适用的法律和法规
  • 出版商的服务条款
  • 机构政策
  • 版权限制

该工具的开发者不支持或鼓励任何非法活动。用户应:

  • 仅访问他们有权访问的论文
  • 尊重知识产权
  • 根据合理使用原则使用检索到的材料
  • 考虑通过合法渠道支持作者和出版商

使用本软件即表示您理解并同意遵守所有关于访问学术内容的适用法律和法规。

功能

  • 🔍 多提供商搜索:跨14个学术来源进行综合搜索:

    • CrossRef - 1.3亿篇论文的权威元数据
    • Semantic Scholar - 带PDF访问权限的人工智能驱动搜索
    • arXiv - 物理学、计算机科学和数学预印本
    • PubMed Central - 生物医学和生命科学论文
    • OpenReview - 机器学习会议论文(如NeurIPS、ICLR等)
    • OpenAlex - 开放的文献数据库
    • CORE - 3.5亿篇开放获取论文
    • Unpaywall - 合法免费PDF发现
    • SSRN - 社会科学工作论文
    • bioRxiv - 生物学预印本
    • MDPI - 开放获取期刊
    • ResearchGate - 学术社交网络(道德访问)
    • Sci-Hub - 全文备用(最低优先级)
  • 🧠 智能路由:基于以下条件的智能提供商优先级:

    • 学术领域检测(计算机科学/机器学习、生物医学、物理、社会科学)
    • 搜索类型优化(DOI、作者、标题、关键词)
    • 内容可用性(PDF访问、最新论文、开放获取)
    • 时间相关性(近期与历史内容)
  • 📥 强大的下载:多提供商回退机制,零字节保护和完整性验证

  • 🔍 代码模式搜索:使用正则表达式在研究论文中搜索算法实现

  • 📊 元数据提取:从PDF中批量处理提取文献信息

  • 📚 参考文献生成:多种格式引用(BibTeX、APA、MLA、芝加哥、IEEE、哈佛)

  • 🏷️ 智能分类:自动论文分类和组织

  • 🤖 MCP集成:对Claude Desktop和Claude Code工作流的原生支持

  • 高性能:使用Rust构建,速度快且可靠

  • 🔄 弹性架构:断路器、速率限制、自动重试和优雅错误处理

  • 🛡️ 安全第一:仅HTTPS连接,证书验证和安全HTTP客户端工厂

  • 🔧 守护进程模式:后台服务,带有健康监控和信号处理

安装

快速开始(推荐)

从源码构建:

# 预备条件:Rust 1.70+(从 https://rustup.rs/ 安装)
git clone https://github.com/Ladvien/sci_hub_mcp.git
cd sci_hub_mcp
cargo build --release

# 二进制文件位于 ./target/release/rust-research-mcp
# 移动到永久位置
sudo cp target/release/rust-research-mcp /usr/local/bin/

其他安装方法

使用Cargo:

cargo install rust-research-mcp

开发构建:

git clone https://github.com/Ladvien/sci_hub_mcp.git
cd sci_hub_mcp
cargo build --release

对于Claude Desktop的配置

在您的Claude Desktop配置文件中添加以下内容:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "rust-research-mcp": {
      "command": "/usr/local/bin/rust-research-mcp",
      "args": [
        "--download-dir", "~/downloads/research_papers",
        "--log-level", "info"
      ],
      "env": {
        "RUST_LOG": "info"
      }
    }
  }
}

守护进程模式

对于生产部署,您可以作为守护进程运行服务器:

# 使用自定义配置启动守护进程
rust-research-mcp --daemon --pid-file /var/run/rust-research-mcp.pid --health-port 8090

# 检查守护进程状态
curl http://localhost:8090/health

# 停止守护进程(发送SIGTERM以优雅关闭)
kill -TERM $(cat /var/run/rust-research-mcp.pid)

使用

配置完成后,您可以请求Claude执行以下操作:

  • 搜索论文:"搜索最近关于量子计算的论文"
  • 下载论文:"下载搜索结果中的第一篇论文"
  • 提取元数据:"从PDF文件中提取元数据"

命令行选项

rust-research-mcp [OPTIONS]

选项:
  -v, --verbose                    启用详细日志记录
  -c, --config <PATH>             配置文件路径
  -d, --daemon                    作为守护进程运行
      --pid-file <PATH>           守护进程模式下的PID文件路径
      --health-port <PORT>        健康检查端口 [默认值:8090]
      --port <PORT>               覆盖服务器端口
      --host <HOST>               覆盖服务器主机
      --log-level <LEVEL>         覆盖日志级别(trace, debug, info, warn, error)
      --profile <PROFILE>         设置环境配置(development, production)
      --download-dir <PATH>       覆盖下载目录路径
      --generate-schema           为配置生成JSON模式
  -h, --help                      显示帮助信息
  -V, --version                   显示版本信息

环境变量

  • RUST_RESEARCH_MCP_*:配置变量(详见config.toml中的完整列表)
  • RUST_LOG:标准Rust日志配置(debug, info, warn, error, trace)

可用工具

核心研究工具

search_papers

跨14个不同学术来源搜索学术论文,具有智能提供商路由。

参数:

  • query(必需):搜索查询(DOI、标题、作者或关键词)
  • search_type(可选):搜索类型(auto, doi, title, author, author_year
  • limit(可选):返回的最大结果数(默认:10)
  • offset(可选):分页偏移量(默认:0)

download_paper

使用多提供商回退和完整性验证下载论文PDF。

参数:

  • doi(可选):要下载的论文的DOI
  • url(可选):直接下载URL(替代DOI)
  • filename(可选):下载PDF的自定义文件名
  • directory(可选):目标目录(未指定时使用默认下载目录)
  • category(可选):组织类别(创建子目录)
  • overwrite(可选):是否覆盖现有文件(默认:false)
  • verify_integrity(可选):下载后验证文件完整性(默认:true)

extract_metadata

使用多种提取方法从PDF文件中提取文献元数据。

参数:

  • file_path(必需):PDF文件的路径
  • extract_full_text(可选):同时提取全文内容(默认:false)
  • extract_references(可选):提取参考文献列表(默认:false)

高级工具

search_code

使用正则表达式模式在已下载的研究论文中搜索代码模式。

参数:

  • pattern(必需):要搜索的正则表达式模式
  • search_dir(可选):搜索的目录(默认为下载目录)
  • file_extensions(可选):要搜索的文件扩展名(默认:[".pdf", ".txt"])
  • max_results(可选):返回的最大结果数(默认:50)
  • context_lines(可选):匹配周围的行数(默认:2)

generate_bibliography

根据论文元数据生成多种引用格式的格式化引用。

参数:

  • papers(必需):论文元数据或DOI数组
  • format(可选):引用格式(bibtex, apa, mla, chicago, ieee)(默认:bibtex)
  • sort_by(可选):排序顺序(author, year, title)(默认:author)
  • include_abstracts(可选):在输出中包括摘要(默认:false)

categorize_papers

根据内容和元数据自动分类研究论文。

参数:

  • papers(必需):论文元数据或文件路径数组
  • category_scheme(可选):分类方案(subject, methodology, custom
  • custom_categories(可选):自定义分类定义
  • confidence_threshold(可选):分类的最小置信度(默认:0.7)

示例工作流程

研究收集工作流程

# 第一步:搜索特定主题的论文
"搜索最近关于Transformer架构的论文,限制20篇"

# 第二步:下载选定的论文
"下载DOI为10.1038/nature12373的论文到~/research/transformers/"

# 第三步:提取元数据以便组织
"从~/research/transformers/paper.pdf中提取元数据"

# 第四步:搜索代码实现
"在~/research/transformers/中搜索'class Transformer'模式"

# 第五步:生成参考文献
"从收集的论文中创建BibTeX参考文献"

文献综述工作流程

# 在多个方面搜索主题
"搜索由作者'Yoshua Bengio'撰写的深度学习论文"
"搜索关于神经网络注意力机制的论文"

# 按类别整理论文
"按方法论对~/research/attention/中的论文进行分类"

# 生成全面的参考文献
"从所有分类的论文中生成IEEE格式的参考文献"

Claude Code集成

此MCP服务器特别增强了Claude Code工作流,具备高级研究能力:

开发者的关键优势

  • 算法发现:在学术论文中找到参考实现
  • 代码模式搜索:使用正则表达式在整个研究出版物中搜索
  • 引用管理:为项目生成正确格式化的引用
  • 研究组织:自动分类和元数据提取

集成提示

  1. 配置下载目录:设置专用的研究工作区
  2. 使用搜索模式:利用正则表达式查找特定实现
  3. 按类别组织:使用自动分类以更好地组织
  4. 生成文档:创建正确的引用和参考文献

配置文件

~/.config/knowledge_accumulator_mcp/config.toml创建配置文件:

# 服务器配置
[server]
port = 8080
host = "127.0.0.1"
graceful_shutdown_timeout_secs = 30

# 研究来源配置
[research_source]
provider_timeout_secs = 30
max_results_per_provider = 50

# 下载设置
[downloads]
directory = "~/downloads/research_papers"
max_concurrent_downloads = 5
max_file_size_mb = 100
verify_integrity = true

# 日志配置
[logging]
level = "info"
format = "pretty"
output = "stderr"

# 弹性设置
[circuit_breaker]
failure_threshold = 5
timeout_duration_secs = 60
half_open_max_calls = 3

[rate_limiting]
requests_per_second = 2
burst_size = 10

开发

运行测试

# 运行所有测试(并行执行)
cargo nextest run

# 运行特定测试
cargo nextest run TEST_NAME

# 运行带覆盖率报告
cargo tarpaulin --out Html

# 运行集成测试
cargo test --test comprehensive_e2e_scenarios

代码质量

# 格式化代码
cargo fmt

# 运行lint(提交前必须通过)
cargo clippy -- -D warnings

# 安全审计
cargo audit

# 构建发布版本
cargo build --release

架构

该项目遵循干净、模块化的架构,采用依赖注入:

src/
├── main.rs          # CLI入口点和配置
├── lib.rs           # 公共API和导出
├── server/          # MCP服务器实现
│   ├── handler.rs   # MCP请求处理器
│   └── transport.rs # 传输层验证
├── tools/           # MCP工具实现
│   ├── search.rs    # 多提供商搜索
│   ├── download.rs  # 论文下载及回退
│   ├── metadata.rs  # PDF元数据提取
│   ├── code_search.rs # 代码模式搜索
│   ├── bibliography.rs # 引用生成
│   └── categorize.rs # 论文分类
├── client/          # 研究来源集成
│   ├── meta_search.rs # 元搜索编排
│   ├── mirror.rs    # 镜像管理
│   ├── rate_limiter.rs # 速率限制
│   └── providers/   # 学术来源实现
│       ├── arxiv.rs
│       ├── crossref.rs
│       ├── semantic_scholar.rs
│       ├── pubmed_central.rs
│       ├── openreview.rs
│       ├── openalex.rs
│       └── ... (总共14个提供商)
├── resilience/      # 断路器和重试逻辑
├── services/        # 业务逻辑服务
├── config/          # 配置管理
└── error.rs         # 中央化错误处理

更新日志

版本0.6.6(当前)

  • 🏗️ 完整架构重构:干净的六边形架构,采用依赖注入
  • 🚀 14个学术提供商:全面覆盖,包括OpenAlex、PubMed Central、OpenReview
  • 🧠 智能提供商路由:基于领域、搜索类型和内容可用性的上下文感知选择
  • 🔧 增强的MCP集成:完整的rmcp框架集成,具有适当的工具定义
  • 🛡️ 安全强化:仅HTTPS客户端,证书验证,安全HTTP工厂
  • 🔄 弹性特性:断路器、速率限制、自动重试、优雅降级
  • 🏷️ 智能分类:自动论文分类和组织
  • 📊 高级元数据提取:多种提取方法,支持批处理
  • 🔍 代码模式搜索:在整个研究出版物中使用正则表达式搜索
  • 📚 多种格式引用:支持BibTeX、APA、MLA、芝加哥、IEEE格式
  • 🔧 守护进程模式:带有健康监控的生产就绪后台服务
  • 📝 综合测试:端到端场景、集成测试、安全审计

贡献

欢迎贡献!请阅读我们的贡献指南了解详情。

  1. 分叉仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m '添加惊人的功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开拉取请求

故障排除

常见问题

问题:论文无法下载

  • 解决方案:该工具使用14个不同的提供商和智能回退。检查网络连接并尝试其他搜索词。

问题:MCP服务器无法连接

  • 解决方案:验证claude_desktop_config.json中的二进制路径是绝对路径,并且二进制文件具有执行权限(chmod +x)。

问题:内存使用过高

  • 解决方案:在config.toml中配置合适的并发限制。降低资源有限系统上的max_concurrent_downloads

问题:提供商超时错误

  • 解决方案:增加配置中的provider_timeout_secs或检查到学术数据库的互联网连接。

问题:断路器错误

  • 解决方案:系统使用断路器来增强弹性。等待超时期或检查提供商可用性。

日志

守护进程模式日志:

  • 查看:journalctl -u rust-research-mcp(systemd)
  • 或查看:`/var/log/rust-research-mcp