Skip to main content
Glama
README.md
# TheGraph MCP Server

An MCP server that powers AI agents with indexed blockchain data from [The Graph](https://thegraph.com/).

<a href="https://glama.ai/mcp/servers/@Data-Nexus-Web3/thegraph-mcp">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@Data-Nexus-Web3/thegraph-mcp/badge" alt="TheGraph Server MCP server" />
</a>

![GitHub License](https://img.shields.io/github/license/Data-Nexus-Web3/thegraph-mcp) 
![GitHub Last Commit](https://img.shields.io/github/last-commit/Data-Nexus-Web3/thegraph-mcp) 
![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)

## Available Tools

### 1. searchSubgraphs
Searches for subgraphs on The Graph Network by name or description. Uses the Network Subgraph's full-text search to find matching subgraphs, returning a list sorted by signal amount (highest first). Results include the subgraph's GraphQL schema, so agents can go directly from discovery to querying without a separate schema fetch.

**Parameters:**
- `searchQuery`: The search term to find matching subgraphs (e.g., "uniswap", "aave", "ENS")

### 2. getSubgraphSchema
Fetches the schema of a specified subgraph, providing AI agents with the context needed to generate GraphQL queries.

**Parameters:**
- `subgraphId`: The subgraph ID (e.g., "QmZBQcF...")
- `asText`: Output format flag
  - `true`: Returns human-readable GraphQL schema
  - `false`: Returns JSON schema (default)

### 3. querySubgraph
Executes GraphQL queries against a specified subgraph. While queries are typically generated by AI, you can also manually craft your own.

**Parameters:**
- `subgraphId`: The subgraph ID
- `query`: GraphQL query string


## Installation

1. **Install uv** (if not already installed)
    ```bash
    curl -LsSf https://astral.sh/uv/install.sh | sh
    ```
2. **Clone the Repository**
    ```bash
    git clone https://github.com/Data-Nexus-Web3/thegraph-mcp.git
    ```
3. **Get an API Key**

    Sign up at [The Graph Studio](https://thegraph.com/studio/) to get an API key (free for the first 100k queries)

4. **Add the MCP Server**

    **Claude Code:**
    ```bash
    claude mcp add -e THEGRAPH_API_KEY=your_api_key_here thegraph-mcp -- uv --directory path/to/thegraph-mcp run main.py
    ```

    **Claude Desktop / Other MCP Clients:**

    Add the following to your client's MCP config file (e.g. `claude_desktop_config.json`):
    ```json
    {
      "mcpServers": {
        "thegraph-mcp": {
          "command": "uv",
          "args": ["--directory", "path/to/thegraph-mcp", "run", "main.py"],
          "env": {
            "THEGRAPH_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    ```

## Example Prompts

Here are some natural language prompts to trigger the tools:

### Subgraph Discovery
- "Find me a subgraph for Uniswap on Ethereum"
- "Search for Aave subgraphs"
- "What subgraphs are available for ENS?"

### Schema Queries
- "Show me the schema for the Uniswap V3 Ethereum subgraph in a readable format"
- "What entities and fields are available in the Aave V3 subgraph?"
- "I need to understand the data model of subgraph QmZBQcF..., can you fetch its schema?"

### Data Queries
- "Find the top 5 tokens by trading volume in the last 24 hours on Uniswap V3 Ethereum"
- "Show me all pairs with liquidity greater than 1 million USD on Uniswap"
- "Get the latest 10 swap events from subgraph QmZBQcF..., including token symbols and amounts"

### Analysis Tasks
- "What is the highest APR market on Aave mainnet?"
- "Compare the liquidity of ETH and USDC pairs on Uniswap Ethereum"
- "Find the most active lending markets on Aave by deposit volume"

### Combined Tasks
- "Find a Uniswap subgraph on Ethereum, check its schema, then help me write a query to find high-value swaps"
- "What data can I get from Aave on Ethereum? Show me the schema and then query the top markets by TVL"
- "Using subgraph QmZBQcF..., analyze the market impact of large trades by first understanding the schema and then querying relevant events"

## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: getSubgraphSchema retrieves schema metadata, querySubgraph executes queries, and searchSubgraphs finds subgraphs. There is no overlap in functionality, making tool selection unambiguous for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with camelCase styling (getSubgraphSchema, querySubgraph, searchSubgraphs). The naming is predictable and readable throughout the set.

Tool Count3/5

With only 3 tools, the set feels thin for a GraphQL subgraph interaction server. While the core operations are covered, additional tools for mutations, subscriptions, or subgraph management could enhance completeness, placing it in the borderline range.

Completeness4/5

The tools cover essential read operations (schema fetching, querying, searching) well, but there are minor gaps such as lacking mutation support or subgraph lifecycle management (e.g., create/update/delete). Agents can work around these for basic querying tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues