あなたのAPIがClaudeやCursorのようなAIエージェントとチャットし、エンドポイントをスマートで会話型のツールに変えることができたらと思ったことはありませんか?さあ、シートベルトを締めてください。StainlessとOpenAPI仕様を使って、APIをMCPサーバーに変える方法を深く掘り下げていきます。この会話形式のガイドでは、セットアップからデプロイメントまで、動作を証明するテストを交えながらプロセスを説明します。あなたのAPIをAIフレンドリーにするために、モデルコンテキストプロトコル(MCP)を楽しく、親しみやすい方法で使用します。さあ、始めましょう!
開発チームが最大限の生産性で協力できる、統合されたオールインワンプラットフォームをお探しですか?
Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます!
MCPサーバーとは何か、そしてなぜ気にする必要があるのか?
モデルコンテキストプロトコル(MCP)は、AIシステムにとって普遍的な握手のようなものです。これはJSON-RPCベースの標準で、AIクライアント(Claude Desktop、Cursor、VS Code Copilotなど)が自然言語やプログラム可能なプロンプトを使ってAPIと対話できるようにします。MCPサーバーはブリッジとして機能し、APIのエンドポイントをAIエージェントが理解し使用できるツールに変換します。
なぜAPIをMCPサーバーに変えるのでしょうか?それは状況を一変させます。
- AIによる対話:「ユーザーデータを取得」や「新しい注文を作成」のようなシンプルなプロンプトで、AIエージェントがAPIを呼び出せるようにします。
- 簡単な自動化:Stainlessは、OpenAPI仕様からMCPサーバーを最小限のコーディングで生成し、プロセスを自動化します。
- スケーラビリティ:ローカル開発ツールから本番レベルのアプリケーションまで、複数のAIクライアントにAPIを公開します。
- 開発者フレンドリー:APIを書き直す必要はありません。MCPレイヤーを追加するだけで、AIに重い作業を任せられます。
支払いプラットフォーム、コンテンツAPI、またはカスタムサービスを構築しているかどうかにかかわらず、APIをMCPサーバーに変えることで、よりスマートでアクセスしやすくなります。
Stainlessはどのように関与するのか?
Stainlessは、OpenAPI仕様からSDK、そして今ではMCPサーバーを作成するための開発者の親友です。その実験的なMCPサーバー生成機能は、OpenAPI定義を受け取り、MCPサーバーとしてすぐに使えるTypeScriptサブパッケージを出力します。これにより、APIのエンドポイントが苦労することなくAIからアクセス可能なツールになります。その方法を見てみましょう!

