agentify について
agentify は OpenAPI または Swagger の仕様から MCP サーバーを生成し、API 操作を呼び出し可能なツールにします。既存 API を MCP クライアントに公開する用途向けで、提供するツールを絞り込めます。
主な機能
- 01OpenAPI の URL とファイルを読み込み
- 02API 操作ごとにツールを生成
- 03タグ、メソッド、名前でフィルター
- 04読み取り専用操作の限定
- 05環境変数による API 認証
- 06CLI とプログラム用インターフェース
活用シーン
- 01既存 API をエージェントから呼び出す
- 02大規模 API の操作を絞り込む
- 03サーバー起動前に生成ツールを確認
MCP 対応
単一の API 仕様から MCP サーバーを作成し、選択した操作をツールとして公開します。MCP クライアントはツール経由で HTTP リクエストを送り、実際のレスポンスを取得できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y agentify-openapiAGENTIFY_BEARER_TOKENシークレットOptional. Sent to the upstream API as 'Authorization: Bearer <token>'.AGENTIFY_API_KEYシークレットOptional API key for the upstream API. Sent as a header (name auto-discovered from the spec's security schemes, default X-API-Key).AGENTIFY_API_KEY_HEADERシークレットOptional. Override the header name used for AGENTIFY_API_KEY.AGENTIFY_API_KEY_QUERYシークレットOptional. Send AGENTIFY_API_KEY as this query parameter instead of a header.AGENTIFY_BASIC_USEROptional HTTP basic auth username (pair with AGENTIFY_BASIC_PASS).AGENTIFY_BASIC_PASSシークレットOptional HTTP basic auth password (pair with AGENTIFY_BASIC_USER).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
agentify
あらゆる OpenAPI/Swagger 仕様を、エージェント対応の MCP サーバーに変換します。
公式 MCP Registry(
io.github.sani-savaliya/agentify)および Smithery に掲載されています。
仕様(URL、ファイル、OpenAPI 3.x、Swagger 2.0)を指定すると、すべての操作が AI エージェントから呼び出せるツールになります。コード生成も、API ごとの定型コードも、ホスティングも不要です。コマンドひとつで使えます。
npx agentify-openapi https://petstore3.swagger.io/api/v3/openapi.json --list
Swagger Petstore - OpenAPI 3.0 v1.0.27
Base URL: https://petstore3.swagger.io/api/v3
Tools: 19
getPetById
Find pet by ID.
findPetsByStatus
Finds Pets by status.
...
理由
「現在、エージェントは人間向けに設計されたソフトウェアを操作しなければなりません。未来のインターフェースはエージェント向けに構築され、エージェントを第一級の利用者として扱います。API、MCP、CLI がそのインターフェースです。」 — YC RFS: Software for Agents
すでに OpenAPI ドキュメントで自身を記述している API は数万件あります。agentify を使えば、誰も手作業でインテグレーションを作成することなく、あらゆる API を即座にエージェントネイティブにできます。
Claude、Cursor、Windsurf など、あらゆる MCP クライアントで使う
クライアントの MCP 設定に追加します。同じ command/args 形式は、Claude Desktop、Claude Code(claude mcp add)、Cursor(.cursor/mcp.json)、Windsurf、Cline など、MCP に対応するあらゆるクライアントで使えます。
{
"mcpServers": {
"petstore": {
"command": "npx",
"args": ["-y", "agentify-openapi", "https://petstore3.swagger.io/api/v3/openapi.json"]
}
}
}
エージェントは、API の操作ごとにひとつのツールを利用できるようになります。ツールを呼び出すと、HTTP リクエスト(パスパラメーター、クエリー文字列、ヘッダー、JSON 本文)が構築され、最新のレスポンスが返されます。
大規模な API の場合、必要なツールだけを選ぶ
GitHub(1000 以上の操作)や Stripe(400 以上の操作)を指定すると、エージェントに何百ものツールが渡され、ツール選択の精度が大きく損なわれます。タグ、HTTP メソッド、名前の glob で必要なものに絞り、合計数の上限を設定できます。
# GitHub, read-only, just the repo endpoints
npx agentify-openapi https://api.github.com/openapi.json --tag repos --read-only
# Stripe customer endpoints only, hard cap at 25 tools
npx agentify-openapi ./stripe.json --include "*Customer*" --max-tools 25
{
"mcpServers": {
"github-repos": {
"command": "npx",
"args": ["-y", "agentify-openapi", "https://api.github.com/openapi.json",
"--tag", "repos", "--read-only", "--max-tools", "30"],
"env": { "AGENTIFY_BEARER_TOKEN": "ghp_your_token" }
}
}
}
--read-only(GET/HEAD/OPTIONS)は、シンプルな安全策としても使えます。状態を変更できる操作を公開せずに、大規模な API をエージェントに公開できます。
認証
環境変数で認証情報を指定します。agentify は、可能な場合、仕様で宣言されたセキュリティスキームを読み取り、適切なヘッダー名を特定します。
| 変数 | 効果 |
|---|---|
AGENTIFY_BEARER_TOKEN | Authorization: Bearer <token> |
AGENTIFY_BASIC_USER / AGENTIFY_BASIC_PASS | HTTP 基本認証 |
AGENTIFY_API_KEY | API キー(デフォルトではヘッダーとして送信) |
AGENTIFY_API_KEY_HEADER | api-key ヘッダー名を上書き |
AGENTIFY_API_KEY_QUERY | API キーをクエリーパラメーターとして送信 |
CLI から生のヘッダーを挿入することもできます。--header "X-Org-Id: 42"(繰り返し指定できます)。
CLI
agentify <spec-url-or-file> [options]
--base-url <url> Override the API base URL from the spec
--header "K: V" Add a raw header to every request (repeatable)
--name <name> Override the MCP server name
--list Print the discovered tools and exit (no server)
-h, --help Show help
Tool selection (keep big APIs from flooding the agent's context):
--tag <tag> Keep only operations with this tag (repeatable)
--exclude-tag <tag> Drop operations with this tag (repeatable)
--method <verb> Keep only this HTTP method, e.g. GET (repeatable)
--read-only Shorthand: keep only GET/HEAD/OPTIONS operations
--include <glob> Keep only tools matching this glob (repeatable)
--exclude <glob> Drop tools matching this glob (repeatable)
--max-tools <n> Hard cap on tool count (warns when it truncates)
仕組み
シンプルで純粋なパイプラインです。各ステージは個別にユニットテストされています。
spec ──▶ operations ──▶ tool defs ──▶ http request ──▶ response
│ │ │ │ │
load & one tool JSON Schema path/query/ fetch + surface
deref per op for inputs header/body status & body
$refs + auth
HTTP の実行と MCP トランスポートのみが外部とやり取りします。それ以外はすべて決定論的に動作し、テスト済みです。
プログラムからの利用
import { loadSpec, extractOperations, resolveBaseUrl, createServer } from "agentify-openapi";
const spec = await loadSpec("./openapi.yaml");
const tools = extractOperations(spec);
const baseUrl = resolveBaseUrl(spec);
// ...build your own MCP server, or just inspect the generated tool defs
制限事項
- JSON のリクエスト/レスポンス本文を第一級でサポートします。
multipart/フォーム本文は可能な範囲でそのまま渡されます。 cookieパラメーターと OAuth2 フローにはまだ対応していません(当面は--headerを使ってください)。- 仕様ごとにサーバーをひとつ起動します。複数の仕様の集約は今後のロードマップに含まれています。
開発
npm install
npm test # vitest, 80%+ coverage enforced
npm run build # tsc -> dist/
node scripts/smoke.mjs # end-to-end MCP client smoke test (network)
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。