返回市场
科学服务器

科学服务器

作者:pathintegral-institute94 星标更新:2025-09-02

项目介绍

<p align="center"> <img src="assets/logo_landscape.webp" width="800" /> </p> <div align="center">

MCP.science: 科学研究用开源MCP服务器 🔍📚

License: MIT

加入我们,利用AI和开源工具加速科学发现!

</div>

快速开始

在这个仓库中运行任何服务器都只需要一个命令。例如,要启动web-fetch服务器:

uvx mcp-science web-fetch

此命令会处理从安装到执行的所有步骤。有关更多配置详情和其他服务器,请参阅下方的“如何配置MCP服务器用于AI客户端应用”部分。

目录

关于

这个仓库包含一组专门为科学研究应用程序设计的开源MCP服务器。这些服务器使AI模型(如Claude)能够通过标准化协议与科学数据、工具和资源进行交互。

什么是MCP?

MCP是一个开放协议,它标准化了应用程序如何向LLMs提供上下文。可以将MCP想象成AI应用程序的USB-C端口。就像USB-C提供了一种标准化的方式将你的设备连接到各种外围设备和配件一样,MCP提供了一种标准化的方式将AI模型连接到不同的数据源和工具。

MCP帮助你在LLMs之上构建代理和复杂的工作流程。LLMs经常需要与数据和工具集成,而MCP提供了:

  • 一个不断增长的预构建集成列表,你的LLM可以直接插入
  • 在LLM提供商和供应商之间切换的灵活性
  • 在你的基础设施内保护数据的最佳实践

来源:https://modelcontextprotocol.io/introduction

本仓库中的可用服务器

下面是存在于这个单体仓库中的MCP服务器的完整列表。每个条目都链接到包含服务器源代码和README的子目录,以便你可以快速找到文档和使用说明。

示例服务器

一个演示服务器实现所需最小组件的示例MCP服务器。

材料项目

一个专门的MCP服务器,允许AI助手搜索、可视化和操作来自材料项目数据库的材料科学数据。需要一个材料项目API密钥。

Python代码执行

在一个安全的沙箱环境中运行Python代码片段,限制标准库访问,以确保助手可以进行分析和计算而不危及系统。

SSH执行

允许助手通过SSH在远程机器上运行预先验证过的命令,具有可配置的身份验证和命令白名单。

Web抓取

抓取并处理来自网络的HTML、PDF和平面文本内容,以便助手可以引用或总结它们。

TXYZ搜索

通过TXYZ API执行Web、学术和“尽力而为”的搜索。需要一个T-XYZ API密钥。

计时器

一个简单的倒计时计时器,流式传输进度更新以展示MCP通知。

GPAW计算

通过GPAW包提供密度泛函理论(DFT)计算。

Jupyter-Act

让助手与正在运行的Jupyter内核交互,程序化地执行笔记本单元格。

Mathematica-检查

通过无头Mathematica实例评估小段Wolfram语言代码。

NEMAD

神经科学模型分析仪表盘服务器,暴露用于检查NEMAD数据集的工具。

TinyDB

通过TinyDB提供对轻量级JSON数据库的CRUD访问,以便助手可以存储和检索少量结构化数据。

如何配置MCP服务器用于AI客户端应用

如果你不熟悉这些内容,这里有一个逐步指南供你参考:逐步指南配置MCP服务器用于AI客户端应用

先决条件

  1. uv——一个超快的(由Rust驱动的)pip+虚拟环境的替代品。通过以下命令安装:

    curl -sSf https://astral.sh/uv/install.sh | bash
    
  2. 一个支持MCP的客户端应用程序,如 Claude Desktop, VSCode, Goose, 5ire

简短版本——使用uvx

这个仓库中的任何服务器都可以通过一个shell命令启动。模式如下:

uvx mcp-science <服务器名称>

例如,要在本地启动web-fetch标准I/O服务器,在客户端中配置以下命令:

