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 规范的标准输入/输出通信
安装 & 设置
-
克隆仓库:
git clone <repository_url> cd catalysishub-mcp-server
-
安装依赖:
pip install -r requirements.txt
-
验证安装:
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
)
查询优化技巧
-
使用 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": { /* 查询结果 */ },
"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
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。