Multi-Protocol Support
Seamless bridging between OpenAPI, GraphQL, and native Elemm APIs.
Overview
The gateway seamlessly bridges three API paradigms into the unified Elemm discovery model. Regardless of what interface the target API offers, the agent always works with the same 9 core tools.
OpenAPI (REST)
- Detection: URL ends in
.json,.yaml,.yml, or contains/openapi - Supported Versions: OpenAPI 3.x and Swagger 2.0
Feature Coverage
- Path, query, header, and body parameters
- Path-level parameter inheritance
$refresolution for component parametersrequestBodyschema flattening- Server URL extraction (with relative URL handling)
- Security scheme detection with vault integration warnings
- Tag-based landmark grouping with metadata descriptions
Custom Directives
OpenAPI specs can define custom behavioral guidelines via x-elemm-instructions in the info block or root level. These are automatically injected into the transient session manifest as system instructions.
GraphQL
- Detection: URL contains the keyword
graphql - Discovery: Automatic introspection via the standard
__schemaquery
Feature Coverage
- Query and Mutation field extraction
- Argument type mapping (Scalars, Lists, NonNull, InputObjects)
- Automatic GQL type annotations in tool metadata (
gql_type) - Dynamic
_selectparameter for controlling the selection set - Nested field selection via dot-notation (e.g.,
_select: "name, info.id") - Automatic variable generation and type-safe query construction
Example: GraphQL Field Selection
json
{
"action": "Query:countries",
"parameters": {
"_select": "name, capital, continent.name"
}
}The GraphQLExecutor dynamically generates the correct GraphQL query with the matching selection set.
Native Elemm
- Detection: Fallback — probes
/.well-known/elemm-manifest.md
Feature Coverage
- Lazy manifest loading (no tool signatures at connect time)
- On-demand landmark inspection via the remote server
- Proxy execution via the standard
/.well-known/elemm/executeendpoint
Local MCP Servers (mcp://local)
The gateway also supports binding local MCP servers as landmark actions:
- Recognizes the virtual URL
mcp://local - Binds all servers configured in
~/.elemm/mcp_servers.yaml - Each tool is registered as an Elemm landmark (
mcp:server_id:tool_name) - Supports various process types (STDIO, SSE)
💡 TIP
Use the MCP Blending Mode in the gateway settings to control whether MCP servers are injected globally, locally sandboxed, or selectively.