Class McpExtension

java.lang.Object
dev.relism.flash.ext.mcp.McpExtension
All Implemented Interfaces:
dev.relism.flash.extension.FlashExtension

public class McpExtension extends Object implements dev.relism.flash.extension.FlashExtension
MCP (Model Context Protocol) server extension. Streamable HTTP transport — a single POST JSON-RPC endpoint, stateless in this revision (no session, no SSE stream; see docs/transport.md) — dispatch precompiled at boot from classes annotated with @Tool/@Resource/@Prompt under
invalid reference
McpConfig#toolsPackage(String)
.

 // Standalone, no OAuth2
 FlashApp.create(8080)
     .install(new McpExtension(McpConfig.builder("my-mcp-server")
         .toolsPackage("com.example.tools")
         .build()))
     .start();

 // With flash-ext-oidc as the OAuth2 resource server — zero extra config: issuer, canonical
 // resource identifier, RFC 8707 audience binding and RFC 9728 metadata are all derived from
 // the installed OidcExtension.
 FlashApp.create(8080)
     .install(new OidcExtension(oidcConfig))
     .install(new McpExtension(McpConfig.builder("my-mcp-server")
         .toolsPackage("com.example.tools")
         .security(McpSecurity.REQUIRED)
         .build()))
     .start();
 

One server per McpExtension instance — install multiple instances (distinct rootPath, distinct toolsPackage) for multiple MCP servers on one app, mirroring the OidcExtension multi-tenant pattern. See docs/security.md for the full OAuth2 resolution rules.

  • Constructor Details

    • McpExtension

      public McpExtension(McpConfig config)
  • Method Details

    • configure

      public void configure(dev.relism.flash.extension.FlashRegistrar<?> app, dev.relism.flash.extension.FlashContext ctx)
      Specified by:
      configure in interface dev.relism.flash.extension.FlashExtension