使用说明
项目简介
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 连接和查询执行错误报告。
安装步骤
- 克隆仓库:
git clone https://github.com/QuentinCody/catalysishub-mcp-server cd catalysishub-mcp-server - 安装依赖:
pip install -r requirements.txt - 验证安装:
如果安装成功,应输出版本号,例如:'catalysishub-mcp-server 0.1.0'python3 catalysishub_mcp_server.py --version
服务器配置
以下是 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) 确保服务器在正确的目录下启动,这对于某些依赖相对路径的场景很重要。
基本使用方法
- 启动 MCP 服务器: MCP 服务器通过标准输入/输出 (stdio) 与客户端通信。当 MCP 客户端发起连接时,会根据配置启动 'catalysishub_mcp_server.py' 脚本。
- 客户端调用工具: 客户端可以使用 MCP 协议定义的 'call_tool' 方法调用服务器提供的 'catalysishub_graphql' 工具,并传递 GraphQL 查询语句作为参数。
- GraphQL 查询: 'catalysishub_graphql' 工具接受 'query' 参数,允许执行任意合法的 GraphQL 查询语句。还可以通过 'variables' 参数传递查询变量。
- 获取查询结果: 工具执行后,服务器会将 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