anyapi-mcp-server
anyapi-mcp-server
APIがあるなら、MCPで接続できます。
従来のMCPサーバーは、限られたエンドポイントを手作業で選択して終わりというものが多く、誰かが「これで十分」と決めたサブセットに縛られてしまいます。APIのほんの一部で妥協する必要はありません。すべてを利用しましょう。
anyapi-mcp-serverは、あらゆるREST APIをClaudeやCursorなどのLLM搭載ツールに接続するための汎用MCPサーバーです。OpenAPI仕様やPostmanコレクションを指定するだけで、APIが提供するすべてのエンドポイントが即座に利用可能になります。GraphQL形式のフィールド選択と自動スキーマ推論により、カスタムサーバーコードや人為的な制限は不要です。
クイックスタート
1. インストール
npm install -g anyapi-mcp-server2. MCPクライアントに追加 (Cursor, Claude Desktopなど)
{
"mcpServers": {
"your-api": {
"command": "npx",
"args": [
"-y",
"anyapi-mcp-server",
"--name", "your-api",
"--spec", "path/to/openapi.json",
"--base-url", "https://api.example.com",
"--header", "Authorization: Bearer ${API_KEY}"
],
"env": {
"API_KEY": "your-api-key"
}
}
}
}3. ツールを使用 — list_apiでエンドポイントを探索し、call_apiでスキーマを検査し、query_apiでデータを取得します。
プロバイダーの例
主要なAPI向けのすぐに使える設定:
プロバイダー | 認証 |
APIトークンまたはキー + メールアドレス | |
APIキー + アプリキー | |
個人アクセストークン | |
OAuth 2.0 | |
APIキー | |
個人APIキー | |
ボット/ユーザートークン |
これらはOpenAPIまたはPostman仕様を持つあらゆるAPIで動作します。上記は単なる例です。Stripe、Twilio、Shopify、HubSpotなど、REST APIを持つ他のサービスも同様に動作します。
CLIリファレンス
必須フラグ
フラグ | 説明 |
| サーバー名 (例: |
| OpenAPI仕様 (JSON/YAML) またはPostmanコレクションへのパスまたはHTTPS URL。リモートURLはローカルにキャッシュされます。 |
| APIベースURL (例: |
オプションフラグ
フラグ | 説明 |
|
|
| NDJSON形式のリクエスト/レスポンスログへのパス。機密ヘッダーは自動的にマスクされます。 |
OAuthフラグ
静的トークンの代わりにOAuth 2.0を使用するAPI用です。3つの必須フラグのうちいずれかが提供された場合、すべてが必要となります。すべてのフラグは${ENV_VAR}をサポートしています。
フラグ | 必須 | 説明 |
| はい* | OAuthクライアントID |
| はい* | OAuthクライアントシークレット |
| はい* | トークンエンドポイントURL |
| いいえ | 認可エンドポイント (利用可能な場合は仕様から自動検出) |
| いいえ | カンマ区切りのスコープ |
| いいえ |
|
| いいえ |
|
完全なOAuthの例については、Google Workspaceガイドを参照してください。
ツール
このサーバーは4つのツール(OAuth設定時はauthも追加)を公開します。
list_api — エンドポイントの閲覧
APIが提供する機能を確認します。引数なしで呼び出すとすべてのカテゴリを表示し、categoryを指定するとタグ内のエンドポイントを一覧表示し、searchを指定するとキーワードでエンドポイントを検索します。
call_api — エンドポイントの検査
実際のHTTPリクエストを行い、データそのものではなく推論されたGraphQLスキーマ (SDL) を返します。これを使用してレスポンスの形状を確認し、query_apiにコピーできるsuggestedQueriesを取得します。また、フィールドごとのトークンコスト (fieldTokenCosts) とキャッシュ再利用のためのdataKeyも返します。PUT/PATCHリクエストの場合、自動的に書き込み前のバックアップを作成します (backupDataKeyを返します)。大きなペイロード用のbodyFileをサポートし、プレースホルダー値が検出されたリクエストはブロックします。
query_api — データの取得
データを取得し、GraphQLクエリを通じて選択したフィールドのみを返します。読み取りと書き込み(POST/PUT/DELETE/PATCHのミューテーション)の両方をサポートします。call_apiから取得したdataKeyを渡すことで、HTTP呼び出しなしでキャッシュされたデータを再利用できます。
# Read
{ items { id name status } _count }
# Write
mutation { post_endpoint(input: { name: "example" }) { id } }主要なパラメータ:
maxTokens— レスポンスのトークン予算。配列は収まるように切り詰められます。これまたはunlimitedを指定しない場合、約10kトークンを超えるレスポンスは拒否されます。unlimited—trueに設定すると、トークン予算の制限なしで完全なレスポンスを返します。dataKey— 前回のcall_apiまたはquery_apiレスポンスからキャッシュされたデータを再利用します。jsonFilter— GraphQLクエリ後のネストされた値を抽出するためのドットパス (例:"data[].attributes.name")。bodyFile— リクエストボディとして使用するJSONファイルへの絶対パス (bodyと排他)。インラインで送信できない大きなペイロードに使用します。skipBackup— PUT/PATCHリクエストの自動バックアップをスキップします (デフォルト:false)。
explain_api — ドキュメントの読み取り
HTTPリクエストを行わずに、エンドポイントの仕様ドキュメント(パラメータ、リクエストボディスキーマ、レスポンスコード)を返します。
auth — OAuth認証
--oauth-*フラグが設定されている場合のみ利用可能です。OAuthフローを管理します。
action: "start"— 認可URLを返します (またはclient_credentialsの場合は認証情報を交換します)action: "exchange"— 認可コードフローを完了します (コールバックは自動的にキャプチャされます)action: "status"— 現在のトークン状態を表示します
トークンは永続化され、自動的に更新されます。
一般的なワークフロー
list_api → discover what's available
↓
explain_api → read the docs for an endpoint
↓
call_api → inspect the response schema (returns dataKey)
↓
query_api → fetch exactly the fields you need (pass dataKey for zero HTTP calls)
↓
query_api → re-query with different fields using the same dataKey仕組み
OpenAPI/Postman spec
│
▼
┌─────────┐ ┌─────────────┐ ┌──────────┐ ┌───────────┐
│list_api │ │ explain_api │ │ call_api │ │ query_api │
│(browse) │ │ (docs) │ │ (schema) │ │ (data) │
└─────────┘ └─────────────┘ └──────────┘ └───────────┘
│ │ no HTTP │ │
▼ ▼ request ▼ ▼
Spec index Spec index REST API call dataKey cache
(tags, (params, (with retry) hit → no HTTP
paths) responses, │ miss → fetch
body schema) ▼ │
Infer schema + ▼
return dataKey Execute GraphQL
+ token budget
truncation機能
あらゆるREST API — OpenAPI (JSON/YAML) またはPostman Collection v2.x仕様をファイルまたはURLで提供
リモート仕様キャッシュ — HTTPS仕様は一度取得され、
~/.cache/anyapi-mcp/にキャッシュされますGraphQLフィールド選択 — あらゆるレスポンスから必要なフィールドのみをクエリ
スキーマ推論 — ライブAPIレスポンスからGraphQLスキーマを自動構築
マルチサンプルマージ — 最大10個の配列要素をサンプリングしてよりリッチなスキーマを作成
ミューテーションサポート — 書き込み操作はOpenAPIボディスキーマから型付きGraphQLミューテーションを取得
スマートな提案 —
call_apiは推論されたスキーマに基づいたすぐに使えるクエリを返しますレスポンスキャッシュ — 5分TTLのファイルシステムベースのキャッシュ。
dataKeyトークンによりquery_apiはHTTP呼び出しなしでデータを再利用可能トークン予算 —
query_apiはデフォルトで約10kトークンの安全制限を適用。maxTokensで最も深い大きな配列を切り詰めるか、unlimited: trueで完全なレスポンスを取得フィールドごとのトークンコスト —
call_apiはfieldTokenCostsツリーを返し、LLMが情報に基づいたフィールド選択を行えるようにしますレート制限追跡 —
X-RateLimit-*ヘッダーを解析し、制限が近づくと警告ページネーション検出 — レスポンス内のカーソル、next-page-token、リンクベースのページネーションパターンを自動検出
JSONフィルター —
query_apiはクエリ後の抽出用にjsonFilterドットパスを受け付けます (例:"data[].name")バックオフ付きリトライ — 429/5xxエラーに対して指数バックオフと
Retry-Afterサポートによる自動リトライマルチフォーマット — JSON、XML、CSV、プレーンテキストのレスポンスを解析
安全な書き込み — PUT/PATCHリクエストは書き込み前にリソースを自動スナップショット (
backupDataKey)。プレースホルダー値 (例:PLACEHOLDER,TODO,file://) は送信前に検出・ブロックファイルベースのボディ —
bodyFileパラメータはJSONファイルへの絶対パスを受け付け、インライン送信できない大きなペイロードを可能にしますリッチなエラー — ステータス固有の提案と仕様コンテキストを含む構造化されたエラーメッセージ
OAuth 2.0 — 自動トークン更新を備えた認可コード (PKCE) およびクライアント資格情報フロー
環境変数補間 — ベースURL、ヘッダー、仕様パス内での
${ENV_VAR}リクエストログ — 機密ヘッダーマスク付きのオプションのNDJSONログ
サポートされている仕様フォーマット
OpenAPI 3.x (JSONまたはYAML)
OpenAPI 2.0 / Swagger (JSONまたはYAML)
Postman Collection v2.x (JSON)
ライセンス
プロプライエタリ非商用。個人および教育目的は無料。商用利用には書面による許可が必要です。詳細はLICENSEを参照してください。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/quiloos39/anyapi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server