催化中心MCP服务器
催化中心GraphQL API的模型上下文协议(MCP)服务器接口,通过灵活的GraphQL查询实现对催化研究数据的编程访问。
主要特点
- 直接GraphQL访问:针对Catalysis Hub的API执行任何有效的GraphQL查询
- 全面的数据访问:
- 催化反应(方程式、条件、催化剂) - 材料系统(结构、性能、描述符) - 研究出版物(标题、DOI、作者) - 表面反应数据(吸附能、结合位点)
- MCP标准合规性:实现AI代理互操作性的模型上下文协议
- 灵活的查询支持:使用变量参数化执行复杂查询
- 错误处理:用于API连接和查询执行的强大错误报告
许可证和引用
该项目在麻省理工学院许可证下提供,并附有学术引文要求。这意味着您可以自由使用、修改和分发代码,但使用此软件的任何学术或科学出版物都必须提供适当的归属。
学术/研究用途:
如果您在导致出版物、演示文稿或报告的研究项目中使用此软件,您 必须 根据中提供的格式引用此作品 引文.md.
商业/非学术用途:
商业和非学术用途遵循麻省理工学院的标准许可条款,无需引用。
使用本软件即表示您同意这些条款。看 许可证.md 获取完整的许可证文本。
实现细节
- 服务器配置 (比赛
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规范的标准输入/输出通信
设置和安装
- 克隆存储库:
git clone
cd catalysishub-mcp-server- 安装依赖项:
pip install -r requirements.txt- 验证安装:
python3 catalysishub_mcp_server.py --version
# Should output: 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
)查询优化提示
- 使用GraphQL片段:
fragment ReactionDetails on Reaction {
id
Equation
ActivationEnergy
Catalyst {
formula
surface
}
}
query {
reactions(first: 10) {
edges {
node {
...ReactionDetails
}
}
}
}- 批量相关查询:
query BatchQuery {
reactions: reactions(first: 5) { edges { node { id Equation } } }
materials: systems(first: 5) { edges { node { formula energy } } }
}响应结构
成功的响应遵循以下结构:
{
"data": { /* Query results */ },
"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 Request Error:验证网络连接到api.catalysis-hub.orgJSON Decode Error:使用Catalysis Hub检查查询语法 GraphQL游乐场Timeout Errors:添加timeout复杂查询的参数
致谢
该项目建立在模型上下文协议(MCP)框架的基础上,旨在与催化中心数据库对接,该数据库是催化研究数据的综合资源。
