GraphQL MCPTurn any GraphQL schema into MCP tools
A Python package that reads your schema and generates AI-ready tools automatically. Every query becomes a read tool. Every mutation becomes a write tool.
A Python package that reads your schema and generates AI-ready tools automatically. Every query becomes a read tool. Every mutation becomes a write tool.
Install graphql-mcp, point it at a graphql-core schema or a remote endpoint, and get a running MCP server. Works with Strawberry, Ariadne, Graphene, graphql-api, or any GraphQL API over HTTP.
Your GraphQL schema
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
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.
Import your existing Python GraphQL schema and serve it as MCP tools directly — no network hop, no separate server. graphql-mcp reads the graphql-core schema object and generates tools in the same process.
from graphql_mcp import GraphQLMCP
api = ... # your Python GraphQL schema
server = GraphQLMCP.from_api(api, name="My API")
app = server.http_app()Compatible with any library that produces a graphql-core schema: Strawberry, Ariadne, Graphene, graphql-api.
Point at any GraphQL endpoint — in any language, on any host — and graphql-mcp introspects the schema over HTTP and generates tools automatically. Queries and mutations are forwarded to the remote server at call time.
from graphql_mcp import GraphQLMCP
server = GraphQLMCP.from_remote_url(
"https://api.example.com/graphql"
)
app = server.http_app()Requires the remote API to have introspection enabled.