🚀 MCP.science:用于科学研究的开源MCP服务器 🔍📚
MCP.science 是一个专注于科学研究的开源项目,它提供了一系列 MCP 服务器,借助标准化协议让 AI 模型能与科学数据、工具和资源进行交互,极大地加速了科学发现的进程。
🚀 快速开始
在本仓库中运行任何服务器都只需一个简单的命令。例如,要启动 web-fetch 服务器,可执行以下命令:
uvx mcp-science web-fetch
此命令会处理从安装到执行的所有操作。如需了解更多配置细节和查找其他服务器,请参阅下面的 "如何为 AI 客户端应用程序配置 MCP 服务器" 部分。
✨ 主要特性
- 本仓库包含一系列专门为科学研究应用设计的开源 MCP 服务器。
- 这些服务器通过标准化协议,使 AI 模型(如 Claude)能够与科学数据、工具和资源进行交互。
- MCP 作为一种开放协议,为应用程序向大语言模型提供上下文提供了标准化方式,类似于 USB - C 端口为设备连接外设和配件提供标准化方式。
- MCP 提供了一系列预构建的集成,便于大语言模型直接接入,同时支持灵活切换大语言模型提供商,还提供了在基础设施内保护数据的最佳实践。
📦 安装指南
前提条件
- uv — 一种超快速(由 Rust 驱动)的 pip + virtualenv 的替代工具。使用以下命令进行安装:
curl -sSf https://astral.sh/uv/install.sh | bash
- 一个支持 MCP 的客户端应用程序,如 Claude Desktop、VSCode、Goose、5ire。
快速启动 - 使用 uvx
本仓库中的任何服务器都可以通过一个简单的 shell 命令启动,命令格式如下:
uvx mcp-science <服务器名称>
例如,要在本地启动 web-fetch 标准输入输出服务器,可在客户端配置以下命令:
uvx mcp-science web-fetch
这在 Claude 桌面版的 JSON 配置中对应的内容如下:
{
"mcpServers": {
"web-fetch": {
"command": "uvx",
"args": [
"mcp-science",
"web-fetch"
]
}
}
}
该命令将从 PyPI 下载 mcp-science 包并运行所需的入口点。
查找其他服务器
查看 可用服务器 列表,表中的每个条目都可以使用上述命令格式启动。
可选:使用 MCPM 管理集成
MCPM 是一个方便的命令行工具,可自动将服务器连接到支持的客户端。虽然不是必需的,但如果您经常在不同客户端之间切换或维护大量服务器,它会非常有用。
基本工作流程如下:
uv pip install mcpm
mcpm client ls
mcpm client set <名称>
mcpm add web-fetch
命令执行完成后,重启客户端,以便重新加载其工具配置。您可以浏览 MCPM 注册表 以获取更多社区维护的服务器。
💻 使用示例
基础用法
uvx mcp-science web-fetch
📚 详细文档
关于
本仓库包含一系列专门为科学研究应用设计的开源 MCP 服务器。这些服务器使 AI 模型(如 Claude)能够通过标准化协议与科学数据、工具和资源进行交互。
什么是 MCP?
MCP 是一种开放协议,它标准化了应用程序向大语言模型提供上下文的方式。可以将 MCP 想象成 AI 应用程序的 USB - C 端口。就像 USB - C 为设备连接各种外设和配件提供了标准化方式一样,MCP 为 AI 模型连接不同数据源和工具提供了标准化方式。
MCP 有助于在大语言模型之上构建代理和复杂工作流。大语言模型经常需要与数据和工具集成,而 MCP 提供了:
- 一个不断增长的预构建集成列表,您的大语言模型可以直接接入。
- 灵活切换大语言模型提供商和供应商的能力。
- 在您的基础设施内保护数据的最佳实践。
来源:https://modelcontextprotocol.io/introduction
可用服务器
以下是本单仓库中可用的 MCP 服务器的完整列表。每个条目都链接到包含服务器源代码和 README 的子目录,以便您快速找到文档和使用说明。
示例服务器
一个示例 MCP 服务器,展示了服务器实现所需的最小组件。
材料项目
一个专门的 MCP 服务器,使 AI 助手能够搜索、可视化和操作材料科学数据库中的数据。需要材料项目 API 密钥。
Python 代码执行
在安全的沙箱环境中运行 Python 代码片段,对标准库的访问进行了限制,以便助手可以进行分析和计算,而不会对您的系统造成风险。
SSH 执行
允许助手通过 SSH 在远程机器上运行预验证的命令,支持可配置的身份验证和命令白名单。
网页抓取
从网页抓取并处理 HTML、PDF 和纯文本内容,以便助手可以引用或总结这些内容。
TXYZ 搜索
通过 TXYZ API 执行网页、学术和“尽力而为”的搜索。需要 TXYZ API 密钥。
计时器
一个简单的倒计时计时器,通过流式传输进度更新来演示 MCP 通知。
GPAW 计算
通过 GPAW 包提供密度泛函理论(DFT)计算。
Jupyter - Act
允许助手与正在运行的 Jupyter 内核进行交互,以编程方式执行笔记本单元格。
Mathematica - Check
通过无头 Mathematica 实例评估 Wolfram 语言代码的小片段。
NEMAD
神经科学模型分析仪表板服务器,提供检查 NEMAD 数据集的工具。
TinyDB
提供对由 TinyDB 支持的轻量级 JSON 数据库的 CRUD 访问,以便助手可以存储和检索小块结构化数据。
如何为 AI 客户端应用程序配置 MCP 服务器
如果您对这些内容不熟悉,这里为您提供了一个分步指南:为 AI 客户端应用程序配置 MCP 服务器的分步指南
如何构建自己的 MCP 服务器
请查看 如何逐步构建自己的 MCP 服务器 以获取更多详细信息。
贡献
我们热烈欢迎对 MCP.science 项目的贡献!您可以帮助改进现有服务器、添加新服务器,或做任何您认为能让这个项目变得更好的事情。
如果您不熟悉 GitHub 以及如何为开源仓库做出贡献,这可能会有一点挑战,但对您来说仍然是容易上手的。我们建议您先阅读以下内容:
简而言之,您可以按照以下步骤进行:
-
将仓库复刻到您自己的 GitHub 账户。
-
将复刻的仓库克隆到您的本地机器。
-
创建一个功能分支 (git checkout -b feature/amazing-feature)。
-
进行更改并提交 (git commit -m 'Add amazing feature')
👈 点击查看更多关于目录和命名的约定
请在 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
您可能会在配置文件中看到两个相关的名称:
- 项目名称(使用连字符):
pyproject.toml 中的文件夹、项目名称和脚本名称,例如 your-new-server。
- Python 包名称(使用蛇形命名法):
src/ 内的文件夹,例如 your_new_server。
-
推送到该分支 (git push origin feature/amazing-feature)
-
打开拉取请求
请确保您的拉取请求符合以下要求:
- 清晰的提交信息。
- 适当的文档更新。
- 新功能的测试覆盖。
子仓库中的贡献者识别
如果您想为特定的服务器/子仓库(例如 servers/gpaw-computation/)识别贡献者,您可以在该子目录中使用 All Contributors CLI。
步骤:
- 在您的子仓库(例如
servers/gpaw-computation/)中创建一个 .all-contributorsrc 文件(请参阅 示例)。
- 使用 CLI 添加贡献者:
npx all-contributors add <github-用户名> <贡献类型>
- 生成或更新子仓库的
README.md 中的贡献者部分:npx all-contributors generate
- 提交对子仓库的
README.md 和 .all-contributorsrc 的更改。
有关更多详细信息,请参阅 All Contributors CLI 安装指南。
📄 许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
致谢
感谢所有贡献者!
引用
对于一般使用,请按照根目录 CITATION.cff 中的描述引用本仓库。
如果您使用了特定的服务器/子项目,请查看 servers/ 下该子项目文件夹中的相应 CITATION.cff 文件以获取适当的引用信息。