MCP Servers

MCP Servers

用于科学研究的开源 MCP 服务器 (Yòng yú kēxué yánjiū de kāiyuán MCP fúwùqì) Alternative translations, depending on the specific nuance you want to convey: * **用于科学研究的开源多通道板服务器** (Yòng yú kēxué yánjiū de kāiyuán duō tōngdào bǎn fúwùqì) - This is more specific, translating MCP as "Multi-Channel Plate" (多通道板). Useful if the audience is familiar with the acronym. * **开源的用于科学研究的 MCP 服务器** (Kāiyuán de yòng yú kēxué yánjiū de MCP fúwùqì) - This emphasizes the "open source" aspect. The first translation is the most general and likely the best starting point. Choose the others if you need to be more specific.

pathintegral-institute

研究与数据
访问服务器

README

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

<div align="center">

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

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

*加入我们,通过 AI 和开源工具加速科学发现!*
</div>


## 目录

- [关于](#about)
- [什么是 MCP?](#what-is-mcp)
- [本仓库中可用的服务器](#available-servers-in-this-repo)
- [如何将 MCP 服务器集成到您的客户端](#how-to-integrate-mcp-servers-into-your-client)
- [如何构建您自己的 MCP 服务器](#how-to-build-your-own-mcp-server)
- [贡献](#contributing)
- [许可](#license)
- [致谢](#acknowledgments)

## 关于
本仓库包含一系列专门为科学研究应用设计的开源 [MCP](https://modelcontextprotocol.io/introduction) 服务器。这些服务器使 AI 模型(如 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)

## 本仓库中可用的服务器

#### [材料项目](./servers/materials-project/)
一个专门的工具,使 AI 助手能够搜索、可视化和操作来自材料项目数据库的材料科学数据。需要材料项目 API 密钥。

#### [Python 代码执行](./servers/python-code-execution/)
一个安全的沙盒环境,允许 AI 助手执行 Python 代码片段,并控制对标准库模块的访问,从而实现数据分析和计算任务,而不会产生安全风险。

#### [SSH Exec](./servers/ssh-exec/)
一个远程命令执行工具,使 AI 助手能够通过 SSH 在远程系统上安全地运行经过验证的命令,并具有可配置的限制和身份验证选项。

#### [Web Fetch](./servers/web-fetch/)
一个通用的 Web 内容检索工具,允许 AI 助手从网站获取和处理 HTML、PDF 和纯文本内容,从而实现从在线资源收集信息。

#### [TXYZ 搜索](./servers/txyz-search/)
一个全面的搜索平台,使 AI 助手能够执行学术和学术搜索、通用 Web 搜索,或根据查询自动选择最佳搜索类型。需要 TXYZ API 密钥。


## 如何将 MCP 服务器集成到您的客户端
### 前提条件
- [MCPM](https://mcpm.sh/): 由我们开发的 MCP 管理器,易于使用、开源、社区驱动、永久免费。
- [uv](https://docs.astral.sh/uv/): 一款用 Rust 编写的极快的 Python 包和项目管理器。您可以通过运行以下命令安装它:
    ```bash
    curl -sSf https://astral.sh/uv/install.sh | bash
    ```
- MCP 客户端:例如 [Claude Desktop](https://claude.ai/download) / [Cursor](https://cursor.com) / [Windsurf](https://windsurf.com/editor) / [Chatwise](https://chatwise.app/) / [Cherry Studio](https://cherry-ai.com/)

### 将 MCP 服务器集成到您的客户端

MCP 服务器可以与任何兼容的客户端应用程序集成。在这里,我们将以 [`web-fetch`](./servers/web-fetch/) mcp 服务器(包含在本仓库中)为例,逐步介绍集成过程。


#### 客户端集成

使用 MCPM,您可以轻松地将 MCP 服务器集成到您的客户端应用程序中。

```bash
mcpm add web-fetch

您可能需要重新启动客户端应用程序才能使更改生效。

然后,您可以通过要求获取 Web 内容来验证集成是否正常工作:

  • "你能获取并总结来自 https://modelcontextprotocol.io/ 的内容吗?"
  • 应该调用 web-fetch 工具,并且应该检索内容。

查找其他服务器

我们建议您查看 本仓库中可用的服务器MCPM 注册表 以获取更多服务器。

如何构建您自己的 MCP 服务器

优势

通过构建您自己的 MCP 服务器,您可以:

  • 提高准确性:LLM 可以利用您精确的计算方法,而不是近似它们
  • 增强功能:使用您的专用工具扩展 LLM 可以执行的操作
  • 保持控制:您的代码保留在您的系统上,LLM 仅在需要时调用它
  • 分享专业知识:通过友好的对话界面使您的专业知识易于访问

前提条件

如果您不是经验丰富的开发人员,请不要担心!本指南旨在易于访问。您需要:

  • 熟悉 Python 的基本知识(足以理解简单的函数)
  • 您要集成的现有研究脚本或工具
  • 您的计算机上安装了 Python

预期内容

本指南将引导您完成以下步骤:

  1. 设置您的开发环境
  2. 创建基本的 MCP 服务器结构
  3. 集成您现有的科学代码
  4. 使用 LLM 测试您的服务器
  5. 扩展和改进您的服务器

每个步骤都包含详细的说明和解释。如果您遇到任何困难,请记住 MCP 社区随时为您提供帮助!

让我们开始创建您的新服务器。

创建新服务器的步骤

1. 初始化服务器包

使用 UV 创建一个新的服务器包:

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

请注意命名约定:每个 MCP 服务器有 3 个不同的名称:

  1. 代码目录的名称(文件夹名称,也是服务器目录中 pyproject.tomlproject.name 中定义的名称):使用连字符,例如:
    # servers/your-server/pyproject.toml
    [project]
    name = "your-server"
    
  2. python 包的名称(servers/your-server/src 中目录的名称):使用 snake_case,例如:servers/your-server/src/your_server
  3. 脚本的名称(在 servers/your-server/pyproject.toml[project.scripts] 部分中定义):使用 snake_case 并以 mcp- 为前缀(需要手动修改),例如:
    [project.scripts]
    mcp-your-server = "your_server:main"
    

2. 实现最简单的服务器

让我们首先实现一个提供简单加法工具的基本服务器。创建或更新 servers/your-new-server/src/your_new_server/__init__.py

def main():
    from mcp.server.fastmcp import FastMCP
    import logging

    # Configure logging
    logging.basicConfig(
        level=logging.INFO,
        format='%(asctime)s - %(levelname)s - %(name)s - %(message)s'
    )
    logger = logging.getLogger(__name__)

    # Initialize MCP server
    mcp = FastMCP()

    # Define your tools
    @mcp.tool()
    async def add(a: int, b: int) -> str:
        return str(a + b)

    # Start server
    logger.info('Starting your-new-server')
    mcp.run('stdio')

3. 在本地启动服务器

使用以下命令运行您的服务器:

uv run --directory servers/your-new-server your-new-server

成功启动后,您应该看到类似于以下的输出:

2025-04-01 10:22:36,402 - INFO - your_new_server - Starting your-new-server

4. 添加更多工具

您可以通过定义新函数并使用 @mcp.tool() 装饰它们来向您的服务器添加更多工具。例如:

import numpy as np

@mcp.tool()
async def mean(a: int, b: int) -> str:
    return str(np.mean([a, b]))

您的服务器可能需要更多依赖项,您可以使用 uv add 添加它们(pyproject.toml 将自动更新)。

5. 测试您的服务器

在本地运行您的 MCP 服务器并将其与客户端集成。 以 Claude Desktop 为例:

  • 打开 Claude Desktop,找到 "Claude" -> "Settings"
  • 进入 "Developer" 选项卡,点击 "Edit Config" 进入配置文件目录
  • 将您的服务器添加到配置文件,例如:
{
    // ...
    "mcpServers": {
        "your-new-server": {
            "command": "uv",
            "args": [
                "run",
                "--directory",
                "/path/to/your-new-server",
                "mcp-your-new-server"
            ]
        }
    }
}

6. 完成 README.md,提交更改并创建拉取请求

更好的 README.md 将使其他人更容易理解和使用您的服务器。

(可选) 7. 将其添加到 MCPM 注册表

为了让其他人更容易访问您的服务器,您可以按照 MCPM 注册表中的说明将其添加到 MCPM 注册表。

贡献

我们热烈欢迎对 MCP.science 的贡献!您可以帮助改进现有服务器、添加新服务器或您认为可以使该项目更好的任何内容。

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

简而言之,您可以按照以下步骤操作:

  1. 将存储库 Fork 到您自己的 GitHub 帐户
  2. 将 Fork 的存储库克隆到您的本地计算机
  3. 创建一个功能分支 (git checkout -b feature/amazing-feature)
  4. 进行更改并提交它们 (git commit -m 'Add amazing feature')
  5. 推送到分支 (git push origin feature/amazing-feature)
  6. 打开一个拉取请求

请确保您的 PR 符合以下条件:

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

许可

本项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

致谢

感谢所有贡献者!

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python