A schema-first GraphQL MCP server that avoids the 1MB introspection limit via typeNames/typeDepth scoping — built for federated topologies.
claude mcp add mcp-graphql-enhanced -- npx -y @letoribo/mcp-graphql-enhanced{
"mcpServers": {
"mcp-graphql-enhanced": {
"command": "npx",
"args": ["-y", "@letoribo/mcp-graphql-enhanced"]
}
}
}Resumen de MCP Servers
# mcp-graphql-enhanced
[](https://glama.ai/mcp/servers/@letoribo/mcp-graphql-enhanced)
[](https://glama.ai/mcp/servers/letoribo/mcp-graphql-enhanced)[](https://smithery.ai/servers/letoribo/mcp-graphql-enhanced)
An **enhanced MCP (Model Context Protocol) server for GraphQL** that fixes real-world interoperability issues between LLMs and GraphQL APIs.
> Drop-in replacement for `mcp-graphql` — with dynamic headers, robust variables parsing, and zero breaking changes.
#### 🎯 What is mcp-graphql-enhanced?
`mcp-graphql-enhanced` is a high-performance, federated GraphQL gateway designed to act as a workhorse for LLM agents. It bridges the gap between massive, complex GraphQL ecosystems and the context-limited environment of AI assistants. Unlike standard "all-or-nothing" introspection tools that crash under the weight of large schemas (like GitHub's or enterprise-grade Neo4j graphs), this server provides surgical control over how your agent perceives and interacts with your data.
#### 💡 Why do you need it?
If you have ever seen the`<error>Tool result is too large</error>`while trying to introspect your API, you are already hitting the limits of standard MCP implementations. Here is why mcp-graphql-enhanced is the industry-standard choice for professional environments:
Avoid the 1MB Ceiling: It shifts the responsibility for scope from the server to the caller. Instead of a unilateral "everything or nothing" dump, you get granular control via typeNames and typeDepth parameters.
Surgical Precision: You can selectively introspect only the nodes you need (e.g., Repository, User, or Message), keeping your context window clean and your LLM focused.
Predictability over Immunity: It doesn't promise "unlimited" capacity—it promises predictability. In enterprise systems, you need a tool that lets you navigate the graph surgically and fail predictably if you overstep, rather than a "black box" that dies on you the moment the schema grows.
Proof of Performance: See a real-world demonstration of the gateway bypassing standard architectural limits during a live diagnostic test against the GitHub API:
🔗 Diagnostic Case Study: Scoped vs. Monolithic Introspection ([Shared Chat](https://claude.ai/share/5b845f72-809a-42ee-8083-361314126069))
## 💬 Community & Support
Join the conversation! If you have questions about using this bridge with Neo4j, Discord data graphs, or GraphQL in general, come hang out with us:
* **Discord Channel:** [#mcp-graphql-enhanced](https://discord.com/channels/625400653321076807/1480510460339159184)
* **Server:** The official **GraphQL Discord**
This is the best place to share your feedback, report issues, or suggest new "enhanced" features for the bridge.
## ✨ Key Enhancements
* ✅ **Built-in GraphiQL IDE** — Visual playground at / (or /graphql, /graphiql) with pre-configured headers for instant testing and introspection.
* ✅ **Dual Transport** — Supports both **STDIO** (for local CLI/client tools) and **HTTP/JSON-RPC** (for external/browser clients).
* ✅ **Dynamic headers** — pass `Authorization`, `X-API-Key`, etc., via tool arguments (no config restarts)
* ✅ **Robust variables parsing** — fixes `“Query variables must be a null or an object”` error
* ✅ **Smart introspection** — supports filtered requests (via typeNames) and recursive depth control (via typeDepth) to minimize LLM context noise and optimize schema exploration.
* ✅ **Full MCP compatibility** — works with **Claude Desktop**, **Groq Desktop**, **Glama** and any standard MCP client
* ✅ **Secure by default** — mutations disabled unless explicitly enabled
* ✅ **Dynamic Schema Evolution** — Smart diagnostics and gap analysis for servers that regenerate GraphQL types on-the-fly (like Neo4j).
* ✅ **Deep Observability** — Automatic Cypher extraction and cleaning from GraphQL extensions.
## 🚀 Federated Multi-Node Architecture (v3.9.1+)
The server operates as a Federated GraphQL Gateway, merging independent nodes into a unified system.
* **Zero Breaking Changes**: If you provide a single URL in `ENDPOINT`, the server behaves exactly as before.
* **Federated Introspection**: Scans all endpoints simultaneously to build a global capability map.
* **Smart Aggregation**: When multiple comma-separated URLs are provided, the server broadcasts queries and merges results using universal deep deduplication (object-level).
* **Conflict Handling**: Identifies structural differences in identical Type names across nodes and exposes them uniquely.
* **Bypass Free Tier Limits**: Perfect for users of "Free Tier" cloud databases (like Neo4j Aura). You can split your data across multiple free instances and use this bridge to query them as a **single unified graph**, effectively bypassing entity count limitations.
#### Proof of Concept:
See a real-world demonstration of the federated query synthesis in action, where the agent aggregates live Discord data with historical Neo4j insights:
🔗 Live Federation Analysis ([Shared Chat](https://claude.ai/share/69a1f8dc-10f0-4c5b-bfe2-267f1294851a))
#### 💡 Use Case: Bridging WSL and Windows (PowerShell)
A common challenge for Windows developers is the network isolation between the Windows Subsystem for Linux (WSL) and the host OS. This feature allows you to bridge these two worlds into a "Unified Nervous System".
Example configuration for Claude Desktop:
```bash
{
"ENDPOINT": "http://DESKTOP-NAME.local:2311/graphql,http://127.0.0.1:4000/graphql"
}
```
* **Hybrid Ecosystem**: Seamlessly query and aggregate data across Windows-native processes (PowerShell) and Linux-based environments (WSL).
* **mDNS Support**: By using .local addresses, the bridge automatically resolves the host machine's IP from within the WSL environment.
* **Transparent Aggregation**: The AI assistant interacts with a single unified schema, unaware that the data is being fetched from different operating systems simultaneously.
## 🔍 Advanced Observability & Cypher
The bridge provides deep insights into how the LLM interacts with your graph database.
### 🕸️ Automated Cypher Extraction
For GraphQL server implementations that return query execution plans (like `@neo4j/graphql`), the bridge automatically:
1. **Detects** `extensions.cypher` in the response.
2. **Sanitizes** the output by stripping internal headers (like `CYPHER 5` or empty `PARAMS`).
3. **Injects** a clean Cypher block directly into the tool's output for the AI to analyze.
> **Note:** This feature requires your GraphQL server to be configured to include debug information in the response extensions.
---
## 🎨 Visual Command Center (GraphiQL)
Unlike standard MCP servers, this one provides a visual interface for humans. When running with `ENABLE_HTTP=true`, you can open a full-featured **GraphiQL IDE** in your browser.
* **Endpoint:** `http://localhost:6274/` (or /graphql, /graphiql)
* **Header Sync:** Any headers set in your environment (like GitHub tokens) are automatically injected into the GraphiQL "Headers" tab for immediate testing.
## 💻 HTTP / Dual Transport
This server now runs in **dual transport mode**, supporting both the standard **STDIO** communication (used by most MCP clients) and a new **HTTP JSON-RPC** endpoint on port `6274`.
This allows external systems, web applications, and direct `curl` commands to access the server's tools with **live request logging** in your terminal (`[HTTP-RPC]` logs).
| **Endpoint** | **Method** | **Description** |
| :--- | :--- | :--- |
| `/graphiql` | `GET` | Human Interface: The visual GraphQL IDE. |
| `/mcp` | `POST` | The main JSON-RPC 2.0 endpoint for tool execution. |
| `/health` | `GET` | Simple health check, returns `{ status: 'ok' }`. |
### Automatic Port Selection
The server defaults to port `6274`. If you encounter an `EADDRINUSE` error, the server will automatically find the next available port. **Check the server logs for the final bound port** (e.g., `[HTTP] Started server on http://localhost:6275`).
### Resolving Port Conflicts (EADDRINUSE) and Automatic Port Selection
The server defaults to port `6274`. If you encounter an `EADDRINUSE: address already in use :::6274` error (common in local development due to stale processes), the server will automatically find the next available port (up to 10 attempts, not spawning multiple servers).
This ensures the server starts successfully even when the default is blocked. **Always check the server logs for the final bound port** (e.g., `[HTTP] Started server on http://localhost:6275`) if your `curl` or client tool fails on the default `6274`.
To **force a specific port** (e.g., for guaranteed external firewall settings), you can still explicitly set the `MCP_PORT` environment variable:
### Testing the HTTP Endpoint
You can test the endpoint using `curl` as long as the server is running (e.g., via `npm run dev`):
#### Test the health check (assuming the server bound to the default or found the next available port)
```bash
curl http://localhost:6274/health
```
#### Testing the JSON-RPC Transport
```
curl -X POST http://localhost:6274/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"tools/list",
"params":{},
"id":1
}'
curl -X POST http://localhost:6274/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "introspect-schema",
"arguments": {}
},
"id": 2
}'
curl -X POST http://localhost:6274/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "introspect-schema",
"arguments": {
"typeNames": ["User", "Message"]
}
},
"id": 3
}'
curl -X POST http://localhost:6274/mcp \
-H "Content-Type: applicatLo que la gente pregunta sobre mcp-graphql-enhanced
¿Qué es letoribo/mcp-graphql-enhanced?
+
letoribo/mcp-graphql-enhanced es mcp servers para el ecosistema de Claude AI. A schema-first GraphQL MCP server that avoids the 1MB introspection limit via typeNames/typeDepth scoping — built for federated topologies. Tiene 2 estrellas en GitHub y se actualizó por última vez today.
¿Cómo se instala mcp-graphql-enhanced?
+
Puedes instalar mcp-graphql-enhanced clonando el repositorio (https://github.com/letoribo/mcp-graphql-enhanced) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar letoribo/mcp-graphql-enhanced?
+
letoribo/mcp-graphql-enhanced aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.
¿Quién mantiene letoribo/mcp-graphql-enhanced?
+
letoribo/mcp-graphql-enhanced es mantenido por letoribo. La última actividad registrada en GitHub es de today, con 0 issues abiertos.
¿Hay alternativas a mcp-graphql-enhanced?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega mcp-graphql-enhanced en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/letoribo-mcp-graphql-enhanced)<a href="https://claudewave.com/repo/letoribo-mcp-graphql-enhanced"><img src="https://claudewave.com/api/badge/letoribo-mcp-graphql-enhanced" alt="Featured on ClaudeWave: letoribo/mcp-graphql-enhanced" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!