返回 MCP 目录
public公开dns本地运行

catalysishub-mcp-server

Catalysis Hub的MCP服务器项目,通过GraphQL接口提供对催化研究数据的程序化访问,支持复杂查询和变量参数化,遵循MCP协议实现AI代理互操作性。

article

README

🚀 催化_hub MCP 服务器

催化_hub MCP 服务器可直接访问催化hub的GraphQL API,提供模型上下文协议(MCP)服务器接口。借助该服务器,用户能对催化研究数据进行程序化访问,还可使用灵活的GraphQL查询。

🚀 快速开始

催化_hub MCP 服务器为用户提供了便捷的方式来访问催化研究数据。通过以下步骤,你可以快速开始使用该服务器:

  1. 克隆仓库:
    git clone <repository_url>
    cd catalysishub-mcp-server
    
  2. 安装依赖项:
    pip install -r requirements.txt
    
  3. 验证安装:
    python3 catalysishub_mcp_server.py --version
    # 输出应为:catalysishub-mcp-server 0.1.0
    

✨ 主要特性

  • 直接GraphQL访问:可执行任何有效的GraphQL查询,从而访问催化hub的API。
  • 全面的数据访问
    • 催化反应(方程、条件、催化剂)
    • 材料体系(结构、属性、描述符)
    • 研究出版物(标题、DOI、作者)
    • 表面反应数据(吸附能、结合位点)
  • MCP标准兼容性:实现了模型上下文协议,支持AI代理的互操作性。
  • 灵活的查询支持:支持复杂查询和变量参数化。
  • 错误处理:具备强大的错误报告功能,涵盖API连接和查询执行。

📦 安装指南

  1. 克隆仓库
    git clone <repository_url>
    cd catalysishub-mcp-server
    
  2. 安装依赖项
    pip install -r requirements.txt
    
  3. 验证安装
    python3 catalysishub_mcp_server.py --version
    # 输出应为:catalysishub-mcp-server 0.1.0
    

💻 使用示例

基础用法

from mcp.client import MCPClient

async with MCPClient("catalysishub") as hub:
    result = await hub.catalysishub_graphql(
        query="""{
            reactions(first: 5) {
                edges {
                    node {
                        id
                        Equation
                        Temperature
                    }
                }
            }
        }"""
    )
    print(json.loads(result))

高级用法

带变量的参数化查询

variables = {
    "materialId": "mp-1234",
    "firstResults": 5
}

response = await hub.catalysishub_graphql(
    query="""query GetMaterialById($materialId: String!, $firstResults: Int!) => Material {
        material(id: $materialId) {
            name
            properties(limit: $firstResults) {
                id
                value
            }
        }
    }""",
    variables=variables
)

查询优化建议

分页与过滤

使用skiplimit进行分页,或添加过滤条件:

{
  reactions(skip: 0, limit: 5, where: {property: "temperature"}) {
    edges {
      node {
        id
        Equation
        Temperature
      }
    }
  }
}
管理大量查询

对于大规模数据,建议使用batch处理:

from mcp.client import MCPClient

client = MCPClient("catalysishub")
batch_query = client.catalysishub_graphql(
    query=query,
    variables=variables
)
result = await batch_query()

响应结构

成功响应示例:

{
  "data": {
    "reactions": {
      "edges": [
        {
          "node": {
            "id": "123",
            "Equation": "E = mc^2",
            "Temperature": 500
          }
        },
        // 其他节点...
      ]
    }
  }
}

错误响应示例:

{
  "errors": [
    {
      "message": "Field 'reactions' not found in type 'Query'",
      "path": ["reactions"],
      "locations": [{ "line": 1, "column": 3 }]
    }
  ]
}

故障排除

常见问题
  • 错误:未找到字段
    • 检查查询中的字段名称是否正确。
    • 确保使用的GraphQL schema与服务器一致。
  • 性能问题
    • 使用分页和过滤限制数据量。
    • 避免一次性请求大量数据。
联系支持

如需进一步帮助,请联系:

  • 邮件:support@catalsishub.com
  • 电话:+1 (555) 123-4567

🔧 技术细节

  • 服务器配置(与claude_desktop_config.json一致):
    {
      "command": "/Users/quentincody/.env/bin/python3",
      "args": ["/Users/quentincody/catalysishub-mcp-server/catalysishub_mcp_server.py"],
      "options": {
        "cwd": "/Users/quentincody/catalysishub-mcp-server"
      }
    }
    
  • 核心依赖:使用httpx进行异步HTTP请求。
  • 传输层:遵循MCP规范的输入输出通信。

📚 详细文档

通过以上内容,您可以全面了解和使用催化_hub MCP 服务器的各项功能。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端