Skip to main content
Glama
letoribo

mcp-graphql-enhanced

mcp-graphql-enhanced

Glama LLMとGraphQL API間の現実的な相互運用性の問題を解決する、拡張版MCP (Model Context Protocol) サーバーです。

mcp-graphql のドロップイン代替品であり、動的ヘッダー、堅牢な変数解析を備え、破壊的変更は一切ありません。

💬 コミュニティとサポート

会話に参加しましょう!Neo4j、Discordデータグラフ、または一般的なGraphQLでこのブリッジを使用することについて質問がある場合は、ぜひお越しください:

フィードバックの共有、問題の報告、またはブリッジに対する新しい「拡張」機能の提案に最適な場所です。

Related MCP server: mcp-graphql-schema

✨ 主な拡張機能

  • ✅ 組み込みGraphiQL IDE — http://localhost:MCP_PORT/ (または /graphiql) で利用可能な、ヘッダー設定済みのビジュアルプレイグラウンド。

  • ✅ デュアルトランスポート — STDIO (ローカルCLI/クライアントツール用) と HTTP/JSON-RPC (外部/ブラウザクライアント用) の両方をサポート。

  • ✅ 動的ヘッダー — ツール引数経由で Authorization、X-API-Key などを渡せます (設定の再起動は不要)

  • ✅ 堅牢な変数解析 — “Query variables must be a null or an object” エラーを修正

  • ✅ フィルタリングされたイントロスペクション — 特定の型のみをリクエスト可能 (例: typeNames: ["Query", "User"]) で、LLMのコンテキストノイズを低減

  • ✅ 完全なMCP互換性 — Claude Desktop、Cursor、Glama で動作

  • ✅ デフォルトでセキュア — 明示的に有効にしない限り、ミューテーションは無効

  • ✅ 動的スキーマ進化 — (Neo4jのように) GraphQL型をオンザフライで再生成するサーバー向けのスマートな診断とギャップ分析。

  • ✅ 詳細な可観測性 — GraphQL拡張からのCypher抽出とクリーニングを自動化。

🚀 マルチエンドポイントブロードキャスト (v3.9.0+ で試験的導入)

v3.9.0 から、サーバーは複数のGraphQLエンドポイントへの同時クエリをサポートしています。これは元々、異なる環境 (Node.jsやPythonのバックエンドなど) 間でミューテーションを同期するために設計されましたが、データ集約のための強力な可能性を切り開きます。

  • 破壊的変更なし: ENDPOINT に単一のURLを指定した場合、サーバーは以前と全く同じように動作します。

  • スマート集約: カンマ区切りで複数のURLが指定されると、サーバーはすべてのエンドポイントにクエリをブロードキャストし、結果の配列をマージします。

  • 無料枠制限の回避: 「無料枠」のクラウドデータベース (Neo4j Auraなど) のユーザーに最適です。データを複数の無料インスタンスに分割し、このブリッジを使用してそれらを単一の統合グラフとしてクエリすることで、実質的にエンティティ数の制限を回避できます。

  • 重複排除: ブリッジは一意のフィールドに基づいて重複オブジェクトを自動的に削除し、AIのコンテキストウィンドウをクリーンに保ちます。

⚠️ 自己責任で使用してください: この機能は、すべてのエンドポイントが同一 (または非常に類似した) GraphQLスキーマを共有していることを前提としています。イントロスペクションはリストの最初のエンドポイントに対して実行されます。

💡 ユースケース: WSLとWindows (PowerShell) のブリッジ

Windows開発者にとって共通の課題は、Windows Subsystem for Linux (WSL) とホストOS間のネットワーク分離です。この機能により、これら2つの世界を「統合神経系」にブリッジできます。

Claude Desktopの設定例:

