About Catalysis Hub MCP Server
An MCP server interface to Catalysis Hub's GraphQL API for programmatic access to catalysis research data. It lets researchers and other clients run flexible queries, including parameterized queries, across reactions, materials, publications, and surface reaction data.
Key features
- 01Run GraphQL queries against Catalysis Hub
- 02Query reactions and catalysts
- 03Access material systems and properties
- 04Retrieve publication and surface reaction data
- 05Parameterized queries and error details
Use cases
- 01Querying catalysis reactions and conditions
- 02Retrieving material structures and properties
- 03Finding publication details and surface data
MCP support
The MCP server exposes Catalysis Hub's GraphQL API to MCP clients, supporting flexible queries with variables and reporting query or connectivity errors.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMECatalysis Hub MCP Server
A Model Context Protocol (MCP) server interface to Catalysis Hub's GraphQL API, enabling programmatic access to catalysis research data through flexible GraphQL queries.
Key Features
- Direct GraphQL Access: Execute any valid GraphQL query against Catalysis Hub's API
- Comprehensive Data Access:
- Catalytic reactions (equations, conditions, catalysts)
- Material systems (structures, properties, descriptors)
- Research publications (titles, DOIs, authors)
- Surface reaction data (adsorption energies, binding sites)
- MCP Standard Compliance: Implements the Model Context Protocol for AI-agent interoperability
- Flexible Query Support: Execute complex queries with variables parameterization
- Error Handling: Robust error reporting for API connectivity and query execution
License and Citation
This project is available under the MIT License with an Academic Citation Requirement. This means you can freely use, modify, and distribute the code, but any academic or scientific publication that uses this software must provide appropriate attribution.
For academic/research use:
If you use this software in a research project that leads to a publication, presentation, or report, you must cite this work according to the format provided in CITATION.md.
For commercial/non-academic use:
Commercial and non-academic use follows the standard MIT License terms without the citation requirement.
By using this software, you agree to these terms. See LICENSE.md for the complete license text.
Implementation Details
- Server Configuration (matches
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" } } - Core Dependency:
httpxfor asynchronous HTTP requests - Transport: Standard input/output communication following MCP specifications
Setup & Installation
-
Clone the repository:
git clone <repository_url> cd catalysishub-mcp-server -
Install dependencies:
pip install -r requirements.txt -
Verify installation:
python3 catalysishub_mcp_server.py --version # Should output: catalysishub-mcp-server 0.1.0
Usage Examples
Basic Query Execution
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))
Parameterized Query with Variables
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
)
Query Optimization Tips
-
Use GraphQL Fragments:
fragment ReactionDetails on Reaction { id Equation ActivationEnergy Catalyst { formula surface } } query { reactions(first: 10) { edges { node { ...ReactionDetails } } } } -
Batch Related Queries:
query BatchQuery { reactions: reactions(first: 5) { edges { node { id Equation } } } materials: systems(first: 5) { edges { node { formula energy } } } }
Response Structure
Successful responses follow this structure:
{
"data": { /* Query results */ },
"extensions": {
"responseMetadata": {
"requestDuration": 145,
"apiVersion": "2024-06"
}
}
}
Error responses include detailed diagnostics:
{
"errors": [{
"message": "Cannot query field 'invalidField' on type 'Reaction'",
"locations": [{"line": 5, "column": 21}],
"path": ["query", "reactions", "edges", "node", "invalidField"]
}]
}
Troubleshooting
Common Issues:
HTTP Request Error: Verify network connectivity toapi.catalysis-hub.orgJSON Decode Error: Check query syntax using Catalysis Hub's GraphQL PlaygroundTimeout Errors: Addtimeoutparameter to complex queries
Acknowledgements
This project builds on the Model Context Protocol (MCP) framework and is designed to interface with the Catalysis Hub database, a comprehensive resource for catalysis research data.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.