A Model Context Protocol (MCP) server interface to Catalysis Hub's GraphQL API, enabling programmatic access to catalysis research data through flexible GraphQL queries. - 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) -
Add this skill
npx mdskills install QuentinCody/catalysishub-mcp-serverWell-documented GraphQL interface with clear setup and examples, but over-scoped permissions are concerning
1# Catalysis Hub MCP Server23A Model Context Protocol (MCP) server interface to Catalysis Hub's GraphQL API, enabling programmatic access to catalysis research data through flexible GraphQL queries.45## Key Features67- **Direct GraphQL Access**: Execute any valid GraphQL query against Catalysis Hub's API8- **Comprehensive Data Access**:9 - Catalytic reactions (equations, conditions, catalysts)10 - Material systems (structures, properties, descriptors)11 - Research publications (titles, DOIs, authors)12 - Surface reaction data (adsorption energies, binding sites)13- **MCP Standard Compliance**: Implements the Model Context Protocol for AI-agent interoperability14- **Flexible Query Support**: Execute complex queries with variables parameterization15- **Error Handling**: Robust error reporting for API connectivity and query execution1617## License and Citation1819This 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.2021### For academic/research use:22If 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](CITATION.md).2324### For commercial/non-academic use:25Commercial and non-academic use follows the standard MIT License terms without the citation requirement.2627By using this software, you agree to these terms. See [LICENSE.md](LICENSE.md) for the complete license text.2829## Implementation Details3031- **Server Configuration** (matches `claude_desktop_config.json`):32 ```json33 {34 "command": "/Users/quentincody/.env/bin/python3",35 "args": ["/Users/quentincody/catalysishub-mcp-server/catalysishub_mcp_server.py"],36 "options": {37 "cwd": "/Users/quentincody/catalysishub-mcp-server"38 }39 }40 ```41- **Core Dependency**: `httpx` for asynchronous HTTP requests42- **Transport**: Standard input/output communication following MCP specifications4344## Setup & Installation45461. **Clone the repository**:47 ```bash48 git clone <repository_url>49 cd catalysishub-mcp-server50 ```51522. **Install dependencies**:53 ```bash54 pip install -r requirements.txt55 ```56573. **Verify installation**:58 ```bash59 python3 catalysishub_mcp_server.py --version60 # Should output: catalysishub-mcp-server 0.1.061 ```6263## Usage Examples6465### Basic Query Execution66```python67from mcp.client import MCPClient6869async with MCPClient("catalysishub") as hub:70 result = await hub.catalysishub_graphql(71 query="""{72 reactions(first: 5) {73 edges {74 node {75 id76 Equation77 Temperature78 }79 }80 }81 }"""82 )83 print(json.loads(result))84```8586### Parameterized Query with Variables87```python88variables = {89 "materialId": "mp-1234",90 "firstResults": 591}9293response = await hub.catalysishub_graphql(94 query="""query GetMaterial($materialId: String!, $firstResults: Int!) {95 systems(uniqueId: $materialId) {96 edges {97 node {98 energy99 Cifdata100 relatedReactions(first: $firstResults) {101 edges {102 node {103 id104 Equation105 }106 }107 }108 }109 }110 }111 }""",112 variables=variables113)114```115116## Query Optimization Tips1171181. **Use GraphQL Fragments**:119 ```graphql120 fragment ReactionDetails on Reaction {121 id122 Equation123 ActivationEnergy124 Catalyst {125 formula126 surface127 }128 }129130 query {131 reactions(first: 10) {132 edges {133 node {134 ...ReactionDetails135 }136 }137 }138 }139 ```1401412. **Batch Related Queries**:142 ```graphql143 query BatchQuery {144 reactions: reactions(first: 5) { edges { node { id Equation } } }145 materials: systems(first: 5) { edges { node { formula energy } } }146 }147 ```148149## Response Structure150151Successful responses follow this structure:152```json153{154 "data": { /* Query results */ },155 "extensions": {156 "responseMetadata": {157 "requestDuration": 145,158 "apiVersion": "2024-06"159 }160 }161}162```163164Error responses include detailed diagnostics:165```json166{167 "errors": [{168 "message": "Cannot query field 'invalidField' on type 'Reaction'",169 "locations": [{"line": 5, "column": 21}],170 "path": ["query", "reactions", "edges", "node", "invalidField"]171 }]172}173```174175## Troubleshooting176177**Common Issues**:178- `HTTP Request Error`: Verify network connectivity to `api.catalysis-hub.org`179- `JSON Decode Error`: Check query syntax using Catalysis Hub's [GraphQL Playground](https://www.catalysis-hub.org/api/graphql)180- `Timeout Errors`: Add `timeout` parameter to complex queries181182## Acknowledgements183184This 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.
Full transparency — inspect the skill content before installing.