Catalysis Hub MCP Server

Catalysis Hub MCP Server

QuentinCody

研究与数据
访问服务器

README

Catalysis Hub MCP 服务器

一个模型上下文协议 (MCP) 服务器接口,用于连接 Catalysis Hub 的 GraphQL API,从而可以通过灵活的 GraphQL 查询以编程方式访问催化研究数据。

主要特性

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

实现细节

  • 服务器配置 (与 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 规范的标准输入/输出通信

安装 & 设置

  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 GetMaterial($materialId: String!, $firstResults: Int!) {
        systems(uniqueId: $materialId) {
            edges {
                node {
                    energy
                    Cifdata
                    relatedReactions(first: $firstResults) {
                        edges {
                            node {
                                id
                                Equation
                            }
                        }
                    }
                }
            }
        }
    }""",
    variables=variables
)

查询优化技巧

  1. 使用 GraphQL 片段:

    fragment ReactionDetails on Reaction {
        id
        Equation
        ActivationEnergy
        Catalyst {
            formula
            surface
        }
    }
    
    query {
        reactions(first: 10) {
            edges {
                node {
                    ...ReactionDetails
                }
            }
        }
    }
    
  2. 批量处理相关查询:

    query BatchQuery {
        reactions: reactions(first: 5) { edges { node { id Equation } } }
        materials: systems(first: 5) { edges { node { formula energy } } }
    }
    

响应结构

成功的响应遵循以下结构:

{
    "data": { /* 查询结果 */ },
    "extensions": {
        "responseMetadata": {
            "requestDuration": 145,
            "apiVersion": "2024-06"
        }
    }
}

错误响应包括详细的诊断信息:

{
    "errors": [{
        "message": "Cannot query field 'invalidField' on type 'Reaction'",
        "locations": [{"line": 5, "column": 21}],
        "path": ["query", "reactions", "edges", "node", "invalidField"]
    }]
}

故障排除

常见问题:

  • HTTP 请求错误: 验证与 api.catalysis-hub.org 的网络连接
  • JSON 解码错误: 使用 Catalysis Hub 的 GraphQL Playground 检查查询语法
  • 超时错误: 向复杂查询添加 timeout 参数

许可证

MIT 许可证 - 详情请参阅 LICENSE

致谢

本项目基于模型上下文协议 (MCP) 框架构建,旨在与 Catalysis Hub 数据库对接,该数据库是催化研究数据的综合资源。

推荐服务器

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