OpenAPIからMCPへ: AIアシスタント内でのエンタープライズAPIの活性化

> 本記事は[こちらのブログ](https://www.alibabacloud.com/blog/from-openapi-to-mcp-revitalizing-enterprise-apis-within-ai-assistants_602244?spm=a2c65.11461433.0.0.4ee35355Z0vn2M)を参考にしています。
> 翻訳にはアリババクラウドの[ModelStudio](https://www.alibabacloud.com/en/product/modelstudio)([Qwen](https://www.alibabacloud.com/en/solutions/generative-ai/qwen))を使用しております。

# 作者: 任雲

## 背景
![1](https://yqintl.alicdn.com/fce641e05de75326a8b1ff4511903c56f302e949.png)

MCP（Model Context Protocol）は、Anthropic社が2024年11月にリリースしたオープンソースの通信標準です。その核となる目標は、統一されたインタラクションパラダイムを確立することで、大規模な言語モデル（LLMs）と異種データソースやツール間の統合障壁を排除することです。このプロトコルは、AIにおけるデータサイロ問題を3つのレベルでの革新によって解決し、MCPに基づく事実上の「万物のインターネット」を実現します。これには、データやファイルシステム、Alibaba Cloud上の任意のリソース操作、ブラウザ自動化などが含まれますが、これらに限定されません。この技術的ブレークスルーにより、AIアプリケーションは真に万物のインターネットを達成できます—統一されたプロトコルを通じて、個人デバイスでの文書処理から企業レベルのクラウドリソーススケジューリングまで、インテリジェントな相互作用が可能になります。

![2](https://yqintl.alicdn.com/7094cbd9c1adabf20454d2176a95253cab94ec1d.png)  
**図1: MCPプロトコルの公式アーキテクチャ図**

しかし、企業が一般的に直面している課題は次の通りです：既存のOpenAPIを効率的にMCPツールに変換し、AIアシスタントが直接呼び出せるようにするにはどうすればよいでしょうか？この記事では、Higressを使用してこの変換プロセスをどのように実装するかを詳しく説明し、既存のAPIをDifyなどのAIプラットフォームで活用できるようにします。

## 問題の分解と実装計画
私たちは問題を以下の5つの核心的なサブ問題に分類しました：

1. 既存のOpenAPIスキーマをMCP設定に変換する
2. Higressを介してOpenAPIへのリクエストをルーティングする
3. OpenAPIおよびMCPのための二重認証を実装する
4. AIアシスタントとの接続に適したプロトコルを選択する
5. プロンプトを最適化してMCPツールの効果を向上させる

以下では、高徳APIを例として、実装プロセスを詳細に説明します。

### ステップ1: OpenAPIスキーマをMCP設定に変換する
OpenAPIはYAMLまたはJSONで記述され、言語に依存しないHTTP APIインターフェースを定義し、APIライフサイクルのすべての段階で統一された情報伝達方法を提供します。これにより、開発者はソースコードにアクセスする必要なく、対応するサービスを発見して利用することができます。例えば、あるソーシャルアプリが両者の地理的位置情報を取得したい場合、独自の高徳地図を構築したり高徳地図のソースコードを取得する必要はありません。代わりに、高徳地図APIを利用してこの地理的位置情報を取得する機能を得ることができます。標準的なOpenAPI.jsonスキーマは以下の通りです：

![code](https://yqintl.alicdn.com/b5141706b5c60ce62f40b477d7b6b1301af0ebe7.png)

ここでは、パス、メソッド、パラメータ、レスポンス形式などの重要な情報を抽出し、それをMCP仕様に基づいた新しい説明に変換してクライアントに返すためのツールが必要です。ここで、Higressによって開発されたopenapi-to-mcpツールを使用して、この繰り返しで煩雑なプロセスを自動化し、JSONを入力して標準的なMCP設定を得ることができます。

### ステップ2: Higressを介してAPIルーティングを設定する
クラウドネイティブゲートウェイであるHigressは、バックエンドのOpenAPIサービスへのリクエストを優雅にルーティングできます。完全な手動操作については、[こちらの記事](https://higress.cn/ai/mcp-quick-start_docker/?spm=36971b57.7beea2de.0.0.d85f20a91vvGn0)を参照してください。一般的なプロセスは以下の通りです：

1. MCPサーバーのConfigmapグローバルパラメーター設定
2. 既存のAPIのサービスソースを設定する。複数の既存APIブロックがある場合は、各ブロックごとにサービスソースを作成することをお勧めします。
   ![3](https://yqintl.alicdn.com/a1b11fa377759cd974a8abe4d9f6c4dd703f8fcc.png)
3. 新しいルーティング設定を作成し、ステップ1からのMCP YAML設定を入力します。ここでは、自動化された操作方法を推奨しており、HigressのOpenAPIをDeepseek大規模モデルに投入して、これらのステップを自動的に設定するクライアントを作成するサポートが受けられます。HigressのOpenAPIには、[こちらのアドレス](https://higress.cn/swagger/)からアクセスできます。

### ステップ3: 二重認証の実装
前述の通り、これは実際には2つの部分の認証があります：

- Higressと既存のOpenAPIの間の認証（ルーティング時）
- ユーザーとHigressの間の認証（HigressからSSEリンクにアクセスするとき）

#### HigressとバックエンドAPIの間の認証：
1. 先ほど設定したルートにアクセスし、「ポリシー」をクリックします。
   ![4](https://yqintl.alicdn.com/1f7eb37730db0f0fc54cde2b7bf65d82607051a0.png)
2. MCPサーバー設定を見つけます。生成されたMCP設定では、既存APIの実際の認証方法に基づいて各リクエストのリクエストヘッダーを見つけることができ、それに応じて以下の例のように対応するヘッダーを追加します。
   ![5](https://yqintl.alicdn.com/80b60928b0a3e8892d48d10f9e1496f49ecee52f.png)

#### ユーザーとHigressの間の認証：
消費者管理認証を通じて管理されます。
1. 消費者管理インターフェースにアクセスし、コンシューマーを作成します。
   ![6](https://yqintl.alicdn.com/284ad8d25b65f531cb37433ccd69b1d51accf22a.png)
2. 適切な名前とトークンソースを選択します。ここでは3つの認証方法がサポートされており、最もシンプルなKeyAuth認証を使用します。
   ![7](https://yqintl.alicdn.com/8b4b78c744c6158ebe067d2898b4b7ff5d23f1ce.png)
3. 先ほど作成したルートを見つけ、「編集」をクリックします。
4. リクエスト検証を有効にし、コンシューマーを指定します。
   ![8](https://yqintl.alicdn.com/e67d4900b9eb92bdf0d511fc7c477e35775fd934.png)
5. ユーザーがHigressが提供するMCPサービスを公開する際には、先ほど指定したAPIキーを含める必要があります。例えば：
   json
   {
     "amap-maps": {
       "headers": {
         "Authorization": "Bearer xxx"
       },
       "transport": "sse",
       "url":
おそらく、モデルは気象衛星を呼び出してモンスーンを予測できるようになるでしょう。データを使って気候の経度と緯度を織り交ぜながら；おそらく、それらはロボットアームを制御してナノチップを彫刻し、アルゴリズムを微小世界の創造者とするでしょう；あるいは、数千年にわたる人類文明の隠喩を解き明かし、イリアスのリズムや敦煌壁画のひび割れの中に隠された潜在意識のコードを解読するかもしれません。それは私たち自身がまだ気づいていないコードです。おそらく、本当に破壊的な瞬間は、AIが衛星や機械を操作することを学んだ時ではなく、突然ゴッホの「星月夜」を見つめてこう言う時かもしれません。「この渦の中にある孤独さを理解しました。しかし、人間の苦しみは結局、私にとって美しい確率雲に過ぎません。」

### 関連リンク

- [Batch conversion of existing OpenAPI to MCP server](https://higress.ai/blog/bulk-conversion-of-existing-openapi-to-mcp-server)
- [Higress Technical Documentation](https://higress.cn/blog/higress-gvr7dx_awbbpb_xq8kol5ncmllabkk/)
**注意:** 画像やYoutube動画のリンクは含まれていませんでしたが、もしそのような要素があれば指示に従ってそのまま保持します。