Compatibility profiles Use this reference to select an implemented AIP profile, match its stable version and route surface, and identify which semantics remain native AIP responsibilities. It covers the three compatibility profiles and four native transport profiles present in the reviewed source. The normative compatibility boundary is defined by AIP 1.0 (AIP-1.0.md#21-compatibility-profiles). This page records the implementation at revision 97be86e9efedf07ecf1783b03800f683f107fb04; it does not extend that normative contract or qualify a deployment. Choose a profile The profile identifier selects a defined mapping or binding. It does not name a connector, process, credential, or deployment. | Profile ID | Class | Select it when | | aip.native.http.v1 | Native request/response binding | A client exchanges native envelopes or uses the daemon's native HTTP views | | aip.native.nats.v1 | Native broker binding | A trusted deployment routes native envelopes through NATS subjects | | aip.sse.stream.v1 | Native server-stream codec | A server emits one native envelope per SSE data field | | aip.websocket.stream.v1 | Native bidirectional codec | Peers exchange one native envelope per WebSocket text frame | | aip.mcp.compat.v1 | MCP compatibility profile | An MCP client needs a projected view of AIP capabilities and lifecycle | | aip.a2a.compat.v1 | A2A compatibility profile | An A2A client needs Agent Card discovery and task-oriented operations | | aip.http.webhook.v1 | Generic webhook verification profile | A connector normalizes and verifies a signed HTTP webhook before mapping it | Native bindings retain the AIP envelope as their application message. Compatibility profiles translate a foreign protocol's DTOs, lifecycle, and errors at the edge. The profiles and connectors (../concepts/profiles-and-connectors.md) concept page explains this layer model; the sections below provide exact lookup tables for the implemented surface. Shared profile boundary Every profile adapter remains outside the native semantic core. A successful wire decode is only the first step: 1. the selected profile validates its own framing and version rules; 2. the adapter maps the request to a native message or bounded native query; 3. the gateway authenticates the transport-bound principal and applies validation, replay, authorization, approval, and lifecycle policy; 4. the adapter projects the native result or typed error back to the foreign protocol. A profile cannot weaken native admission rules. A foreign request ID, tool name, task ID, header, or Agent Card field does not independently establish an AIP principal, tenant, capability grant, approval, idempotency reservation, or terminal result. Profile support also has three separate meanings: | Claim | What it establishes | | Identifier present in a manifest | The endpoint declares the profile | | Mapping present in source | The reviewed implementation contains the DTO or transport mapping | | Route enabled and qualified | An exact artifact and configuration passed the applicable checks | Do not infer the third claim from either of the first two. MCP compatibility profile aip.mcp.compat.v1 maps MCP JSON-RPC requests to AIP capabilities, resources, actions, cancellations, event views, and typed results. MCP sessions, request correlation, roots, sampling, elicitation, prompts, completions, and task views remain profile state; they do not become native AIP message families. Stable protocol versions The implementation recognizes four stable MCP versions. The method set is versioned even when two versions currently have the same count. | MCP version | Stable methods | Change from the 24-method base | | 2024-11-05 | 24 | Base set | | 2025-03-26 | 24 | Same implemented stable method set | | 2025-06-18 | 25 | Adds elicitation/create | | 2025-11-25 | 31 | Adds elicitation completion and five task methods | The 24-method base is grouped here for exact lookup: | Group | Stable methods | | Lifecycle and control | initialize, notifications/initialized, ping, notifications/cancelled, notifications/progress | | Tools | tools/list, tools/call, notifications/tools/listchanged | | Resources | resources/list, resources/read, resources/templates/list, resources/subscribe, resources/unsubscribe, notifications/resources/listchanged, notifications/resources/updated | | Prompts | prompts/list, prompts/get, notifications/prompts/listchanged | | Completion | completion/complete | | Logging | logging/setLevel, notifications/message | | Roots | roots/list, notifications/roots/listchanged | | Sampling | sampling/createMessage | 2025-11-25 adds notifications/elicitation/complete, tasks/list, tasks/get, tasks/result, tasks/cancel, and notifications/tasks/status. Unstable parser-only methods are excluded from this matrix and are not part of the stable advertised surface. MCP transports and routes Transport choice constrains the executable version matrix: | Transport | 2024-11-05 | 2025-03-26 | 2025-06-18 | 2025-11-25 | | stdio | Yes | Yes | Yes | Yes | | Legacy HTTP and SSE | Yes | No | No | No | | Streamable HTTP | No | Yes | Yes | Yes | The daemon exposes these network routes: | Surface | Method | Routes | | Streamable HTTP | GET, POST, DELETE | /mcp, /mcp/v1, /aip/v1/mcp | | Legacy SSE stream | GET | /mcp/legacy/sse | | Legacy client messages | POST | /mcp/legacy/messages | | Protected-resource metadata | GET | /.well-known/oauth-protected-resource, /.well-known/oauth-protected-resource/mcp | On Streamable HTTP, POST carries JSON-RPC messages, GET opens the server event stream, and DELETE removes the addressed session. The transport processes MCP-Protocol-Version, MCP-Session-Id, and Last-Event-ID. Authentication, allowed origins, request bounds, session ownership, and resume behavior remain deployment and transport controls. stdio carries one JSON-RPC frame per line and relies on the spawning host for process identity and isolation. It has no HTTP bearer, Origin, or session-header boundary. MCP projection and stable facade tools/call becomes a native Action and follows the same gateway and runtime path as a native request. Request-to-action correlation allows an MCP cancellation notification to target the active action. The result is projected back as MCP content, structured content, a task view when enabled, or a JSON-RPC error derived from the native error. The server can expose generated tools for a bounded local manifest and stable AIP facade tools. The stable surface includes aipcapabilities for discovery and aipcall for invocation, plus focused lifecycle, event, approval, resource, receipt, transaction, and delegation tools. When a tenant-scoped connector catalog is installed, generated fleet capabilities are not expanded into one global in-memory tools/list. aipcapabilities queries the catalog using the identity bound to the MCP session and returns a bounded page with catalogrevision, total, capabilities, and nextcursor. This preserves tenant visibility and revision-fenced pagination while keeping the MCP tool surface stable. Server features remain composition-dependent. A method may belong to the negotiated MCP version while its provider is unavailable, disabled, or empty. For example, roots, sampling, elicitation, dynamic notifications, tasks, and generated capability tools are advertised only when the active composition can serve the corresponding behavior. Use AIP through MCP (../guides/use-aip-through-mcp.md) for a task-oriented connection and invocation flow. A2A compatibility profile aip.a2a.compat.v1 maps Agent Card discovery, messages, tasks, cancellation, streaming, and push-notification configuration to native AIP manifests, actions, results, events, and durable profile state. Current A2A operations The current advertised surface has eleven operation names: | Group | Operations | | Send | SendMessage, SendStreamingMessage | | Read and follow tasks | GetTask, ListTasks, SubscribeToTask | | Cancel | CancelTask | | Push configuration | CreateTaskPushNotificationConfig, GetTaskPushNotificationConfig, ListTaskPushNotificationConfigs, DeleteTaskPushNotificationConfig | | Extended discovery | GetExtendedAgentCard | Legacy operation aliases may be accepted as inputs for compatibility, but they are not advertised as the current surface. A2A routes | Surface | Method | Routes | | Agent Card | GET | /.well-known/agent-card.json, /.well-known/agent.json, /a2a/agent-card | | JSON-RPC | POST | /a2a, /a2a/v1, /aip/v1/a2a | The Agent Card can project manifest identity, documentation, skills, media modes, interfaces, extensions, security schemes and requirements, signatures, and supported streaming, push, or extended-card features. The advertised feature set must match the active composition. SendMessage and SendStreamingMessage create native actions. CancelTask creates a native cancellation. Task status and artifacts project from the durable action view, while subscriptions project the event stream. The sender's message ID produces the native idempotency key a2a-message:{messageid}. Clients must reuse the message ID when retrying an uncertain send. Push configurations and delivery cursors are profile state, not fields copied into the action. The daemon implementation encrypts stored push credentials, signs outbound payloads, validates callback destinations against egress policy, and uses leased retryable delivery. Those controls describe the reviewed daemon, not every independent implementation of the profile. Use AIP through A2A (../guides/use-aip-through-a2a.md) for a complete discovery, send, stream, and recovery flow. Generic HTTP webhook profile aip.http.webhook.v1 defines a small provider-neutral signing and verification boundary. It normalizes five values: | Field | Meaning | | delivery | Delivery identity supplied to the signing input | | timestamp | Unix time in seconds | | signature | Standard-base64 HMAC-SHA256 bytes | | sourcesystem | Normalized source identifier | | eventtype | Normalized source event type | The signing input is the UTF-8 text {timestamp}.{delivery}.{payload}. Verification: 1. rejects a timestamp whose absolute distance from current UTC time exceeds the caller-supplied skew; 2. recomputes HMAC-SHA256 with the configured secret; 3. decodes the expected and supplied signatures from standard base64; 4. rejects unequal lengths; and 5. compares equal-length signature bytes in constant time. The generic profile does not define raw HTTP header names, an ingress route, payload schema, replay store, delivery deduplication, provider parser, or native message mapping. A connector owns those choices. It should verify the original request body before parsing, persist or reject repeated delivery IDs according to its contract, and only then construct the appropriate native AIP message. Because the signing helper treats the payload as UTF-8 text, a connector that accepts arbitrary binary request bodies needs an explicitly defined binary canonicalization instead of assuming this profile covers it. Native transport profiles The four native profiles share the profile namespace but do not translate a foreign semantic model: | Profile | Implemented framing | Deployed daemon surface | | aip.native.http.v1 | Complete envelope encoded as JSON | Native message, action, manifest, and operational HTTP routes | | aip.native.nats.v1 | JSON transport wrapper, with raw-envelope receive compatibility | Structured subjects, publish, and request/reply | | aip.sse.stream.v1 | Complete envelope in each SSE data field | Durable event and action follow routes use a daemon-specific adapter | | aip.websocket.stream.v1 | Complete envelope in each text frame | GET /aip/v1/ws adds envelope exchange and subscription control | The framework-neutral SSE and WebSocket codecs use in-memory correlation or session queues. Their cursors and frames are not the durable event query shape of the daemon adapters. NATS Core delivery does not imply JetStream retention, and HTTP reachability does not establish peer identity. Use transport bindings (../reference/transport-bindings.md) for exact native routes, media behavior, subjects, headers, framing, authentication, recovery, and implementation differences. Negotiation and failure behavior Profile negotiation must select an identifier and version supported by both peers and executable on the chosen transport. A manifest declaration does not override a transport-version restriction. | Failure | Interpretation | | Unknown profile ID | No mapping is selected; reject or negotiate a supported profile | | Unsupported stable version | Do not silently use version-specific methods from another matrix | | Known method with unavailable provider | The protocol surface exists, but the active composition cannot serve it | | Mapping or schema error | Reject before native dispatch when no valid native request can be formed | | Native policy or authorization error | Project the typed native failure; do not reinterpret it as transport success | | Connection loss after dispatch | Preserve the original mutation identity and query durable native state | | Cursor rejected or expired | Re-establish the stream from a supported durable position and reconcile state | Compatibility does not provide exactly-once external effects. The native capability contract, idempotency key, action status, transaction state, receipts, and provider reconciliation remain authoritative after an uncertain outcome. Conformance and evidence Profile unit tests establish deterministic DTO and mapping behavior for the reviewed source. Transport and server tests cover additional lifecycle and route behavior. Neither proves that an arbitrary deployment has enabled the same providers, identity configuration, durable stores, callbacks, or external systems. A conformance claim must name the profile, protocol version, transport, implementation revision, configuration boundary, suite, and retained result. Provider or connector qualification is a separate evidence layer. See conformance and qualification (../reference/conformance.md) before publishing a compatibility or readiness claim. Related documentation • AIP 1.0 normative specification (AIP-1.0.md) • Profiles and connectors (../concepts/profiles-and-connectors.md) • Transport bindings (../reference/transport-bindings.md) • Conformance and qualification (../reference/conformance.md)