uvx mcp-science web-fetch

这对应于Claude桌面的json配置:

{
  "mcpServers": {
    "web-fetch": {
      "command": "uvx",
      "args": [
        "mcp-science",
        "web-fetch"
      ]
    }
  }
}

该命令会从PyPI下载mcp-science包并运行请求的入口点。

查找其他服务器

查看可用服务器列表——表中的每个条目都可以按照上述模式工作。


可选:使用MCPM管理集成

MCPM是一个方便的命令行工具,可以自动化将服务器连接到支持客户端的过程。虽然不是必需的,但如果你频繁切换客户端或维护大量服务器,它可能会很有用。

基本工作流程如下:

# 首先安装mcpm——它是单独的项目
uv pip install mcpm

mcpm client ls           # 发现支持的客户端
mcpm client set <名称>   # 选择你正在使用的那个

# 添加一个服务器(如果需要,自动安装)
mcpm add web-fetch

命令完成后,重启你的客户端,使其重新加载工具配置。你可以浏览MCPM注册表查找其他社区维护的服务器。

如何构建自己的MCP服务器

请查阅逐步构建自己的MCP服务器获取更多细节。

贡献

我们热烈欢迎对MCP.science的贡献!你可以帮助改进现有服务器,添加新服务器,或者做任何你觉得会使这个项目更好的事情。

如果你不熟悉GitHub和如何为开源仓库做出贡献,那么这可能有点挑战性,但仍然很容易做到。我们建议你首先阅读以下内容:

简而言之,你可以遵循以下步骤:

  1. 将仓库fork到你自己的GitHub账户

  2. 将forked仓库克隆到你的本地机器

  3. 创建一个特性分支(git checkout -b feature/amazing-feature

  4. 进行更改并提交(git commit -m '添加精彩功能'

    <details> <summary>👈 点击查看更多关于目录和命名约定的信息</summary>

    请在servers文件夹下创建你的新服务器。 对于在仓库文件夹下创建一个新的服务器文件夹,你可以简单地运行(将your-new-server替换为你自己的服务器名称)

    uv init --package --no-workspace servers/your-new-server
    uv add --directory servers/your-new-server mcp
    

    这将创建一个带有必要文件的新服务器文件夹:

    servers/your-new-server/
    ├── README.md
    ├── pyproject.toml
    └── src
        └── your_new_server
            └── __init__.py
    

    你可能会看到两个相关的名称出现在配置文件中:

    1. 项目名称(连字符分隔):文件夹、项目名称和pyproject.toml中的脚本名称,例如your-new-server
    2. Python包名称(下划线分隔):src/下的文件夹,例如your_new_server
    </details>
  5. 推送到分支(git push origin feature/amazing-feature

  6. 打开一个拉取请求

请确保你的PR符合以下要求:

  • 清晰的提交信息
  • 正确的文档更新
  • 新功能的测试覆盖率

子仓库中的贡献者认可

如果你想为特定服务器/子仓库(例如servers/gpaw-computation/)认可贡献者,可以在该子目录中使用All Contributors CLI

步骤:

  1. 在你的子仓库(例如servers/gpaw-computation/)中,创建一个.all-contributorsrc文件(参见示例)。
  2. 使用CLI添加贡献者:
    npx all-contributors add <github-用户名> <贡献类型>
    
  3. 生成或更新子仓库README.md中的贡献者部分:
    npx all-contributors generate
    
  4. 提交子仓库README.md.all-contributorsrc的更改。

更多详情,请参阅All Contributors CLI安装指南

许可

本项目采用MIT许可证——详情请参阅LICENSE文件。

致谢

感谢所有贡献者!

引用

对于一般用途,请根据根CITATION.cff引用此仓库。

如果你使用了特定的服务器/子项目,请参阅相应子项目文件夹下的CITATION.cff文件以获得适当的引用。