{
  "ENDPOINT": "http://DESKTOP-NAME.local:2311/graphql,http://127.0.0.1:4000/graphql"
}
  • ハイブリッドエコシステム: Windowsネイティブプロセス (PowerShell) とLinuxベース環境 (WSL) 間でシームレスにデータをクエリおよび集約します。

  • mDNSサポート: .localアドレスを使用することで、ブリッジはWSL環境内からホストマシンのIPを自動的に解決します。

  • 透過的な集約: AIアシスタントは、データが異なるオペレーティングシステムから同時に取得されていることを意識せず、単一の統合スキーマと対話します。

🔍 高度な可観測性とCypher

このブリッジは、LLMがグラフデータベースとどのように対話するかについての深い洞察を提供します。

🕸️ 自動Cypher抽出

クエリ実行プランを返すGraphQLサーバー実装 (例: @neo4j/graphql) に対して、ブリッジは自動的に以下を行います:

  1. レスポンス内の extensions.cypher を検出します。

  2. 内部ヘッダー (例: CYPHER 5 や空の PARAMS) を取り除いて出力をサニタイズします。

  3. AIが分析できるように、クリーンなCypherブロックをツールの出力に直接注入します。

注: この機能を使用するには、GraphQLサーバーがレスポンス拡張にデバッグ情報を含めるように設定されている必要があります。


🎨 ビジュアルコマンドセンター (GraphiQL)

標準的なMCPサーバーとは異なり、本サーバーは人間用の視覚的インターフェースを提供します。ENABLE_HTTP=true で実行すると、ブラウザでフル機能の GraphiQL IDE を開くことができます。

  • エンドポイント: http://localhost:6274/ (または /graphiql)

  • ヘッダー同期: 環境で設定されたヘッダー (GitHubトークンなど) は、即座にテストできるようにGraphiQLの「Headers」タブに自動的に注入されます。

💻 HTTP / デュアルトランスポート

このサーバーは現在デュアルトランスポートモードで動作し、標準の STDIO 通信 (ほとんどのMCPクライアントで使用) と、ポート 6274 での新しい HTTP JSON-RPC エンドポイントの両方をサポートしています。

これにより、外部システム、Webアプリケーション、および直接の curl コマンドが、ターミナルでのライブリクエストログ ([HTTP-RPC] ログ) を伴ってサーバーのツールにアクセスできるようになります。

エンドポイント

メソッド

説明

/graphiql

GET

ヒューマンインターフェース: ビジュアルGraphQL IDE。

/mcp

POST

ツール実行用のメインJSON-RPC 2.0エンドポイント。

/health

GET

シンプルなヘルスチェック、{ status: 'ok' } を返します。

自動ポート選択

