Skip to content

GraphQL MCPA Python package that turns any GraphQL API into AI-ready tools

Every query becomes a read tool. Every mutation becomes a write tool. Claude, ChatGPT, Cursor, and any MCP client can call them instantly.

GraphQL MCP is a Python package that reads your GraphQL schema and generates MCP tools automatically — no boilerplate, no manual definitions. It works in two modes: wrap a Python schema directly, or proxy any remote GraphQL API.

Your schema becomes AI tools

Your GraphQL schema

graphql
type Query {
  tasks(status: Status, priority: Priority): [Task!]!
  task(id: UUID!): Task
}

type Mutation {
  createTask(title: String!, priority: Priority): Task!
  deleteTask(id: UUID!): Boolean!
}

enum Status { TODO, IN_PROGRESS, DONE }
enum Priority { LOW, MEDIUM, HIGH, CRITICAL }

Generated MCP tools

text
tasks(status?, priority?) → [Task]
  List all tasks, filtered by status or priority.

task(id) → Task
  Get a single task by ID.

create_task(title, priority?) → Task
  Create a new task.

delete_task(id) → bool
  Delete a task by ID.

Types, descriptions, enums, and optionality are all preserved automatically.

Two ways to use it

Wrap a Python schema

Import your Strawberry, Ariadne, Graphene, or graphql-api schema and serve it directly — no network hop, no separate server.

python
from graphql_mcp import GraphQLMCP

api = ...  # your Python GraphQL schema
server = GraphQLMCP.from_api(api, name="My API")
app = server.http_app()

Python library guide →

Proxy a remote API

Point at any GraphQL endpoint — GitHub, Shopify, Hasura, or your own, in any language — and graphql-mcp introspects the schema and generates tools automatically.

python
from graphql_mcp import GraphQLMCP

server = GraphQLMCP.from_remote_url(
    "https://api.example.com/graphql"
)
app = server.http_app()

Remote API guide →

Works with

StrawberryAriadneGraphenegraphql-apiAny graphql-core schemaRemote GraphQL endpoints