Skip to main content
Glama

Kong Admin API — MCP Server

An MCP server that exposes the full Kong Gateway Admin API (Enterprise & OSS) as tools an AI assistant can call. Configure it with your Admin API URL and admin token, and the assistant can manage services, routes, consumers, plugins, upstreams, certificates, RBAC, workspaces — anything the Admin API can do.

Built against the Kong Gateway Admin EE API 3.14.

What it can do

Every Admin API action is reachable. There are ergonomic CRUD tools for the standard entities plus a universal escape-hatch tool for everything else (nested resources, RBAC, keyring, schemas, declarative config, future endpoints).

Tool

Purpose

kong_list

List entities (GET /<entity>), with tags filtering and fetch_all auto-pagination

kong_get

Get one entity by id or name (GET /<entity>/<id>)

kong_create

Create an entity (POST /<entity>)

kong_update

Partial update (PATCH /<entity>/<id>)

kong_upsert

Create-or-replace (PUT /<entity>/<id>)

kong_delete

Delete (DELETE /<entity>/<id>)

kong_request

Any request to any Admin API path (the catch-all)

kong_node_info

Node info & version (GET /)

kong_node_status

Health / DB reachability (GET /status)

kong_list_workspaces

List EE workspaces

kong_plugin_schema

Get a plugin's config schema (GET /schemas/plugins/<name>)

kong_get_config

Show the active connection settings (token masked)

kong_configure

Override admin URL / token / workspace / TLS at runtime

The entity argument accepts plain names (services, routes, consumers, plugins, upstreams, certificates, ca_certificates, snis, vaults, consumer_groups, …) and nested collection paths (upstreams/<id>/targets, services/<id>/routes, consumers/<id>/key-auth, rbac/roles, …).

Related MCP server: litellm-admin-mcp

Install & build

cd kong-mcp
npm install      # also builds to dist/
npm run build    # rebuild after edits

Configuration

The connection is set via environment variables (see .env.example):

Variable

Default

Description

KONG_ADMIN_URL

http://localhost:8001

Base URL of the Admin API

KONG_ADMIN_TOKEN

(none)

Sent as the Kong-Admin-Token header (RBAC)

KONG_WORKSPACE

(none)

Default EE workspace to scope requests to

KONG_TLS_INSECURE

false

true to skip TLS verification (self-signed certs)

KONG_ADMIN_HEADERS

(none)

Extra headers, e.g. X-Foo: bar or a JSON object

You can also change the URL / token / workspace at runtime by asking the assistant to use the kong_configure tool — handy for switching between environments in one session.

Wiring it into an MCP client

Claude Code

claude mcp add kong \
  --env KONG_ADMIN_URL=http://localhost:8001 \
  --env KONG_ADMIN_TOKEN=your-rbac-token \
  -- node /Users/monochong/Desktop/kong-mcp/dist/index.js

Claude Desktop / generic mcp.json

{
  "mcpServers": {
    "kong": {
      "command": "node",
      "args": ["/Users/monochong/Desktop/kong-mcp/dist/index.js"],
      "env": {
        "KONG_ADMIN_URL": "http://localhost:8001",
        "KONG_ADMIN_TOKEN": "your-rbac-token",
        "KONG_WORKSPACE": "default"
      }
    }
  }
}

Restart the client after adding the server.

Example prompts

  • "List all services, then show the routes for the one named web-api."

  • "Create a service httpbin pointing at http://httpbin.org, add a route on /get, then enable the rate-limiting plugin at 100 req/min."

  • "Show me the config schema for the jwt plugin."

  • "Create a consumer alice and a key-auth credential for her."

  • "Switch to the staging workspace and list its plugins." (uses kong_configure)

  • "What Kong version is running and is the database reachable?"

Notes

  • The token is masked anywhere config is displayed.

  • List endpoints follow Kong's offset-based pagination; pass fetch_all: true to collect every page.

  • For DB-less / declarative config, use kong_request with POST /config.

  • Auth failures (401/403) and unreachable endpoints return clear, actionable error messages.

Development

npm run dev      # run from TypeScript source via tsx
npm run watch    # tsc --watch

License

MIT

