
Graphql
io.github.Docat0209Published by GitHub account Docat0209v0.1.4Updated Oct 27, 2026
Turn any GraphQL API into MCP tools. Zero config, zero code.
Overview
Turns any GraphQL endpoint into MCP tools by introspecting its schema, so an assistant can call each query and mutation directly.
- What you can do
- Discover a GraphQL endpoint's queries and mutations through introspection and expose each one as a separate tool
- Call queries and mutations with flattened, simple parameters instead of nested input objects
- Limit which operations are exposed with include/exclude patterns and tool-name prefixes
- Control large responses through automatic array slicing, depth pruning and size limits
- Cache the introspected schema locally to speed up startup, with an option to force a refresh
- Flag or block destructive mutations such as delete, remove, drop or purge
- When to use it
- Useful when you want an assistant to work with a specific GraphQL API without writing a custom server, for example a public countries API or a token-protected service like GitHub's GraphQL API. It suits read-heavy exploration and, with safety settings, controlled mutations.
- Requirements
- Runs locally via npx (Node.js) as a stdio process; an SSE transport option exists. Needs the GraphQL endpoint URL and network access to it. Authentication is optional and passed as command-line arguments: a bearer token, an API key with header or query placement, or custom headers.
Installation
In SourceWeft
- Open Graphql in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
graphql-to-mcp
[npm version] [npm downloads] [License: MIT]
Turn any GraphQL API into MCP tools — zero config, zero code.
Point graphql-to-mcp at a GraphQL endpoint and it auto-generates one MCP tool per query/mutation via introspection. Works with Claude Desktop, Cursor, Windsurf, and any MCP client.
Quick Start
Try it now — no install needed:
Or add to Claude Desktop / Cursor config:
That's it. Claude can now query countries, continents, and languages.
Features
- Zero config — just provide a GraphQL endpoint URL
- Auto-introspection — discovers all queries and mutations automatically
- Flat parameter schemas — nested
inputobjects are flattened for better LLM accuracy - Smart truncation — large responses are intelligently pruned (array slicing + depth limiting)
- Auth support — Bearer tokens, API keys (header or query)
- Retry logic — automatic retries on 429/5xx with exponential backoff
- Include/exclude filters — expose only the operations you want
- Schema caching — skip re-introspection with
--schema-cachefor faster startup - Mutation safety — auto-detect destructive mutations (
delete*,remove*, etc.) and warn or block them
Usage
CLI
Claude Desktop / Cursor Config
Programmatic
How It Works
- Introspect — Fetches the GraphQL schema via introspection query
- Flatten — Nested
InputObjecttypes are flattened into simple key-value parameters (e.g.,input.name→input_name) - Generate — Each query/mutation becomes an MCP tool with a flat JSON Schema
- Execute — When an LLM calls a tool, the flat args are reconstructed into proper GraphQL variables and sent to your endpoint
Why Flat Schemas?
LLMs are significantly better at filling flat key-value parameters than deeply nested JSON objects. By flattening InputObject types, we get:
- Higher accuracy in parameter filling
- Fewer hallucinated nested structures
- Better compatibility across different LLM providers
Options
Smart Truncation
GraphQL APIs can return large payloads that overwhelm LLM context windows. graphql-to-mcp automatically:
- Slices arrays to 20 items (with metadata showing total count)
- Prunes depth beyond 5 levels (with object/array summaries)
- Hard truncates at 50K characters as a safety net
Schema Caching
Introspection queries can be slow on large schemas. Use --schema-cache to save the introspection result locally:
The cache file stores the endpoint URL and timestamp. If you point at a different endpoint, it automatically re-introspects.
Mutation Safety
By default, graphql-to-mcp detects destructive mutations and adds warnings to their descriptions. This helps LLMs understand the risk before executing them.
Detected patterns: delete*, remove*, drop*, clear*, truncate*, destroy*, purge*, reset* (case-insensitive).
Use with REST APIs Too
Pair with mcp-openapi to give Claude access to both REST and GraphQL APIs:
Related
- mcp-openapi — Same zero-config approach for REST/OpenAPI APIs
License
MIT
Source: README.md at commit 3c6934d
Tools
0Version history
1- v0.1.4LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts