APISIX-MCP
About
APISIX Model Context Protocol (MCP) server is used to bridge large language models (LLMs) with the APISIX Admin API, supporting querying and managing all resources in [Apache APISIX](https://github.com/apache/apisix).
Details
- Author
- api7
- Repository
- api7/apisix-mcp
- GitHub stars
- 17
- Downloads
- 1,111
- License
- Apache License 2.0
- Categories
- Cloud Service, Community, Other, AI, API, Knowledge Base, Infrastructure
- Tags
- #integration
Jump to
- Manage routes, services, upstreams, and SSL certificates.
- Create and update plugin configurations and global rules.
- Handle secrets, consumers, and consumer credentials.
- Retrieve plugin names, schemas, and metadata.
- Send test requests to the APISIX gateway.
- Install via Smithery, npm, or source code.
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
APISIX-MCPCommand (node, npx, python, etc.)npxArguments-
Argument 1
-y -
Argument 2
@highlight/mcp-server
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install via Smithery (npx -y @smithery/cli install @api7/apisix-mcp), npm (npx -y apisix-mcp), or from source (clone repo, pnpm install && pnpm build, then run node dist/index.js). Configure your AI client (Cursor, Claude, Copilot, etc.) with the required environment variables (APISIX_SERVER_HOST, APISIX_SERVER_PORT, APISIX_ADMIN_API_PORT, APISIX_ADMIN_API_PREFIX, APISIX_ADMIN_KEY). A running APISIX instance is a prerequisite.
get_resource
Get resource details by ID or list all resources
delete_resource
Delete a resource by ID
send_request_to_gateway
Send a request or multiple requests to the APISIX gateway
create_route
Create a route
update_route
Update specific attributes of an existing route
create_service
Create a service
update_service
Update specific attributes of an existing service
create_upstream
Create an upstream service with load balancing settings
update_upstream
Update specific attributes of an existing upstream
create_or_update_consumer
Create a consumer, if the consumer already exists, it will be updated
get_credential
Get all credentials or a specific credential for a consumer
create_or_update_credential
Create or update a credential for a consumer
delete_credential
Delete a credential for a consumer
create_ssl
Create an SSL certificate
update_ssl
Update specific attributes of an existing SSL certificate
create_global_rule
Create a global rule
update_global_rule
Update specific attributes of an existing global rule
create_consumer_group
Create a consumer group
update_consumer_group
Update specific attributes of an existing consumer group
get_all_plugin_names
Get all plugin names
get_plugin_schema
Get all plugins schema or a specific plugin schema by name
get_plugin_metadata
Get metadata for a specific plugin
create_plugin_config
Create a new plugin config
update_plugin_config
Update a plugin config
create_or_update_plugin_metadata
Create or update plugin metadata
delete_plugin_metadata
Delete plugin metadata
create_or_update_stream_route
Create a stream route, if the stream route already exists, it will be updated
get_secret_by_id
Get a secret by ID
create_secret
Create a secret
update_secret
Update specific attributes of an existing secret
delete_secret
Delete a secret by ID
create_or_update_proto
Create a proto, if the proto already exists, it will be updated
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"apisix-mcp": {
"env": {},
"args": [
"-y",
"@highlight/mcp-server"
],
"command": "npx"
}
}
}
Linux
{
"env": [],
"args": [
"-y",
"@highlight/mcp-server"
],
"command": "npx"
}
Macos
{
"env": [],
"args": [
"-y",
"@highlight/mcp-server"
],
"command": "npx"
}
Windows
{
"env": [],
"args": [
"/c",
"npx",
"-y",
"@highlight/mcp-server"
],
"command": "cmd"
}
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 ID
- send_request_to_gateway: Send a request or multiple requests to the APISIX gateway
API Resources Operations
- create_route/update_route/delete_route: Manage routes
- create_service/update_service/delete_service: Manage services
- create_upstream/update_upstream/delete_upstream: Manage upstream
- create_ssl/update_ssl/delete_ssl: Manage SSL certificates
- create_or_update_proto: Manage protobuf definitions
- create_or_update_stream_route: Manage stream routes
Plugin Operations
- get_all_plugin_names: Get all available plugin names
- get_plugin_info/get_plugins_by_type/get_plugin_schema: Retrieve plugins configuration
- create_plugin_config/update_plugin_config: Manage plugin configurations
- create_global_rule/update_global_rule: Manage plugin global rules
- get_plugin_metadata/create_or_update_plugin_metadata/delete_plugin_metadata: Manage plugin metadata
Security Configuration
- get_secret_by_id/create_secret/update_secret: Manage secrets
- create_or_update_consumer/delete_consumer: Manage consumers
- get_credential/create_or_update_credential/delete_credential/: Manage consumer credentials
- create_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
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=[])
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





