CIB seven MCP REST API — exposes the CIB seven engine REST API as MCP tools for LLMs
1.6K
A ready-to-run Model Context Protocol (MCP) server for CIB seven. It exposes the CIB seven engine REST API — or any other OpenAPI-described API — as MCP tools that LLM clients (claude.ai, VS Code, Claude Desktop, MCP Inspector, …) can call.
MCP client (claude.ai, VS Code, …)
│ OAuth2 bearer token (e.g. Entra ID)
▼
cibseven-mcp-restapi /mcp ← this image
│ passthrough token or freshly minted CIB seven JWT
▼
CIB seven engine-rest ← external engine (not part of this image)
The server parses an OpenAPI document at startup, registers one MCP tool per operation,
and executes tool calls against the target engine. It also ships secure-by-design
plumbing: OAuth2 resource-server protection of the /mcp endpoint (including the RFC 9728
discovery metadata MCP clients need) and a pluggable strategy for authenticating the
outbound call to engine-rest.
Why is the image named
cibseven-mcp-restapi? The name is historical and kept for compatibility with existing deployments and the Helm chart. The image is built from the cibseven-mcp-server application, which hosts the cibseven-mcp-restapi library.
docker run -p 8080:8080 \
-e CIBSEVEN_WEBCLIENT_ENGINEREST_URL=https://my-engine.example.org \
cibseven/cibseven-mcp-restapi
Then connect an MCP client to http://localhost:8080/mcp, or check health at
http://localhost:8080/actuator/health.
⚠️ Without an OAuth2 issuer configured, the
/mcpendpoint is unprotected — this is for local development only. Never expose an unprotected MCP server. SetSPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URIto protect it (see below).
All configuration is standard Spring Boot, so any property can be supplied as an
environment variable (uppercased, ./- → _). The most common ones:
| Environment variable | Purpose |
|---|---|
CIBSEVEN_WEBCLIENT_ENGINEREST_URL | The engine-rest endpoint the MCP tools call. |
CIBSEVEN_OPENAPI_URL | OpenAPI document to expose as tools (defaults to the published CIB seven spec). |
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI | Protects /mcp as an OAuth2 resource server (e.g. Entra ID). |
CIBSEVEN_MCP_OAUTH2_SCOPES_SUPPORTED | Scopes advertised to MCP clients that have no scope input (e.g. the claude.ai connector). |
CIBSEVEN_MCP_ENGINE_REST_AUTH | Outbound auth: passthrough (default) or minted-jwt. |
CIBSEVEN_MCP_ENGINE_REST_MINTED_JWT_RESOLVER | Identity mapping in minted-jwt mode: claim, graph, or static (dev/test). |
ENGINE_REST_JWT_SECRET | Base64 HMAC secret shared with engine-rest (minted-jwt mode). Inject as a secret. |
GRAPH_CLIENT_ID / GRAPH_CLIENT_SECRET | Entra app registration for the graph resolver. |
See the library README for the full reference, including the inbound OAuth2 and outbound engine-rest authentication chains.
amazoncorretto:21-alpine — small, actively maintained, low OS CVE
surface. (Corretto 21 runs the app's Java 17 bytecode.)uid:gid 1000:1000).8080 (HTTP: /mcp, /actuator/health, OAuth2 discovery metadata).-XX:MaxRAMPercentage=75.0.| Tag | Contents |
|---|---|
latest | The latest released (stable) version. |
X.Y.Z | A specific immutable release (e.g. 1.0.0). |
X.Y.Z-SNAPSHOT | Development build from main (mutable, may be re-published). |
A Helm chart with hardened security defaults, actuator HTTP probes, and per-deployment configuration rendered into a Kubernetes Secret ships in the cibseven-mcp-server repository.
Reachability note. The claude.ai connector reaches the MCP server from Anthropic's cloud over the public internet, so the
/mcpendpoint must be publicly reachable (lock inbound down to Anthropic's IP ranges); engine-rest itself stays internal.
Apache License 2.0.
Content type
Image
Digest
sha256:11d4f94b1…
Size
205.7 MB
Last updated
about 5 hours ago
docker pull cibseven/cibseven-mcp-restapi