APISIX-MCP
The APISIX-MCP server bridges large language models (LLMs) with the APISIX Admin API, enabling natural language-based interaction for managing APISIX resources and configurations. You can:
Manage API resources: Create, update or delete routes, services, upstreams, SSL certificates, protobuf definitions, and stream routes
Handle plugins: Retrieve plugin information, manage configurations, create global rules, and control plugin metadata
Configure security: Manage secrets (Vault, AWS, GCP), consumers, consumer credentials, and consumer groups
Perform operations: List and retrieve resources by type, delete resources by ID, and send requests directly to the APISIX gateway
Integrate with AI clients: Configure AI clients like Claude, Copilot, and Cursor for natural language interactions
Integrates with Apache APISIX to enable natural language-based interaction for viewing and managing API gateway resources including routes, services, upstreams, SSL certificates, plugins, and security configurations through the APISIX Admin API.
Provides installation and deployment through npm, allowing users to easily set up the MCP server using 'npx -y apisix-mcp' with configurable environment variables.
Supports installation and build processes using pnpm package manager when deploying from source code, with commands for dependency installation and project building.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@APISIX-MCP show me all active routes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: DolphinScheduler MCP Server
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 claudeUsing 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-mcpInstall the dependencies and build the project:
pnpm install
pnpm buildConfigure 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 |
| Host that have access to your APISIX server |
|
| APISIX server port |
|
| Admin API port |
|
| Admin API prefix |
|
| Admin API authentication key |
|
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=[])Available Tools
32 toolscreate_consumer_groupC
Create a consumer group
Inputs: consumerGroup (required), id.
create_global_ruleC
Create a global rule
Inputs: id (required), plugins (required).
create_or_update_consumerC
Create a consumer, if the consumer already exists, it will be updated
Inputs: username (required), desc, group_id, labels, +1 more.
create_or_update_credentialC
Create or update a credential for a consumer
Inputs: credential (required), id (required), username (required).
create_or_update_plugin_metadataC
Create or update plugin metadata
Inputs: metadata (required), name (required).
create_or_update_protoC
Create a proto, if the proto already exists, it will be updated
Inputs: proto (required), id.
create_or_update_stream_routeC
Create a stream route, if the stream route already exists, it will be updated
Inputs: route (required), id.
create_plugin_configC
Create a new plugin config
Inputs: id (required), plugins (required).
create_routeD
Create a route
Inputs: route (required), id.
create_secretD
Create a secret
Inputs: manager (required), secret (required), id.
create_serviceD
Create a service
Inputs: service (required), id.
create_sslC
Create an SSL certificate
Inputs: ssl (required), id.
create_upstreamC
Create an upstream service with load balancing settings
Inputs: upstream (required), id.
delete_credentialC
Delete a credential for a consumer
Inputs: id (required), username (required).
delete_plugin_metadataC
Delete plugin metadata
Inputs: name (required).
delete_resourceC
Delete a resource by ID
Inputs: id (required), type (required).
delete_secretC
Delete a secret by ID
Inputs: id (required), manager (required).
get_all_plugin_namesB
Get all plugin names
get_credentialC
Get all credentials or a specific credential for a consumer
Inputs: username (required), id.
get_plugin_metadataC
Get metadata for a specific plugin
Inputs: name (required).
get_plugin_schemaC
Get all plugins schema or a specific plugin schema by name
Inputs: name (required), type.
get_resourceC
Get resource details by ID or list all resources
Inputs: type (required), id, labels, name, +3 more.
get_secret_by_idC
Get a secret by ID
Inputs: manager (required), id, page, page_size.
send_request_to_gatewayC
Send a request or multiple requests to the APISIX gateway
Inputs: requests (required).
update_consumer_groupC
Update specific attributes of an existing consumer group
Inputs: consumerGroup, id.
update_global_ruleC
Update specific attributes of an existing global rule
Inputs: id, plugins.
update_plugin_configC
Update a plugin config
Inputs: id, plugins.
update_routeC
Update specific attributes of an existing route
Inputs: id, route.
update_secretC
Update specific attributes of an existing secret
Inputs: id, manager, secret.
update_serviceC
Update specific attributes of an existing service
Inputs: id, service.
update_sslC
Update specific attributes of an existing SSL certificate
Inputs: id, ssl.
update_upstreamC
Update specific attributes of an existing upstream
Inputs: id, upstream.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 32 tools
Most tools are clearly distinguished by their target resource (e.g., consumer, route, plugin) and action (create, update, delete), with minimal overlap. However, some tools like 'create_or_update_consumer' and 'update_consumer_group' could cause confusion about whether they handle similar entities, and 'delete_resource' is overly generic compared to specific delete tools like 'delete_secret'.
The naming follows a consistent verb_noun pattern (e.g., create_route, update_service, delete_secret) with clear actions and resources. Minor deviations exist, such as 'send_request_to_gateway' using a longer phrase and 'get_all_plugin_names' including 'all', but overall the conventions are predictable and readable.
With 32 tools, the count is on the high side for an API management server, bordering on heavy. While APISIX has many components (consumers, routes, plugins, etc.), this many tools might overwhelm agents or indicate fragmentation. It's reasonable but could benefit from consolidation or better scoping.
The tool set provides comprehensive CRUD and lifecycle coverage for APISIX's domain, including consumers, routes, services, plugins, SSL, and more. It supports create, update, delete, and get operations across all major resources, with no obvious gaps for core API gateway management tasks.
Related MCP Connectors
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server for AI dialogue using various LLM models via AceDataCloud
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA server that enables Large Language Models to discover and interact with REST APIs defined by OpenAPI specifications through the Model Context Protocol.10,266 npm301MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows AI agents to interact with Apache DolphinScheduler through a standardized protocol, enabling AI-driven workflow management.32Apache 2.0
- AlicenseCqualityDmaintenanceA Model Context Protocol server that exposes over 200+ APIs from API.market as MCP resources, allowing large language models to discover and interact with various APIs through natural language commands.3450 npm4MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that bridges MCP clients with local LLM services, enabling seamless integration with MCP-compatible applications through standard tools like chat completion, model listing, and health checks.-