Apisixモデルコンテキストプロトコル(mcp)サーバー
APISIXモデルコンテキストプロトコル(MCP)サーバーは、大規模言語モデル(LLM)とAPISIX管理APIを接続するために使用されます。
概要
APISIXモデルコンテキストプロトコル(MCP)とは?
APISIXモデルコンテキストプロトコル(MCP)は、大規模言語モデル(LLM)とAPISIX管理APIを接続するために設計されたサーバーです。この統合により、開発者はアプリケーション内でLLMの機能を活用でき、機能性が向上し、より洗練されたインタラクションが可能になります。
APISIX MCPの特徴
- シームレスな統合:APISIX MCPは、LLMとAPISIX管理APIを接続する簡単な方法を提供し、高度な言語処理機能へのアクセスを容易にします。
- 公開リポジトリ:プロジェクトはオープンソースであり、GitHubで利用可能です。これにより、開発者は自分のニーズに合わせてソリューションをカスタマイズし、貢献することができます。
- Apache-2.0ライセンス:MCPはApache-2.0ライセンスの下でライセンスされており、自由に使用および変更できます。
- コミュニティサポート:GitHub上でのスターやフォークの数が増えている中、APISIX MCPの周りのコミュニティは活発で、サポートや改善を提供しています。
APISIX MCPの使用方法
- インストール:まず、GitHubからリポジトリをクローンします。コマンドを使用してください:
git clone https://github.com/api7/apisix-mcp.git
- 設定:LLMとAPISIX管理APIを接続するために必要な設定を行います。これには、APIエンドポイントや認証情報の指定が含まれる場合があります。
- デプロイ:MCPサーバーを環境にデプロイします。LLM機能を利用するアプリケーションからアクセスできることを確認してください。
- 統合:提供されたAPIエンドポイントを使用してLLMと対話します。これには、テキスト生成、分析、またはその他の言語処理タスクのリクエストを送信することが含まれます。
よくある質問
APISIX MCPを使用するための前提条件は何ですか?
APISIX MCPを使用するには、APIの基本的な理解と、リポジトリをクローンするためのGitの知識が必要です。また、統合に使用するプログラミング言語の知識があると便利です。
APISIX MCPプロジェクトに貢献できますか?
はい!プロジェクトはオープンソースであり、貢献を歓迎しています。GitHubリポジトリで問題、機能リクエスト、またはプルリクエストを提出できます。
ドキュメントはありますか?
はい、詳細なドキュメントは通常、リポジトリのREADMEファイルや追加のマークダウンファイルに提供されています。また、コミュニティの議論や例は、イシューセクションで見つけることができます。
バグを報告したり、機能をリクエストするにはどうすればよいですか?
バグを報告したり、機能をリクエストするには、GitHubリポジトリでイシューを開いてください。明確な説明と、メンテナがリクエストに効果的に対応できるようにするための関連情報を提供することを確認してください。
詳細
APISIX Model Context Protocol (MCP) Server
APISIX Model Context Protocol (MCP) server is used to bridge large language models (LLMs) with the APISIX Admin API. It aims to enable natural language-based interaction for viewing and managing resources in APISIX through MCP-compatible AI clients.
https://github.com/user-attachments/assets/081e878c-225e-4ff8-a9c5-5813f4784cfe
Support Operations
Common Operations
get_resource
: Retrieve resources by type (routes, services, upstreams, etc.)delete_resource
: Remove resources by IDsend_request_to_gateway
: Send a request or multiple requests to the APISIX gateway
API Resources Operations
create_route
/update_route
/delete_route
: Manage routescreate_service
/update_service
/delete_service
: Manage servicescreate_upstream
/update_upstream
/delete_upstream
: Manage upstreamcreate_ssl
/update_ssl
/delete_ssl
: Manage SSL certificatescreate_or_update_proto
: Manage protobuf definitionscreate_or_update_stream_route
: Manage stream routes
Plugin Operations
get_all_plugin_names
: Get all available plugin namesget_plugin_info
/get_plugins_by_type
/get_plugin_schema
: Retrieve plugins configurationcreate_plugin_config
/update_plugin_config
: Manage plugin configurationscreate_global_rule
/update_global_rule
: Manage plugin global rulesget_plugin_metadata
/create_or_update_plugin_metadata
/delete_plugin_metadata
: Manage plugin metadata
Security Configuration
get_secret_by_id
/create_secret
/update_secret
: Manage secretscreate_or_update_consumer
/delete_consumer
: Manage consumersget_credential
/create_or_update_credential
/delete_credential
/: Manage consumer credentialscreate_consumer_group
/delete_consumer_group
: Manage consumer groups
Configuration in AI client
Prerequisite
Follow the APISIX Getting Started guide to set up and run APISIX.
Installing via Smithery
To install APISIX Model Context Protocol Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @api7/apisix-mcp --client claude
Using npm
Configure your AI client (Cursor, Claude, Copilot, etc.) with following settings:
{
"mcpServers": {
"apisix-mcp": {
"command": "npx",
"args": [
"-y",
"apisix-mcp"
],
"env": {
"APISIX_SERVER_HOST": "your-apisix-server-host",
"APISIX_SERVER_PORT": "your-apisix-server-port",
"APISIX_ADMIN_API_PORT": "your-apisix-admin-api-port",
"APISIX_ADMIN_API_PREFIX": "your-apisix-admin-api-prefix",
"APISIX_ADMIN_KEY": "your-apisix-api-key"
}
}
}
}
Using source code
First clone the apisix-mcp repository:
git clone https://github.com/api7/apisix-mcp.git
cd apisix-mcp
Install the dependencies and build the project:
pnpm install
pnpm build
Configure your AI client (Cursor, Claude, Copilot, etc.) with following settings:
{
"mcpServers": {
"apisix-mcp": {
"command": "node",
"args": [
"your-apisix-mcp-path/dist/index.js"
],
"env": {
"APISIX_SERVER_HOST": "your-apisix-server-host",
"APISIX_SERVER_PORT": "your-apisix-server-port",
"APISIX_ADMIN_API_PORT": "your-apisix-admin-api-port",
"APISIX_ADMIN_API_PREFIX": "your-apisix-admin-api-prefix",
"APISIX_ADMIN_KEY": "your-apisix-api-key"
}
}
}
}
Environment Variables
Variable | Description | Default Value |
---|---|---|
APISIX_SERVER_HOST | Host that have access to your APISIX server | http://127.0.0.1 |
APISIX_SERVER_PORT | APISIX server port | 9080 |
APISIX_ADMIN_API_PORT | Admin API port | 9180 |
APISIX_ADMIN_API_PREFIX | Admin API prefix | /apisix/admin |
APISIX_ADMIN_KEY | Admin API authentication key | edd1c9f034335f136f87ad84b625c8f1 |
To view or modify Admin API configurations in APISIX, refer to the Admin API documentation.
Resources
Open MCP Marketplace API Support
- Allow AI App/Agent/LLM to find this MCP Server via common python/typescript API, search and explore relevant servers and tools
Example: Search Server and Tools
import anthropic
import mcp_marketplace as mcpm
result_q = mcpm.search(query="apisix mcp", mode="list", page_id=0, count_per_page=100, config_name="deepnlp") # search server by category choose various endpoint
result_id = mcpm.search(id="api7/apisix-mcp", mode="list", page_id=0, count_per_page=100, config_name="deepnlp") # search server by id choose various endpoint
tools = mcpm.list_tools(id="api7/apisix-mcp", config_name="deepnlp_tool")
# Call Claude to Choose Tools Function Calls
client = anthropic.Anthropic()
response = client.messages.create(model="claude-3-7-sonnet-20250219", max_tokens=1024, tools=tools, messages=[])
サーバー設定
{
"mcpServers": {
"apisix-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/metorial/mcp-container--api7--apisix-mcp--apisix-mcp",
"pnpm run start"
],
"env": {
"APISIX_SERVER_HOST": "apisix-server-host",
"APISIX_SERVER_PORT": "apisix-server-port",
"APISIX_ADMIN_API_PORT": "apisix-admin-api-port",
"APISIX_ADMIN_API_PREFIX": "apisix-admin-api-prefix",
"APISIX_ADMIN_KEY": "apisix-admin-key"
}
}
}
}