サーバーはデフォルトでポート 6274 を使用します。EADDRINUSE エラーが発生した場合、サーバーは自動的に次に利用可能なポートを見つけます。最終的にバインドされたポートについてはサーバーログを確認してください (例: [HTTP] Started server on http://localhost:6275)。

ポート競合 (EADDRINUSE) の解決と自動ポート選択

サーバーはデフォルトでポート 6274 を使用します。EADDRINUSE: address already in use :::6274 エラー (古いプロセスが残っているためローカル開発でよく発生します) が発生した場合、サーバーは自動的に次に利用可能なポートを見つけます (最大10回試行、複数のサーバーを起動することはありません)。

これにより、デフォルトがブロックされている場合でもサーバーは正常に起動します。curl やクライアントツールがデフォルトの 6274 で失敗した場合は、常にサーバーログで最終的にバインドされたポートを確認してください (例: [HTTP] Started server on http://localhost:6275)。

特定のポートを強制する場合 (例: 外部ファイアウォールの設定を保証するため) は、引き続き MCP_PORT 環境変数を明示的に設定できます:

HTTPエンドポイントのテスト

サーバーが実行中であれば (例: npm run dev 経由)、curl を使用してエンドポイントをテストできます:

# Test the health check (assuming the server bound to the default or found the next available port)
curl http://localhost:6274/health

# Example: Test the query tool via JSON-RPC (using port 6275 if 6274 was busy)
curl -X POST http://localhost:6275/mcp -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"query-graphql","params":{"query":"query { __typename }"},"id":1}'

## 🔍 Filtered Introspection
Avoid 50k-line schema dumps. Ask for only what you need:
`@introspect-schema typeNames ["Query", "User"]`
## 🔍 Debug & Inspect
Use the official MCP Inspector to test your server live:
```bash
npx @modelcontextprotocol/inspector \
  -e ENDPOINT=https://api.example.com/graphql \
  npx @letoribo/mcp-graphql-enhanced

環境変数 (1.0.0での破壊的変更)

注: バージョン1.0.0より、コマンドライン引数は環境変数に置き換えられました。

環境変数

説明

デフォルト

ENDPOINT

GraphQLエンドポイントURL

https://mcp-neo4j-discord.vercel.app/api/graphiql

HEADERS

リクエスト用ヘッダーを含むJSON文字列

{}

ALLOW_MUTATIONS

ミューテーション操作を有効にする (デフォルトは無効)

false

NAME

MCPサーバーの名前

mcp-graphql-enhanced

SCHEMA

ローカルGraphQLスキーマファイルまたはURLへのパス

-

MCP_PORT

HTTP/JSON-RPCサーバーのポート。

6274

ENABLE_HTTP

HTTPトランスポートを有効にする: auto (デフォルト)、true、または false

auto

DEBUG

詳細なSDKログには mcp:* を設定

-

ENABLE_HTTP に関する注記:

  • auto (デフォルト): MCP Inspectorで実行されている場合のみ自動的にHTTPを有効にします...

  • true: 常にHTTPサーバーを有効にする

  • false: HTTPサーバーを完全に無効にする

例

# Basic usage
ENDPOINT=http://localhost:3000/graphql npx @letoribo/mcp-graphql-enhanced
# With auth header
ENDPOINT=https://api.example.com/graphql \
HEADERS='{"Authorization":"Bearer xyz"}' \
npx @letoribo/mcp-graphql-enhanced
# Enable mutations
ENDPOINT=http://localhost:3000/graphql \
ALLOW_MUTATIONS=true \
npx @letoribo/mcp-graphql-enhanced
# Use local schema file
ENDPOINT=http://localhost:3000/graphql \
SCHEMA=./schema.graphql \
npx @letoribo/mcp-graphql-enhanced
# Change the HTTP port
MCP_PORT=8080 npx @letoribo/mcp-graphql-enhanced
# Disable HTTP transport (fastest, recommended for Claude Desktop)
ENABLE_HTTP=false npx @letoribo/mcp-graphql-enhanced
# Test the surgical precision and the IDE immediately:
ENDPOINT=https://api.github.com/graphql \
HEADERS='{"Authorization":"Bearer YOUR_GITHUB_TOKEN"}' \
ENABLE_HTTP=true \
npx @letoribo/mcp-graphql-enhanced

# Then visit http://localhost:6274/graphiql

🖥️ Claude Desktop設定例

npxパッケージ (シンプルさのために推奨) またはDockerイメージ (再現性と分離のために理想的) のいずれかを使用して、Claude DesktopをGraphQL APIに接続できます。

✅ オプション1: npxを使用する

{
  "mcpServers": {
    "mcp-graphql-enhanced": {
      "command": "npx",
      "args": ["@letoribo/mcp-graphql-enhanced"],
      "env": {
        "ENDPOINT": "https://your-api.com/graphql"
      }
    }
  }
}

🐳 オプション2: Dockerを使用する (自動プル対応)

{
  "mcpServers": {
    "mcp-graphql-enhanced": {
      "command": "sh",
      "args": [
        "-c",
        "docker run --rm -i -e ENDPOINT=$ENDPOINT -e HEADERS=$HEADERS -e ALLOW_MUTATIONS=$ALLOW_MUTATIONS ghcr.io/letoribo/mcp-graphql-enhanced:main"
      ],
      "env": {
        "ENDPOINT": "https://your-api.com/graphql",
        "HEADERS": "{\"Authorization\": \"Bearer YOUR_TOKEN\"}",
        "ALLOW_MUTATIONS": "false"
      }
    }
  }
}

🧪 オプション3: ローカルビルドでnodeを使用する (開発用)

リポジトリをクローンしてプロジェクトをビルドした場合 (npm run build → dist/ に出力):

{
  "mcpServers": {
    "mcp-graphql-enhanced": {
      "command": "node",
      "args": ["dist/index.js"],
      "env": {
        "ENDPOINT": "https://your-api.com/graphql",
        "ALLOW_MUTATIONS": "true"
      }
    }
  }
}

リソース

  • graphql-schema: サーバーはGraphQLスキーマをクライアントがアクセス可能なリソースとして公開します。これは、ローカルスキーマファイル、URLでホストされているスキーマファイル、またはイントロスペクションクエリに基づいています。

利用可能なツール

サーバーは2つの主要なツールを提供します:

  1. introspect-schema: このツールは、GraphQLスキーマまたはフィルタリングされたサブセット (typeNames経由) を取得します。スキーマにリソースとしてアクセスできない場合は、まずこれを使用してください。 これは、ローカルスキーマファイル、URLでホストされているスキーマファイル、またはイントロスペクションクエリのいずれかを使用します。 フィルタリングされたイントロスペクション (typeNames) は、ライブGraphQLエンドポイントを使用している場合にのみ利用可能です (SCHEMAファイルやURLでは利用できません)。

  2. query-graphql: エンドポイントに対してGraphQLクエリを実行します。デフォルトでは、ALLOW_MUTATIONS が true に設定されていない限り、ミューテーションは無効です。

セキュリティに関する考慮事項

意図しないデータ変更を防ぐため、ミューテーションはデフォルトで無効になっています。本番環境では常にHEADERSとSCHEMAの入力を検証してください。可能な限りHTTPSエンドポイントと短命トークンを使用してください。

独自のサーバー用にカスタマイズする

これは非常に汎用的な実装であり、完全なイントロスペクションを可能にし、ユーザーが (ミューテーションを含む) 何でもできるようにしています。より具体的な実装が必要な場合は、独自のMCPを作成し、クライアントが特定のクエリフィールドや変数のみを入力できるようにツール呼び出しを制限することをお勧めします。これをリファレンスとして使用できます。

Available Tools

2 tools
introspect-schemaA

Retrieve GraphQL schema details or system manifest. READ-ONLY: Non-destructive metadata discovery. Usage: 1. If 'typeNames' is provided: Returns the full SDL (Schema Definition Language) for the requested types, including fields and relations. 2. If 'typeNames' is omitted: Returns a Federated Manifest—a high-level summary of connected nodes, their capabilities, and available domain entities (not the full schema). Use this to navigate the federated graph topology before executing queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
headersNoJSON stringified object of extra HTTP headers for the introspection request (e.g. '{"Authorization": "Bearer token"}').
endpointNoOptional target GraphQL HTTP/HTTPS URL to dynamically switch endpoint before execution.
typeDepthNoDepth of nested fields to retrieve (default: 2)
typeNamesNoList of specific GraphQL type names to introspect. If provided, returns the detailed SDL definitions for these types. If omitted, returns a system-wide Federated Manifest overview.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it explicitly declares 'READ-ONLY: Non-destructive metadata discovery.' It also discloses the two distinct behavioral outcomes based on typeNames and clarifies that the manifest is 'not the full schema,' which helps set expectations. It does not mention potential errors or how headers/endpoint affect behavior, but the core safety and conditional behavior are clearly communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear one-line summary, an explicit READ-ONLY safety cue, and a numbered list that front-loads the two usage modes. Every sentence contributes either to behavioral transparency or invocation guidance, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderate-complexity tool with zero required parameters and no output schema, the description is largely complete: it covers both invocation modes, the manifest vs. SDL distinction, and the read-only nature. It could be more complete by explicitly routing query execution to query-graphql, but this is a minor gap given the clear 'before executing queries' framing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful behavior beyond the schema by explaining the conditional outcome for typeNames and clarifying that results include 'fields and relations.' This gives an agent a better mental model of what each parameter triggers, even though the schema already documents the parameters themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as retrieving GraphQL schema details or a system manifest, with a specific verb and resource. It distinguishes between two modes—full SDL for requested types versus a Federated Manifest overview—and positions it as metadata discovery before executing queries, differentiating it from the sibling query-graphql tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit conditional guidance: use typeNames to get full SDL definitions, omit it to get a manifest for navigating the federated graph. It also states to use the manifest 'before executing queries,' providing clear context. However, it does not explicitly name or exclude the sibling tool query-graphql as the alternative for actual query execution.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query-graphqlA

Execute GraphQL operations (queries and mutations) against the federated system. WARNING: This tool performs remote operations. 'Mutation' operations will modify persistent state; execute these only when a state change is intended. Prerequisites: Verify schema structure using 'introspect-schema' before executing complex queries. Security: Inherits environment-based authentication. Returns: A JSON object containing the execution result ('data') or a list of 'errors' in case of failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe GraphQL query or mutation string. Example: 'query { guilds { id name } }'.
headersNoJSON stringified object of extra HTTP headers for the request.
endpointNoOptional target GraphQL HTTP/HTTPS URL to dynamically switch endpoint before execution.
variablesNoJSON stringified object of variables. Example: '{"id": "123"}'.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does so well: it discloses that the tool performs remote operations, that mutations modify persistent state, that authentication is inherited from the environment, and that failures return an errors list. These are the key behavioral facts an agent needs beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is organized into clear warning, prerequisite, security, and return-value statements with no filler. It is slightly longer than a minimal two-sentence description, but each section contributes a distinct piece of operational knowledge.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given four parameters and no output schema or annotations, the description covers the essential operating context: when to verify schema, mutation risk, authentication model, and expected return structure. No critical information needed to call the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds value by warning that the required query string may contain operations that mutate persistent state, and by noting the return shape. It does not repeat schema descriptions, but provides meaningful semantic context for the query parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action verb ('Execute') and target ('GraphQL operations ... against the federated system'), distinguishing this as the operation-execution tool while the sibling 'introspect-schema' is referenced only for schema verification. The clarification that it handles both queries and mutations further disambiguates its role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the sibling tool as a prerequisite step ('Verify schema structure using introspect-schema before executing complex queries'), and warns to execute mutations only when a state change is intended. This gives the agent clear when-to-use and when-not-to-use guidance for mutation operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv4.15.2
    • Changedintrospect-schema2 fields changed
      • addedInput schema / properties / endpoint
        Added value: +{
        +  "description": "Optional target GraphQL HTTP/HTTPS URL to dynamically switch endpoint before execution.",
        +  "type": "string"
        +}
      • addedInput schema / properties / headers
        Added value: +{
        +  "description": "JSON stringified object of extra HTTP headers for the introspection request (e.g. '{\"Authorization\": \"Bearer token\"}').",
        +  "type": "string"
        +}
    • Changedquery-graphql1 field changed
      • addedInput schema / properties / endpoint
        Added value: +{
        +  "description": "Optional target GraphQL HTTP/HTTPS URL to dynamically switch endpoint before execution.",
        +  "type": "string"
        +}
  2. 1 tool updatev4.13.1
    • Addedintrospect-schema
  3. 1 tool updatev4.12.0
    • Removedintrospect-schema
  4. 1 tool updatev4.9.2
    • Changedintrospect-schema1 field changed
      • removedInput schema / properties / typeDepth / default
        Removed value: -2
  5. 2 tool updatesv4.8.0
    • Changedintrospect-schema2 fields changed
      • addedInput schema / properties / typeDepth
        Added value: +{
        +  "default": 2,
        +  "description": "Depth of nested fields to retrieve (default: 2)",
        +  "type": "number"
        +}
      • changedInput schema / properties / typeNames / description
        Previous value: -"List of specific GraphQL type names to introspect. If omitted, the full schema is returned (use with caution on large APIs)."New value: +"List of specific GraphQL type names to introspect. If provided, returns the detailed SDL definitions for these types. If omitted, returns a system-wide Federated Manifest overview."
    • Changedquery-graphql3 fields changed
      • changedInput schema / properties / headers / description
        Previous value: -"JSON string of extra HTTP headers for the request."New value: +"JSON stringified object of extra HTTP headers for the request."
      • changedInput schema / properties / query / description
        Previous value: -"The GraphQL query or mutation string."New value: +"The GraphQL query or mutation string. Example: 'query { guilds { id name } }'."
      • changedInput schema / properties / variables / description
        Previous value: -"JSON string of variables for the operation."New value: +"JSON stringified object of variables. Example: '{\"id\": \"123\"}'."
  6. 2 tool updatesv4.2.0
    • Changedintrospect-schema1 field changed
      • changedInput schema / properties / typeNames / description
        Previous value: -"List of type names to introspect"New value: +"List of specific GraphQL type names to introspect. If omitted, the full schema is returned (use with caution on large APIs)."
    • Changedquery-graphql3 fields changed
      • changedInput schema / properties / headers / description
        Previous value: -"JSON string of extra headers"New value: +"JSON string of extra HTTP headers for the request."
      • changedInput schema / properties / query / description
        Previous value: -"The GraphQL query or mutation string"New value: +"The GraphQL query or mutation string."
      • changedInput schema / properties / variables / description
        Previous value: -"JSON string of variables"New value: +"JSON string of variables for the operation."
  7. 2 tool updatesv3.9.3
    • Addedintrospect-schema
    • Addedquery-graphql
  8. 2 tool updatesv2.0.7
    • Removedintrospect-schema
    • Removedquery-graphql
  9. 2 tool updatesv1.0.0
    • Changedintrospect-schema3 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / typeNames / description
        Previous value: -"e.g., [\"Query\", \"User\"]"New value: +"A list of specific type names to filter the introspection."
    • Changedquery-graphql2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false

TDQS

A4.6/5.0

Scored across 2 tools

Disambiguation5/5

query-graphql handles all execution, including state-changing mutations, while introspect-schema is strictly read-only metadata discovery. Their purposes are sharply separated with no overlap.

Naming Consistency5/5

Both tools follow the same verb-noun hyphenated pattern: query-graphql and introspect-schema. The naming is predictable and consistent.

Tool Count4/5

Two tools is slightly below the typical 3-15 range, but it is a reasonable and well-scoped count for a GraphQL server: one execution tool and one schema-discovery tool. Each tool earns its place.

Completeness5/5

For a GraphQL-focused server, the pair covers the full interaction surface: schema/introspection discovery and arbitrary query/mutation execution. There are no obvious missing capabilities.

Maintenance

ActivityActive
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A MCP server that exposes GraphQL schema information to LLMs like Claude. This server allows an LLM to explore and understand large GraphQL schemas through a set of specialized tools, without needing to load the whole schema into the context
    35 npm
    46
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    GraphQL MCP Server that acts as a bridge allowing MCP clients (like Cursor or Claude Desktop) to interact with target GraphQL APIs through standard tools for schema introspection and operation execution.
    2
    13 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP that can proxy any GraphQL API and expose graphql operations as mcp tools.
    13 npm
    18
    Apache 2.0