Skip to main content
Glama
gravitee-io

Gravitee APIM MCP Server

Official
by gravitee-io

Gravitee APIM MCP Server

This repository contains a Model Context Protocol (MCP) server for Gravitee API Management (APIM). It lets MCP-compatible clients call the APIM Management API through tools.

This version targets the APIM 4.12 Management API v2 APIs surface.

Scope

The MCP server covers the APIM Management API v2 APIs surface only. It does not expose the full Management API family.

The tool surface includes API creation, import, update, deployment, plans, subscriptions, members, analytics, logs, health, scoring, integrations, and related read operations. Some high-impact operations such as delete, stop, migrate, promote, rollback, transfer ownership, debug, and subscription key actions are available when the configured APIM token has permission to perform them.

Use a dedicated APIM service user and grant only the roles required for the intended workflow.

Related MCP server: Cisco MCP Pods Server

Requirements

  • Access to an APIM Management API endpoint

  • An APIM bearer token

  • Node.js 18 or later, npm, and Bun when installing from source

Create an APIM Token

Create a dedicated APIM service user and generate a personal token for it.

Recommended flow:

  1. Open the APIM Console.

  2. Go to Organization Settings, then Users.

  3. Create a service user for MCP usage.

  4. Assign only the organization and environment roles required for the workflows you want to allow.

  5. Generate a personal token for that service user.

  6. Use that token as APIM_BEARER_TOKEN or as the value for --bearer-auth.

Install

Claude Desktop Bundle

Official GitHub releases include a Claude Desktop bundle named gravitee-apim-mcp-server.mcpb. Install that file in Claude Desktop to use the packaged server. The bundle prompts for the APIM connection settings and bearer token.

From GitHub Source

Clone and build locally:

git clone https://github.com/gravitee-io/gravitee-apim-mcp-server.git
cd gravitee-apim-mcp-server
npm install
npm run build

The build creates the server executable at:

./bin/mcp-server.js

Use the absolute path to ./bin/mcp-server.js in MCP client configuration.

Basic Usage

Use the Management API v2 base URL as --server-url.

Self-hosted example:

node ./bin/mcp-server.js start \
  --bearer-auth "$APIM_BEARER_TOKEN" \
  --server-url "http://localhost:8083/management/v2"

Cloud example:

node ./bin/mcp-server.js start \
  --bearer-auth "$APIM_BEARER_TOKEN" \
  --server-url "https://<your-org>.<region>.api.gravitee.io/management/v2"

You can also use templated server arguments:

node ./bin/mcp-server.js start \
  --protocol https \
  --management-api-host "<management-api-host>" \
  --org-id DEFAULT \
  --bearer-auth "$APIM_BEARER_TOKEN"

Dynamic Mode

Dynamic mode exposes a compact set of discovery and execution tools instead of registering every APIM operation as a separate MCP tool:

  • list_scopes

  • list_tools

  • describe_tool_input

  • execute_tool

node ./bin/mcp-server.js start \
  --mode dynamic \
  --bearer-auth "$APIM_BEARER_TOKEN" \
  --server-url "$APIM_SERVER_URL"

In dynamic mode, an MCP client first discovers a tool, inspects its input schema, then calls it through execute_tool.

Read-Only Profile

For safer exploration, mount only tools marked with the read scope:

node ./bin/mcp-server.js start \
  --mode dynamic \
  --scope read \
  --bearer-auth "$APIM_BEARER_TOKEN" \
  --server-url "$APIM_SERVER_URL"

This keeps read-oriented operations available and excludes write/high-impact operations such as member changes, migration, promotion, and debug tools.

Write Profile

MCP scopes and APIM permissions both control write tools. For operational use, configure a service user with the smallest APIM role set that can perform the target workflow.

Example:

node ./bin/mcp-server.js start \
  --mode dynamic \
  --scope read \
  --scope write \
  --bearer-auth "$APIM_BEARER_TOKEN" \
  --server-url "$APIM_SERVER_URL"

The dangerous scope marks high-impact tools. Only enable that scope for controlled workflows:

node ./bin/mcp-server.js start \
  --mode dynamic \
  --scope read \
  --scope write \
  --scope dangerous \
  --bearer-auth "$APIM_BEARER_TOKEN" \
  --server-url "$APIM_SERVER_URL"

MCP Client Configuration

Claude Desktop or compatible stdio clients can use:

{
  "mcpServers": {
    "GraviteeApim": {
      "command": "node",
      "args": [
        "/absolute/path/to/gravitee-apim-mcp-server/bin/mcp-server.js",
        "start",
        "--mode",
        "dynamic",
        "--scope",
        "read",
        "--bearer-auth",
        "YOUR_BEARER_TOKEN",
        "--server-url",
        "https://your-management-api-url/management/v2"
      ]
    }
  }
}

Contributions

Open issues or pull requests for documentation, installation problems, or reproducible runtime issues.

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gravitee-io/gravitee-apim-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server