Stainlessを使ってAPIをMCPサーバーに変える
前提条件
始める前に、以下が揃っていることを確認してください。
- OpenAPI仕様:API用の有効なOpenAPI(Swagger)ファイル(例:
openapi.yaml
またはopenapi.json
)。 - Stainlessアカウント:stainless.comでサインアップしてプロジェクトを作成します。
- Apidogアカウント:OpenAPI仕様のテスト用(https://apidog.com/にアクセス)。
- Node.js 20+:ローカルテストおよびMCPサーバーの実行用(nodejs.org/en/download)。
- npm:Node.jsに付属するパッケージ管理ツール。
- MCP互換クライアント:テスト用のClaude Desktop、Cursor、またはVS Code Copilot。
- APIキー:APIに認証が必要な場合は、APIキーを用意してください。
ステップ1:ApidogでOpenAPI仕様をテストする
OpenAPI仕様をMCPサーバーに変える前でも後でも、テストを行うことは非常に重要です。そこで役立つのがApidogです!Apidogの直感的なプラットフォームでは、OpenAPI仕様をインポートしてテストし、APIのエンドポイントがMCP統合の準備ができていることを確認できます。手順は以下の通りです。
- Apidogにアクセスしてサインアップまたはサインインする:
- アカウントをお持ちの場合は、サインイン(右上)をクリックしてください。アカウントをお持ちでない場合は、プロンプトに従ってサインアップして作成してください。
2. 新しいプロジェクトを作成し、OpenAPI仕様をインポートする:
- サインイン後、ダッシュボードでプロジェクトを作成をクリックします。
- プロジェクト作成ページで、インポートをクリックします。
- OpenAPIファイルのURL(例:https://my-api.com/openapi.yaml)を入力するか、またはファイルをアップロードをクリックして、ローカルのopenapi.yamlまたはopenapi.jsonを選択します。

- Apidogはファイルを解析し、あなたのアカウントに新しいAPIを生成します(複雑な仕様の場合、数分かかることがあります)。
3. API設定を構成する:
- インポートが成功すると、設定ページに移動します。APIの名前、説明、認証要件(例:APIキーやOAuth)をカスタマイズします。

4. エンドポイントを追加してテストする:
- Apidogのインターフェースを使用して、エンドポイントとドキュメントを追加または編集します。
- MCPサーバーを生成する前に、Apidogで直接エンドポイントをテストし、期待通りに動作することを確認します。

Apidogでのテストは、OpenAPI仕様が堅牢であることを保証し、Stainless MCP生成プロセスをよりスムーズにし、MCPサーバーをより信頼性の高いものにします。
ステップ2:TypeScriptでStainlessプロジェクトをセットアップする
Stainlessプロジェクトを作成する:
- stainless.comにログインし、新しいプロジェクトを作成します。
- OpenAPI仕様(YAMLまたはJSON)をアップロードして、APIのエンドポイントを定義します。
- ターゲット言語としてTypeScriptを選択します(MCPサーバーの生成にはTypeScriptが必要ですが、従来の
node
ターゲットもサポートされています)。

MCPサーバーの生成を有効にする:
- プロジェクトのSDKを追加セクションで、MCPサーバーを選択して生成を有効にします。
- これにより、プロジェクトの
packages/mcp-server
の下にサブパッケージが作成されます。

ステップ3:MCPサーバーの生成を構成する
Stainlessプロジェクトの設定で、MCPサーバーのオプションを構成します。設定ファイル(例:stainless.yaml
)を作成または編集し、以下を追加します。
targets:
typescript:
package_name: my-org-name
production_repo: null
publish:
npm: false
options:
mcp_server:
package_name: my-org-name-mcp
enable_all_resources: true
package_name
:MCPサーバーパッケージの名前を付けます(デフォルトではSDK名に-mcp
が付加されます)。enable_all_resources: true
:デフォルトですべてのAPIエンドポイントをMCPツールとして公開します。
これにより、StainlessはAPIのエンドポイントをAIからアクセス可能なツールとして実装するMCPサーバーのサブパッケージを生成するように指示されます。
ステップ4:エンドポイントの公開とツールの説明をカスタマイズする
デフォルトでは、OpenAPI仕様のすべてのエンドポイントがMCPツールになります。カスタマイズするには:
- 特定のエンドポイントを選択する:
enable_all_resources: false
を設定し、特定のリソースまたはメソッドを有効にします。
resources:
users:
mcp: true
methods:
create:
mcp: true
orders:
methods:
create:
mcp: true
endpoint: post /v1/orders
2. ツールメタデータを微調整する:
- AIとのより良い対話のために、ツール名と説明をカスタマイズします。
resources:
users:
methods:
create:
mcp:
tool_name: create_user
description: Creates a new user profile with name and email.
これにより、MCPサーバーは必要なエンドポイントのみを、明確でAIフレンドリーな説明とともに公開します。
ステップ5:ツールフィルタリングと動的ツールで大規模APIを処理する
多くのエンドポイント(50以上)を持つAPIの場合、それぞれを個別のツールとして公開すると、AIのコンテキストウィンドウを圧倒する可能性があります。以下の戦略を使用してください。
- ツールフィルタリング:
- リソース、操作タイプ(例:読み取り/書き込み)、またはカスタムタグによって、実行時にツールをフィルタリングします。
npx -y my-org-mcp --resource=users
2. 動的ツールモード:
- 動的ツールを有効にすると、
list_api_endpoints
、get_api_endpoint_schema
、invoke_api_endpoint
の3つのメタツールが公開されます。これにより、大規模なAPIとの対話が簡素化されます。
npx -y my-org-mcp --tools=dynamic
動的ツールを使用すると、AIはエンドポイントを動的に発見して呼び出すことができ、コンテキストの過負荷を軽減します。
ステップ6:MCPサーバーを構築して公開する
MCPサーバーを構築する:
- SDKを構築すると、Stainlessは
packages/mcp-server
にMCPサーバーを生成します。 - Stainlessプロジェクトでビルドコマンドを実行します(詳細については、プロジェクトの
README.md
を確認してください)。
npmに公開する:
- Stainlessの設定で本番リポジトリを構成します。
- MCPサーバーを個別のnpmパッケージとして公開します(例:
my-org-name-mcp
)。
npm publish

ステップ7:MCPクライアントのインストールと設定
公開後、AIクライアントで使用するためにMCPサーバーパッケージをローカルまたはリモートにインストールします。Claude Desktopの場合:
- パッケージをインストールする:
- ローカルでテストする場合は、
packages/mcp-server
に移動し、README.md
の指示に従ってください。 - リモートで使用する場合は、npm経由でインストールします。
npm install my-org-name-mcp
2. Claude Desktopを設定する:
claude_desktop_config.json
を開きます(macOS:~/Library/Application Support/Claude
、Windows:%APPDATA%\Claude
)。

- 以下を追加します。
{
"mcpServers": {
"my_org_api": {
"command": "npx",
"args": ["-y", "my-org-mcp"],
"env": {
"MY_API_KEY": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
}
my-org-mcp
をパッケージ名に、MY_API_KEY
をAPIキーに置き換えます。- 保存してClaude Desktopを再起動します。

3. その他のクライアント:
- CursorまたはVS Code Copilotの場合、それぞれの設定(例:VS Codeの
settings.json
またはCursorのツールと統合パネル)に同じ設定を追加します。

ステップ8:MCPサーバーをテストする
あなたのMCPサーバーをテストしてみましょう!Claude Desktop(または他のMCPクライアント)で、このプロンプトを試してください。
alex@example.com
APIにPOST /users
エンドポイント(OpenAPI仕様で定義されている)がある場合、MCPサーバーはこのプロンプトをAPI呼び出しに変換し、ユーザーを作成して次のような応答を返します。
User created: { "name": "Alex", "email": "alex@example.com", "id": "123" }
これにより、MCPサーバーが機能しており、AI駆動の対話の準備ができていることが確認されます。
トラブルシューティングのヒント
- ビルドエラー? OpenAPI仕様が有効であり、StainlessプロジェクトでTypeScriptが有効になっていることを確認してください。
- クライアントが接続しない? MCP設定のパッケージ名とAPIキーを確認し、クライアントを再起動してください。
- プロンプトが機能しない? エンドポイントの設定を確認し、プロンプトされたアクションが公開されているツールと一致していることを確認してください。
- コンテキストの過負荷? 動的ツールモードを有効にするか、大規模APIのリソースをフィルタリングしてください。
MCPサーバーのベストプラクティス
- ツールを絞り込む:コンテキストの肥大化を避けるため、AIが必要とするエンドポイントのみを公開します。
- 明確な説明:プロンプトの精度を向上させるために、LLMフレンドリーなツールの説明を記述します。
- 大規模APIには動的ツールを使用する:メタツールで大規模APIを簡素化し、コンテキストスペースを節約します。
- 安全な認証:本番環境ではAPIキーに環境変数またはOAuthを使用します。
- まずローカルでテストする:npmに公開する前に、
README.md
の指示に従ってテストします。
結論
これで完了です!あなたはStainlessを使用してAPIをMCPサーバーに変える方法を学び、OpenAPI仕様をAI対応の強力なものに変えました。エンドポイントの設定からユーザー作成プロンプトによるテストまで、このガイドはAPIとClaudeやCursorのようなAIエージェントを簡単に連携させる方法を示しました。小規模なプロジェクトを強化する場合でも、本番APIをスケールアップする場合でも、MCPサーバーはよりスマートで会話型の統合を実現するための鍵となります。
試す準備はできましたか?OpenAPI仕様を手に入れ、Stainlessを起動し、AIの世界であなたのAPIを輝かせましょう。
開発チームが最大限の生産性で協力できる、統合されたオールインワンプラットフォームをお探しですか?
Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます!