Skip to content

v0.9.0 — 100% MCP Conformance

Choose a tag to compare

@azmaveth azmaveth released this 19 Mar 05:02
· 72 commits to master since this release

ExMCP 0.9.0 — 100% MCP Protocol Conformance

The first Elixir MCP implementation to achieve perfect conformance with the official MCP test suite.

Conformance Results

  • Client: 223/223 (0 failures, 0 warnings)
  • Server: 39/39 (0 failures)
  • Unit Tests: 2,919 (0 failures)

Highlights

ACP Adapters — Full support for Pi, Claude, and Codex coding agents with Zed-parity tool introspection (kind, locations, diff content).

OAuth 2.1 Authorization Code Flow with PKCE — Automatic 401→discover→register→authorize→token→retry. Supports all 4 metadata discovery patterns, 3 token endpoint auth methods, scope step-up, resource validation, and CIMD.

SSE Bidirectional Communication — Server-side SSE sessions for elicitation and sampling. Client-side SSE with retry timing, Last-Event-ID, and forced reconnection.

MCP Spec Compliance — All stabilized features: session/list, 8 session update types, 5 content block types, modes, config options, elicitation, DNS rebinding protection.

New Modules

  • ExMCP.Authorization.FullOAuthFlow — Complete browser-based OAuth flow
  • ExMCP.Client.ElicitationHandler — Configurable elicitation handling
  • ExMCP.Server.SSESession — Bidirectional SSE session manager
  • ExMCP.Plugs.DnsRebinding — Host header validation
  • ExMCP.Testing.SchemaGenerator — JSON Schema → test values
  • ExMCP.ACP.Adapters.Pi — Full Pi coding agent adapter

Breaking Changes

  • Tool call results now wrapped in {content: [...]} format (MCP spec)
  • tool_call session update → tool_call_update (spec-compliant)
  • Default protocol version: 2025-11-25 (was 2025-06-18)

See CHANGELOG.md for full details.