MCP Connector

Access Catalysis Hub Research Data via GraphQL

An MCP server for querying Catalysis Hub's GraphQL API - catalytic reactions, material systems, and surface reaction data - from an AI agent.

Works with githubhttpx

91
Spark score
out of 100
Updated May 2025
Version 1.0.0
Models
universal

Add to Favorites

Why it matters

Programmatically access and query the Catalysis Hub's GraphQL API to retrieve diverse catalytic research data, including reactions, materials, publications, and surface reaction details.

Outcomes

What it gets done

01

Execute GraphQL queries for catalytic reaction data.

02

Retrieve material systems data and associated reactions.

03

Search for scientific publications by author or DOI.

04

Query surface reaction data, including adsorption energies.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-catalysis-hub | bash

Capabilities

Tools your agent gets

catalysishub_graphql

Executes GraphQL queries to the Catalysis Hub API to retrieve catalytic research data

Overview

Catalysis Hub MCP Server

This MCP server exposes Catalysis Hub's GraphQL API as a single query tool, giving access to catalytic reactions, material systems, publications, and surface reaction data. It supports parameterized queries, fragments, and batched requests, with detailed error diagnostics on failure. Use it for programmatic catalysis-research data queries via an AI agent that understands GraphQL. It is MIT licensed but requires academic citation for scientific publications that use it.

What it does

An MCP server that gives an AI agent a single tool, catalysishub_graphql, to run arbitrary GraphQL queries against Catalysis Hub's API for catalysis research data: catalytic reactions (equations, conditions, catalysts), material systems (structures, properties, descriptors), research publications (titles, DOIs, authors), and surface reaction data (adsorption energies, binding sites). It supports parameterized queries with variables, GraphQL fragments to keep query definitions reusable, and batching multiple related queries in a single request. Successful responses come back as a data object plus response metadata (request duration, API version); failed ones return structured diagnostics with the error message, the exact line/column location, and the query path that caused it.

When to use - and when NOT to

Use it for programmatic catalysis-research data mining - pulling reaction, material, or publication data into an AI-agent workflow via direct GraphQL. Note the license: MIT with an Academic Citation Requirement - commercial and non-academic use follows standard MIT terms, but any academic or scientific publication using this software must cite it per CITATION.md. Do NOT use it if you need a simple, schema-free interface - it assumes familiarity with GraphQL and the Catalysis Hub schema - or if you need guaranteed uptime, since it depends on the public api.catalysis-hub.org endpoint staying reachable.

Capabilities

Direct execution of any valid GraphQL query; comprehensive access to reactions, material systems, publications, and surface data; MCP-standard compliance for AI-agent interoperability; parameterized queries with variables; and robust error handling that reports API connectivity and query-execution problems in detail. Query optimization guidance is included too: defining reusable GraphQL fragments (for example, a ReactionDetails fragment pulling id, Equation, ActivationEnergy, and Catalyst fields) and batching independent queries like reactions and materials together under a single named query to cut round-trips.

How to install

git clone <repository_url>
cd catalysishub-mcp-server
pip install -r requirements.txt
python3 catalysishub_mcp_server.py --version

The version check should print catalysishub-mcp-server 0.1.0. The server communicates over standard input/output per the MCP specification and relies on httpx for asynchronous HTTP requests to the Catalysis Hub API. A Claude Desktop config points at the Python interpreter and the server script with a cwd option set to the repo directory. Common troubleshooting: an HTTP Request Error means checking connectivity to api.catalysis-hub.org, a JSON Decode Error means checking query syntax in Catalysis Hub's GraphQL Playground, and timeout errors are resolved by adding a timeout parameter to complex queries.

Who it's for

Materials scientists, computational chemists, and catalysis researchers who want to query Catalysis Hub programmatically from an AI agent, and developers building research tooling on top of its GraphQL schema - academic users specifically need to track the citation requirement before publishing results derived from it.

Source README

Catalysis 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

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: httpx for asynchronous HTTP requests
  • Transport: Standard input/output communication following MCP specifications

Setup & Installation

  1. Clone the repository:

    git clone <repository_url>
    cd catalysishub-mcp-server
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. 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

  1. Use GraphQL Fragments:

    fragment ReactionDetails on Reaction {
        id
        Equation
        ActivationEnergy
        Catalyst {
            formula
            surface
        }
    }
    
    query {
        reactions(first: 10) {
            edges {
                node {
                    ...ReactionDetails
                }
            }
        }
    }
    
  2. 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 to api.catalysis-hub.org
  • JSON Decode Error: Check query syntax using Catalysis Hub's GraphQL Playground
  • Timeout Errors: Add timeout parameter to complex queries

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.