Skip to content

feat(binding-mcp-openapi): implement mcp_openapi proxy binding#1715

Open
jfallows wants to merge 2 commits intodevelopfrom
feature/1673-mcp-openapi
Open

feat(binding-mcp-openapi): implement mcp_openapi proxy binding#1715
jfallows wants to merge 2 commits intodevelopfrom
feature/1673-mcp-openapi

Conversation

@jfallows
Copy link
Copy Markdown
Contributor

@jfallows jfallows commented Apr 7, 2026

$(cat <<'EOF'

Summary

Implements the mcp_openapi proxy binding as described in #1673.

  • Adds runtime/binding-mcp-openapi/ with full module layout: config POJOs, stream handler (McpOpenApiProxyFactory), SPI registration, module-info.java, and JSON schema patch
  • Adds specs/binding-mcp-openapi.spec/ with the mcp.openapi.schema.patch.json describing options.specs, options.tools, routes[].when (tool, resource), and routes[].with (api-id, operation-id)
  • Adds stub specs/binding-mcp.spec/ with MCP IDL (McpBeginEx) required by the flyweight plugin
  • Adds stub runtime/binding-mcp-http/ and specs/binding-mcp-http.spec/ for future MCP-HTTP binding
  • Fixes .mvn/jvm.config to remove unsupported -XX:+UseCompactObjectHeaders JVM option

The proxy binding accepts incoming MCP streams, resolves routes via when: tool or when: resource conditions, and forwards to downstream OpenAPI streams with with: api-id and with: operation-id set on the OpenapiBeginEx extension.

Test plan

  • ./mvnw install -pl runtime/binding-mcp-openapi -am -DskipTests -DskipITs compiles cleanly
  • Flyweight classes are generated from core mcp openapi IDL scopes
  • Schema patch JSON is unpacked from spec JAR and available on the classpath at runtime
  • Route resolution correctly matches tool and resource conditions
  • OpenapiBeginExFW is built with correct api-id and operation-id from route with config

https://claude.ai/code/session_0174raBeXFTgt98bp4DTyRDm
EOF
)

claude added 2 commits April 7, 2026 05:29
Implements the foundational mcp binding module with server kind handler,
McpBeginEx IDL type, JSON schema patch, config adapters, and module-info.

Closes #1668

https://claude.ai/code/session_0174raBeXFTgt98bp4DTyRDm
Adds the mcp_openapi proxy binding that accepts MCP tool/resource streams
and routes them to OpenAPI-backed HTTP operations. Includes config adapters
for options.specs (catalog references), options.tools (per-tool descriptions),
routes.when (tool name / resource URI), and routes.with (api-id / operation-id).
Also adds stub modules for binding-mcp-http and binding-mcp-http.spec, and
adds pom.xml + mcp.idl to specs/binding-mcp.spec which were missing from the
prior binding-mcp commit.

https://claude.ai/code/session_0174raBeXFTgt98bp4DTyRDm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants