mcpField
M
mcp-graphql

mcp-graphql

Local
github.com/blurrahDeveloper Tools407Updated 65w ago

About mcp-graphql

mcp-graphql is a Model Context Protocol server that lets LLMs interact with GraphQL APIs. It provides schema introspection and query execution so models can discover and use an API dynamically, with mutations disabled by default.

Key features

  1. 01Schema introspection and schema resource
  2. 02query-graphql tool for query execution
  3. 03Endpoint and headers set via environment variables
  4. 04Mutations off by default, enabled with ALLOW_MUTATIONS
  5. 05Local or URL-hosted schema file support

Use cases

  1. 01Letting an LLM explore and query a GraphQL API
  2. 02Connecting a GraphQL service to Claude Desktop

MCP support

This project is an MCP server that exposes a graphql-schema resource and two tools, introspect-schema and query-graphql, to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"graphql": {
"command": "npx",
"args": [
"-y",
"mcp-graphql"
],
"env": {
"ENDPOINT": "<ENDPOINT>"
}
}
}
}
Run commandnpx -y mcp-graphql
Environment variables to set
ENDPOINT

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-graphql

Tools

2

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
__ignore__booleanNoThis does not do anything

Details

From the project 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 VariableDescriptionDefault
ENDPOINTGraphQL endpoint URLhttp://localhost:4000/graphql
HEADERSJSON string containing headers for requests{}
ALLOW_MUTATIONSEnable mutation operations (disabled by default)false
NAMEName of the MCP servermcp-graphql
SCHEMAPath 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.

Comments

Markdown supported

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.