mcp-anything
MCP-Anything
あらゆるコードベースをMCPサーバーに変えるコマンド。REST APIやOpenAPI仕様だけでなく、あらゆるものに対応します。

はじめに
pip install mcp-anything
# Generate an MCP server from any codebase
mcp-anything generate /path/to/your/app
# Or from a URL (OpenAPI, GraphQL, gRPC spec)
mcp-anything generate https://api.example.com/openapi.json
# Or directly from a local spec file
mcp-anything generate ./openapi.json./mcp-<name>-server/ に、pipでインストール可能な完全なMCPサーバーが生成されます。数秒でエージェントに追加できます:
stdio (ローカル、デフォルト): mcp.json をClaude Codeの .mcp.json に追加します:
{
"mcpServers": {
"my-app": { "command": "mcp-my-app", "args": [] }
}
}HTTP (リモート/共有、推奨): サーバーを起動し、エージェントから接続します:
mcp-anything generate /path/to/app --transport http
mcp-my-app # server runs on http://localhost:8000/sse{
"mcpServers": {
"my-app": { "url": "http://localhost:8000/sse" }
}
}ターゲット
デフォルトでは、mcp-anythingは Python / FastMCP サーバーを生成します。--target=mcp-use を使用すると、代わりに TypeScript / mcp-use サーバーを生成できます:
mcp-anything generate /path/to/app --target mcp-useTypeScriptサーバーは mcp-use SDKを使用し、組み込みのインスペクターが付属しています。
|
| |
言語 | Python | TypeScript |
SDK | FastMCP | mcp-use |
トランスポート | stdio / HTTP | HTTP (ポート 3000) |
インスペクター | 外部 | /inspector に組み込み |
インストール |
|
|
サポートされているもの
mcp-anythingは、RESTフレームワーク、CLIツール、API仕様、プロトコルベースのサービスなど、8つのエコシステムにわたるソースコードを検出し、ラップします。
エコシステム | フレームワーク / ソース | 信頼度 |
Python | argparse CLI | 0.90 |
Click CLI | 0.90 | |
Typer CLI | 0.85 | |
Flask | 0.95 | |
FastAPI | 0.95 | |
Django REST Framework | 0.95 | |
Java / Kotlin | Spring Boot (Java + Kotlin) | 0.95 |
Spring MVC (Java + Kotlin) | 0.85 | |
JAX-RS / Quarkus (Java + Kotlin) | 0.90 | |
Micronaut | 0.90 | |
JavaScript / TypeScript | Express.js | 0.95 |
Go | Gin | 0.95 |
Echo | 0.95 | |
Chi | 0.95 | |
Fiber | 0.95 | |
gorilla/mux | 0.90 | |
net/http | 0.85 | |
Ruby | Rails | 0.95 |
Rust | Actix-web | 0.95 |
Axum | 0.95 | |
Rocket | 0.95 | |
Warp | 0.90 | |
API仕様 | OpenAPI 3.x / Swagger 2.x | 0.88 |
GraphQL SDL | 0.95 | |
gRPC / Protobuf | 0.95 | |
プロトコル / IPC | WebSocket (JSON-RPC) | 0.85 |
MQTT / paho-mqtt | 0.90 | |
ZeroMQ | 0.90 | |
XML-RPC / raw socket | 0.90 | |
D-Bus | 0.90 |
API仕様にはURLを直接渡すことができます:
mcp-anything generate https://api.example.com/openapi.json
スコーピング: 公開範囲の制御
大規模なコードベースには、数百から数千のエンドポイントが存在する場合があります。それらすべてをMCPツールとして公開したくない場合、スコープを制御する3つのメカニズムがあります:
--include / --exclude によるクイックフィルタ:
# Only expose /api/v2 endpoints
mcp-anything generate ./my-app --include "/api/v2/*"
# Exclude internal and debug routes
mcp-anything generate ./my-app --exclude "/internal/*" --exclude "debug_*"レビューモード — 生成前に精査:
# Step 1: analyze and pause
mcp-anything generate ./my-app --review
# Step 2: edit the generated scope.yaml (enable/disable per capability)
vim mcp-my-app-server/scope.yaml
# Step 3: resume generation with your curated scope
mcp-anything generate ./my-app --resume再利用可能なスコープファイル:
# Use a pre-built scope file (check it into your repo)
mcp-anything generate ./my-app --scope-file ./mcp-scope.yamlパターンは、glob構文を使用して、機能名、ソースファイルパス、説明に対してマッチングされます。スコープファイルでは、個々の機能に対して enabled: false を設定し、詳細な制御を行うことも可能です。
説明のオーバーライド: ツール説明のカスタマイズ
自動生成された説明は、ソースコード(docstring、OpenAPIの概要、ルートコメント)から取得されます。通常はこれで十分ですが、LLMエージェント向けにより分かりやすい表現にしたい場合があります。
生成後、出力ディレクトリにすべてのツールとパラメータの説明を含む descriptions.yaml ファイルが作成されます。これを編集し、--description を付けて再実行することで変更を適用できます:
# 1. Generate as usual
mcp-anything generate ./my-app
# 2. Edit descriptions
vim mcp-my-app-server/descriptions.yamlファイルは以下のようになります:
# Edit tool descriptions below. Run `mcp-anything generate --description` to apply.
tools:
list_users:
description: "List all users with optional filtering"
parameters:
role:
description: "Filter by user role"
limit:
description: "Max results to return"
create_user:
description: "Create a new user account"
parameters:
name:
description: "Full name of the user"# 3. Apply overrides — run from the generated server directory
cd mcp-my-app-server
mcp-anything generate --description
# Or from anywhere, pointing to the output directory
mcp-anything generate --description -o ./mcp-my-app-server変更された説明のみが適用されます。パイプラインは編集を検出し、影響を受けるフェーズ(実装、ドキュメント化、パッケージ化)のみを再生成するため、他の部分はそのまま維持されます。
出力
mcp-<name>-server/
├── src/<name>/
│ ├── server.py # FastMCP server (stdio or HTTP/SSE)
│ ├── backend.py # Backend adapter (CLI / HTTP proxy / Python call)
│ ├── tools/ # Tool modules, one file per capability group
│ ├── prompts.py # Server-delivered MCP prompts
│ └── resources.py # Dynamic MCP resources
├── AGENTS.md # Tool index for coding agents
├── Dockerfile # Container deployment (HTTP mode)
├── mcp.json # Ready-to-paste MCP client config
└── pyproject.toml # pip install -e .なぜ AGENTS.md を生成するのか
MCPはツールの「呼び出し」を解決しますが、プロジェクトレベルでのツールの「発見」は解決しません。
Claude Codeのようなエージェントがリポジトリを開くと、MCP呼び出しを行う前に AGENTS.md を読み取ります。このファイルは、アクティブな接続を必要とせずに、サーバーで何ができるか、どのツールが存在するか、どのように使用するかをエージェントに伝えます。この記事で論じられているように、次世代のエージェントワークフローは、エージェントがツールを呼び出す「前」に利用可能な機能を推論できるかどうかに依存しています。AGENTS.md はその架け橋であり、生成されたサーバーが公開するすべての情報を人間が読める形式で、かつエージェントがインデックス化できるマップとして提供します。
なぜ HTTP トランスポートが推奨されるのか
stdio MCPはサーバーをローカルのサブプロセスとして実行します。これはエージェントセッションごとに1つのプロセスがマシンに紐付くため、個人利用には適していますが、スケールしません。
HTTPトランスポート (--transport http) を使用すると、以下のことが可能になります:
一度デプロイすれば、どこからでも接続可能(CI、クラウドエージェント、チームメンバー)
複数のエージェントセッション間で単一のサーバーインスタンスを共有
Dockerや任意のコンテナプラットフォームで実行
ローカルでのプロトタイピングを超えた用途では、HTTPが適切なデフォルトです。
具体的な例: GitHub MCP サーバー
公式のGitHub MCPサーバーは、手作業で構築されたGoプロジェクトで、約80個の厳選されたツール(Issue、PR、リポジトリ、アクション、セキュリティアラートなど)を公開しています。チームが構築と保守に数ヶ月を費やしました。
GitHubの公開OpenAPI仕様に対してmcp-anythingを実行するとどうなるでしょうか?
mcp-anything generate https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json --name github --no-llm公式 (手作業) | mcp-anything (自動生成) | |
言語 | Go | Python |
ビルド時間 | 数ヶ月 | 数秒 |
ツール | 約80 (厳選されたサブセット) | 約1,093 (すべてのAPI操作) |
バックエンド | ネイティブGo SDK + GraphQL | OpenAPI仕様からの |
認証 | PAT / OAuth |
|
トランスポート | stdio, HTTP | stdio (デフォルト), HTTP ( |
ドキュメント | 手書きのREADME | 自動生成された AGENTS.md + MCPリソース |
生成されたサーバーは、リポジトリ、Issue、PR、アクション、パッケージ、セキュリティアドバイザリ、コード検索、Gist、組織、チーム、通知など、すべてのGitHub REST APIエンドポイントをカバーします。各エンドポイントは、OpenAPI仕様から抽出された型付きパラメータを持つMCPツールになります。
公式サーバーは厳選されています。LLMが実際に必要とする80個のツールが選ばれ、カスタムロジックとGraphQL統合が施されています。自動生成されたサーバーは包括的です。APIの全領域をカバーする1,093個のツールが含まれています。これは、オーダーメイドのスーツと、すぐに着られる既製服の違いのようなものです。一方は完璧にフィットし、もう一方はすべてを即座にカバーします。
生成されたコードの全体については examples/github-server/ を参照してください。
公式サーバーに合わせてスコープを絞り込む
しかし、公式サーバーが公開している約80個のツールだけが必要な場合はどうすればよいでしょうか? --scope-file を使用します:
mcp-anything generate \
https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
--name github-scoped --no-llm \
--scope-file examples/github-server-scoped/scope.yaml \
-o examples/github-server-scoped公式 (手作業) | 完全自動生成 | スコープ指定自動生成 | |
ツール | 約80 (厳選) | 1,093 (全エンドポイント) | 67 (公式と一致) |
ビルド時間 | 数ヶ月 | 約6秒 | 約6秒 |
カバレッジ | 厳選サブセット + GraphQL | REST API全体 | 公式と同じRESTエンドポイント |
スコープ制御 | Goでハードコード | 不要 |
|
スコープファイル (examples/github-server-scoped/scope.yaml) は、exclude_patterns: ["*"] を使用してデフォルトですべてを除外した後、公式エンドポイントに対応する67個の特定のツールに対して enabled: true を設定しています。11個の公式ツールはGraphQLやCopilot固有のAPIを使用しており、REST相当の機能がないため、これらはスコープファイルに記載されています。
自分で再現する:
# 1. Generate the full server (1,093 tools)
mcp-anything generate \
https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
--name github --no-llm
# 2. Generate the scoped server (67 tools, matching official)
mcp-anything generate \
https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
--name github-scoped --no-llm \
--scope-file examples/github-server-scoped/scope.yaml
# 3. Or use review mode to curate interactively
mcp-anything generate \
https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
--name github-custom --no-llm --review
# Edit mcp-github-custom-server/scope.yaml, then:
mcp-anything generate \
https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \
--name github-custom --resumeスコープ指定された出力については examples/github-server-scoped/ を参照してください。
ロードマップ
完全なロードマップについては ROADMAP.md を参照してください。プロジェクトへの貢献方法については CONTRIBUTING.md を参照してください。
Star History
MCPサーバーを手作業で書くのはやめましょう。
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/Type-MCP/mcp-anything'
If you have feedback or need assistance with the MCP directory API, please join our Discord server