mcp-graphql

MCP.Pizza Chef: blurrah

Point it at the web address of a GraphQL service and your assistant figures out for itself what data lives there, then writes and runs the queries needed to answer your question. Changes are blocked by default, so a model cannot alter your records unless you deliberately switch that on. This is a developer's tool rather than an everyday one, and the code has not been touched since September 2025, so treat it as quiet but working.

Coding
Data

Use This MCP server To

Ask questions of a GraphQL service in plain English Discover what data a GraphQL service actually offers Pull a report without writing the query myself Test a GraphQL service while I am building it Explore an unfamiliar service without changing anything

README

mcp-graphql

smithery badge

A Model Context Protocol server that enables LLMs to interact with GraphQL APIs. This implementation provides schema introspection and query execution capabilities, allowing models to discover and use GraphQL APIs dynamically.

mcp-graphql MCP server

Usage

Run mcp-graphql with the correct endpoint, it will automatically try to introspect your queries.

Environment Variables (Breaking change in 1.0.0)

Note: As of version 1.0.0, command line arguments have been replaced with environment variables.

Environment Variable Description Default
ENDPOINT GraphQL endpoint URL http://localhost:4000/graphql
HEADERS JSON string containing headers for requests {}
ALLOW_MUTATIONS Enable mutation operations (disabled by default) false
NAME Name of the MCP server mcp-graphql
SCHEMA Path to a local GraphQL schema file or URL (optional) -

Examples

# Basic usage with a local GraphQL server
ENDPOINT=http://localhost:3000/graphql npx mcp-graphql

# Using with custom headers
ENDPOINT=https://api.example.com/graphql HEADERS='{"Authorization":"Bearer token123"}' npx mcp-graphql

# Enable mutation operations
ENDPOINT=http://localhost:3000/graphql ALLOW_MUTATIONS=true npx mcp-graphql

# Using a local schema file instead of introspection
ENDPOINT=http://localhost:3000/graphql SCHEMA=./schema.graphql npx mcp-graphql

# Using a schema file hosted at a URL
ENDPOINT=http://localhost:3000/graphql SCHEMA=https://example.com/schema.graphql npx mcp-graphql

Resources

  • graphql-schema: The server exposes the GraphQL schema as a resource that clients can access. This is either the local schema file, a schema file hosted at a URL, or based on an introspection query.

Available Tools

The server provides two main tools:

  1. introspect-schema: This tool retrieves the GraphQL schema. Use this first if you don't have access to the schema as a resource. This uses either the local schema file, a schema file hosted at a URL, or an introspection query.

  2. query-graphql: Execute GraphQL queries against the endpoint. By default, mutations are disabled unless ALLOW_MUTATIONS is set to true.

Installation

Installing via Smithery

To install GraphQL MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install mcp-graphql --client claude

Installing Manually

It can be manually installed to Claude:

{
    "mcpServers": {
        "mcp-graphql": {
            "command": "npx",
            "args": ["mcp-graphql"],
            "env": {
                "ENDPOINT": "http://localhost:3000/graphql"
            }
        }
    }
}

Security Considerations

Mutations are disabled by default as a security measure to prevent an LLM from modifying your database or service data. Consider carefully before enabling mutations in production environments.

Customize for your own server

This is a very generic implementation where it allows for complete introspection and for your users to do whatever (including mutations). If you need a more specific implementation I'd suggest to just create your own MCP and lock down tool calling for clients to only input specific query fields and/or variables. You can use this as a reference.

mcp-graphql FAQ

Is this project still maintained?
Quietly. The last code change was September 2025, roughly eleven months before this listing, and no successor project is named.
Do I need a key?
Only if the service you point it at requires one. You can pass sign-in details along, but the tool itself asks for nothing.
Can it change or delete my data?
Not by default. Anything that writes is switched off, and you have to deliberately turn it on.
Which apps does it work in?
Claude Desktop is documented, and it works in any assistant that lets you paste in a short config snippet.
Can I use this to answer questions from my company's GraphQL data?
Yes, if you have the web address and any sign-in details. You then ask in plain English and it builds the query.
How hard is the setup?
You paste a few lines into your config with the address of the service. Knowing that address is the real prerequisite.
Is this useful if I am not a developer?
Honestly, not very. It assumes you already run a GraphQL service and know where it lives.