使用说明

项目简介

Catalysis Hub MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它充当 LLM 应用与 Catalysis Hub 数据库之间的桥梁。通过该服务器,LLM 应用可以利用标准的 MCP 协议,以 GraphQL 查询的方式访问 Catalysis Hub 丰富的催化研究数据,例如催化反应、材料系统、研究出版物等。

主要功能点

  • GraphQL 数据访问: 允许执行任意有效的 GraphQL 查询,直接访问 Catalysis Hub 的 API 数据。
  • 全面的数据范围: 支持访问催化反应、材料系统、研究出版物和表面反应数据等多种类型的数据。
  • MCP 标准兼容: 完全遵循 Model Context Protocol 标准,确保与支持 MCP 协议的 LLM 客户端互操作。
  • 灵活的查询: 支持带变量参数的复杂 GraphQL 查询。
  • 完善的错误处理: 提供可靠的 API 连接和查询执行错误报告。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/QuentinCody/catalysishub-mcp-server
    cd catalysishub-mcp-server
  2. 安装依赖:
    pip install -r requirements.txt
  3. 验证安装:
    python3 catalysishub_mcp_server.py --version
    如果安装成功,应输出版本号,例如:'catalysishub-mcp-server 0.1.0'

服务器配置

以下是 MCP 客户端连接 Catalysis Hub MCP 服务器所需的配置信息(JSON 格式)。客户端需要配置 'command' 和 'args' 来启动服务器进程。

{
  "serverName": "catalysishub",  // 服务器名称,客户端用于标识
  "command": "/path/to/python3",   // Python3 解释器的路径,请替换为实际路径,例如 /usr/bin/python3 或 python
  "args": [
    "/path/to/catalysishub_mcp_server.py" // catalysishub_mcp_server.py 脚本的路径,请替换为实际路径,例如 /Users/yourname/catalysishub-mcp-server/catalysishub_mcp_server.py
  ],
  "options": {
    "cwd": "/path/to/catalysishub-mcp-server" // 工作目录,设置为仓库根目录的绝对路径,例如 /Users/yourname/catalysishub-mcp-server
  }
}

注意:

  • 请将上述配置中的 '/path/to/python3'、'/path/to/catalysishub_mcp_server.py' 和 '/path/to/catalysishub-mcp-server' 替换为实际的 Python3 解释器路径、'catalysishub_mcp_server.py' 脚本路径以及仓库的绝对路径。
  • 'serverName' 可以自定义,用于在客户端中识别该服务器连接。
  • 'options' 中的 'cwd' (current working directory) 确保服务器在正确的目录下启动,这对于某些依赖相对路径的场景很重要。

基本使用方法

  1. 启动 MCP 服务器: MCP 服务器通过标准输入/输出 (stdio) 与客户端通信。当 MCP 客户端发起连接时,会根据配置启动 'catalysishub_mcp_server.py' 脚本。
  2. 客户端调用工具: 客户端可以使用 MCP 协议定义的 'call_tool' 方法调用服务器提供的 'catalysishub_graphql' 工具,并传递 GraphQL 查询语句作为参数。
  3. GraphQL 查询: 'catalysishub_graphql' 工具接受 'query' 参数,允许执行任意合法的 GraphQL 查询语句。还可以通过 'variables' 参数传递查询变量。
  4. 获取查询结果: 工具执行后,服务器会将 GraphQL API 的响应结果(JSON 字符串)返回给客户端。客户端需要解析 JSON 字符串以获取具体数据。

示例 (Python 客户端): 以下是一个使用 Python MCP 客户端库 'mcp-client-py' 调用 'catalysishub_graphql' 工具的简单示例 (示例代码仅为演示用途,实际使用请参考 'mcp-client-py' 库的文档):

from mcp.client import MCPClient
import json
import asyncio

async def main():
    config = {  # 客户端配置,需要根据实际情况修改
        "serverName": "catalysishub",
        "command": "/path/to/python3",
        "args": [
            "/path/to/catalysishub_mcp_server.py"
        ],
        "options": {
            "cwd": "/path/to/catalysishub-mcp-server"
        }
    }

    async with MCPClient(config) as client:
        query = """
        {
            reactions(first: 5) {
                edges {
                    node {
                        id
                        Equation
                    }
                }
            }
        }
        """
        result_str = await client.call_tool("catalysishub_graphql", query=query)
        result_json = json.loads(result_str)
        print(json.dumps(result_json, indent=2))

if __name__ == "__main__":
    asyncio.run(main())

注意: 请将示例代码中的配置信息替换为实际的服务器配置和文件路径,并确保已安装 'mcp-client-py' 客户端库。

通过以上步骤,LLM 应用即可利用 Catalysis Hub MCP Server 提供的 GraphQL 工具,便捷地访问和利用 Catalysis Hub 的催化研究数据,从而支持更智能的催化研究应用。

信息

分类

网页与API