MCP.science:用于科学研究的开源MCP服务器🔍📚
加入我们,利用人工智能和开源工具加速科学发现!
快速开始
运行此存储库中的任何服务器都像单个命令一样简单。例如,要启动 web-fetch 服务器:
BASH``` 1uvx mcp-science web-fetch
此命令处理从安装到执行的所有操作。有关配置和查找其他服务器的更多详细信息,请参阅“如何为AI客户端应用程序配置MCP服务器“下面的部分。
## 目录
- 关于
- 什么是MCP?
- 此仓库中的可用服务器
- 如何将MCP服务器集成到LLM中
- 如何构建自己的MCP服务器
- 贡献
- 许可证
- 致谢
- 引用
## 关于
此存储库包含一组开源 [主控程序](https://modelcontextprotocol.io/introduction) 专为科学研究应用而设计的服务器。这些服务器使Al模型(如Claude)能够通过标准化协议与科学数据、工具和资源进行交互。
## 什么是MCP?
> MCP是一个开放协议,它规范了应用程序如何向LLM提供上下文。将MCP想象成AI应用程序的USB-C端口。正如USB-C提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP提供了一个将AI模型连接到不同数据源和工具的标准化方法。
>
>
> MCP可帮助您在LLM之上构建代理和复杂的工作流。LLM经常需要与数据和工具集成,MCP提供:
>
>
> - LLM可以直接插入的预构建集成列表越来越多
> - 在LLM提供商和供应商之间切换的灵活性
> - 在基础架构中保护数据的最佳实践
>
>
> 来源: [https://modelcontextprotocol.io/introduction](https://modelcontextprotocol.io/introduction)
## 此仓库中的可用服务器
下面是此monorepo中MCP服务器的完整列表。每
条目链接到包含服务器源代码的子目录,以及
README,以便您可以快速找到文档和使用说明。
#### 示例服务器
一个示例MCP服务器,演示了
服务器实现。
#### 材料项目
一个专门的MCP服务器,使AI助手能够搜索、可视化和
操纵材料项目数据库中的材料科学数据。A.
材料项目API密钥是必需的。
#### Python代码执行
在安全的沙盒环境中运行Python代码片段
标准库访问权限,以便助手进行分析和
无需冒系统风险即可进行计算。
#### SSH执行器
允许助手通过SSH在远程计算机上运行预先验证的命令
具有可配置的身份验证和命令白名单。
#### Web提取
从Web获取和处理HTML、PDF和纯文本内容,以便
助理可以引用或总结。
#### TXYZ搜索
通过TXYZ API执行网络、学术和“尽最大努力”搜索。A TXYZ API
密钥是必需的。
#### 计时器
一个最小的倒计时器,用于流式传输进度更新以演示MCP
通知。
#### GPAW计算
通过GPAW软件包提供密度泛函理论(DFT)计算。
#### Jupyter法案
让助手与正在运行的Jupyter内核交互,执行notebook
细胞编程。
#### Mathematica检查
通过无头计算Wolfram语言代码的小片段
Mathematica实例。
#### NEMAD
神经科学模型分析仪表板服务器,提供检查工具
NEMAD数据集。
#### TinyDB
提供对TinyDB支持的轻量级JSON数据库的CRUD访问,以便
助手可以存储和检索小块结构化数据。
## 如何为AI客户端应用程序配置MCP服务器
如果你不熟悉这些东西,这里有一个循序渐进的指南: 为AI客户端应用程序配置MCP服务器的分步指南
### 先决条件
1. [紫外线](https://docs.astral.sh/uv/) --超快速(Rust驱动)插入
pip+virtualenv的替代品。安装时使用:
BASH```
1curl -sSf https://astral.sh/uv/install.sh | bash
简短版本-使用 uvx
此存储库中的任何服务器都可以使用单个shell命令启动。这 模式是:
BASH```
1uvx mcp-science
例如,要启动 `web-fetch` stdio服务器本地,在客户端配置以下命令:
BASH```
1uvx mcp-science web-fetch
这对应于claude桌面的json配置:
JSON``` 1 2 3 4 5 6 7 8 9 10 11{ “mcpServers”: { “web-fetch”: { “command”: “uvx”, “args”: [ “mcp-science”, “web-fetch” ] } } }
该命令将下载 `mcp-science` 从PyPI打包并运行请求的入口点。
#### 查找其他服务器
看看 可用服务器 列表–
表中的每个条目都使用上面显示的模式。
---
### 可选:管理与MCPM的集成
[MCPM](https://mcpm.sh/) 是一个方便的命令行工具,可以自动化
将服务器连接到受支持的客户端的过程。这不是必需的,但
如果您经常在客户端之间切换或维护大型
服务器数量。
基本工作流程是:
BASH```
1
2
3
4
5
6# Install mcpm first – it is a separate project
uv pip install mcpm
mcpm client ls # discover supported clients
mcpm client set <name> # pick the one you are using
# Add a server (automatically installing it if needed)
mcpm add web-fetch
命令执行完毕后,重新启动客户端,使其重新加载工具 配置。您可以浏览 MCPM注册表 用于额外的社区维护服务器。
如何构建自己的MCP服务器
请检查 如何逐步构建自己的MCP服务器 了解更多详情。
贡献
我们热忱欢迎对MCP.science的贡献!您可以帮助改进现有服务器、添加新服务器或任何您认为会使此项目更好的事情。
如果你不熟悉GitHub以及如何为开源存储库做出贡献,那么这可能会有点挑战性,但对你来说仍然很容易。我们建议您先阅读以下内容:
简而言之,您可以按照以下步骤操作:
- 将存储库分叉到您自己的GitHub帐户
- 将分叉的存储库克隆到本地计算机
- 创建要素分支(
git checkout -b feature/amazing-feature) - 进行更改并提交(
git commit -m 'Add amazing feature')
👈 Click to see more conventions about directory and naming
请在中创建新服务器 servers 文件夹。
要在存储库文件夹下创建新的服务器文件夹,您只需运行(替换 your-new-server 使用您的服务器名称)
SH``` 1 2uv init —package —no-workspace servers/your-new-server uv add —directory servers/your-new-server mcp
这将创建一个新的服务器文件夹,其中包含必要的文件:
BASH```
1
2
3
4
5
6servers/your-new-server/
├── README.md
├── pyproject.toml
└── src
└── your_new_server
└── __init__.py
您可能会在配置文件中看到两个相关的名称:
- 项目名称 (连字符):中的文件夹、项目名称和脚本名称
pyproject.toml例如。your-new-server. - Python包名称 (snake_case):里面的文件夹
src/例如。your_new_server. - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
请确保您的PR符合以下要求:
- 清除提交消息
- 适当的文档更新
- 新功能的测试覆盖率
Subrepos中的贡献者认可
如果你想识别特定服务器/子论坛的贡献者(例如。 servers/gpaw-computation/),您可以使用 所有贡献者CLI 在该子目录中。
步骤:
- 在您的子版块中(例如。
servers/gpaw-computation/),创建一个.all-contributorsrc文件(参见 例子). - 使用CLI添加贡献者:
BASH```
1npx all-contributors add
3. 在子版块中生成或更新贡献者部分 `README.md`:
BASH```
1npx all-contributors generate
- 将更改提交到子页面
README.md和.all-contributorsrc.
有关更多详细信息,请参阅 所有贡献者CLI安装指南.
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
感谢所有贡献者!
引用
对于一般用途,请按照根目录中的描述引用此存储库 引文.cff.
如果您使用特定的服务器/子项目,请参阅相应的 CITATION.cff 该子项目文件夹中的文件 servers/ 适当的引用。