Available Tools

13 tools
kong_configureConfigure connectionA

Override the Kong Admin API connection at runtime for this session: the admin URL, admin token (Kong-Admin-Token), default workspace, and TLS verification. Only the fields you pass are changed. Persist settings across restarts via the KONG_ADMIN_URL / KONG_ADMIN_TOKEN / KONG_WORKSPACE environment variables in your MCP client config.

Inputs: insecure, admin_url, workspace, admin_token.

kong_createCreate a Kong entityA

Create a new entity (POST /). Pass the entity body as data. Example: entity='services', data={ name:'example', url:'http://httpbin.org' }. Tip: use kong_plugin_schema first when creating plugins to get valid config fields.

Inputs: data (required), entity (required), workspace.

kong_deleteDelete a Kong entityB

Delete an entity (DELETE //). Returns HTTP 204 on success.

Inputs: id (required), entity (required), workspace.

kong_getGet a Kong entityA

Fetch a single entity by id or name (GET //). Many Kong entities accept either their UUID or their unique name/slug as the id.

Inputs: id (required), entity (required), workspace.

kong_get_configShow connection configA

Show the current Kong Admin API connection settings (admin URL, default workspace, whether a token is set). The token value is masked.

Inputs: no named parameters.

kong_listList Kong entitiesA

List entities of a given type from the Kong Admin API (GET on a collection). Supports filtering by tags and offset pagination. Use fetch_all to automatically follow pagination and return every item.

Inputs: entity (required), size, tags, offset, +2 more.

kong_list_workspacesList workspaces (EE)B

List all workspaces (Enterprise). Equivalent to GET /workspaces.

Inputs: fetch_all.

kong_node_infoKong node infoA

Get general node information (GET /): version, configuration, hostname, plugins available on the server, and database mode.

Inputs: no named parameters.

kong_node_statusKong node statusA

Get node health and metrics (GET /status): database reachability, connection counts, and memory usage.

Inputs: no named parameters.

kong_plugin_schemaGet plugin config schemaA

Fetch the configuration schema for a plugin (GET /schemas/plugins/). Use this before creating/updating a plugin to learn the valid config fields and their types/defaults. Example name: 'rate-limiting', 'key-auth', 'cors', 'jwt', 'acl'.

Inputs: name (required).

kong_requestRaw Kong Admin API requestA

Make an arbitrary request to any Kong Admin API endpoint. Use this for anything the CRUD tools don't cover: nested relations, RBAC, keyring, schemas, /status, /config (DB-less), bulk operations, etc. Examples: GET /status, GET /schemas/plugins/rate-limiting, POST /config (declarative), GET /services//routes.

Inputs: path (required), method (required), body, query, +1 more.

kong_updateUpdate a Kong entityA

Partially update an entity (PATCH //). Only the fields supplied in data are changed.

Inputs: id (required), data (required), entity (required), workspace.

kong_upsertUpsert a Kong entityA

Create or replace an entity at a known id/name (PUT //). Creates it if absent, fully replaces it if present.

Inputs: id (required), data (required), entity (required), workspace.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 13 tools

    Disambiguation5/5

    Each tool targets a distinct action (configure, create, delete, get, list, update, upsert) or specific resource (workspaces, node info, node status, plugin schema). The generic kong_request tool fills gaps without overlapping with the CRUD tools. No two tools have ambiguous purposes.

    Naming Consistency5/5

    All tools follow the 'kong_<verb>' or 'kong_<verb>_<noun>' pattern consistently, using lowercase with underscores. Examples: kong_create, kong_list_workspaces, kong_node_info. This pattern makes prediction and selection straightforward for an agent.

    Tool Count5/5

    With 13 tools, the set is well-scoped for a Kong Admin API client. It covers connection management, CRUD operations, node diagnostics, plugin schema inspection, and a fallback generic request. No tool feels superfluous or missing.

    Completeness5/5

    The tools provide full lifecycle coverage for Kong entities (create, read, update, delete, upsert, list with pagination). The node info/status tools cover administrative monitoring, and the generic kong_request handles any API endpoint not explicitly exposed (e.g., RBAC, declarative config). No obvious gaps.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers