Skip to content

[track:transport] Michiel Bugher claims L0 transport: MCP + A2A #17

@MichielDean

Description

@MichielDean

Track Claim

Track: Track 3 — L0 transport: MCP + A2A (transport)

Prior JVM experience: Extensive experience with Java 21 (records, sealed types, virtual threads), Jackson polymorphic serialization, JDK HttpClient, MCP Java SDK (mcp-core 1.1.2), Gradle multi-module builds, and the AdCP protocol family. Contributed Track 1 (infra) and Track 2 (codegen) to this repo.

Availability: Full-time contributor

First milestone commitment: v0.1 alpha — MCP transport + basic caller, storyboards green against mock-server.

Can attend working-group sync: Yes — regularly

Scope (from ROADMAP)

  • MCP: wrap mcp-core 1.1.2 (D9). Caller-side HttpClientStreamableHttpTransport with SSE fallback. Server-side HttpServletStreamableServerTransportProvider. Plan deliberate 2.x migration PR ~6 months out.
  • A2A pre-1.0: minimal SSE consumer + JSON-RPC framer in adcp-server. Keep types in-tree until a2a-java ≥ 1.0.0 GA (D10). Currently at 1.0.0.CR1.
  • HTTP transport: java.net.http.HttpClient with SSRF-safe AdcpHttpClient wrapper (DNS-pin, address-guards, redirect:manual, body cap). SSRF policy primitives already landed in harness.
  • Jackson ObjectMapper: AdcpObjectMapperFactory already landed with widened StreamReadConstraints/StreamWriteConstraints.
  • No *Async mirror methods — virtual threads (D2).

Implementation Plan (8 phases)

  1. AdcpHttpClient — SSRF-safe HTTP wrapper with DNS-pin via InetAddressResolverProvider (JDK 21)
  2. Error taxonomy — sealed AdcpError hierarchy, WWW-Authenticate challenge parser
  3. AgentConfig + Auth — Bearer, HTTP Basic (7.2.0), OAuth CC, OAuth auth-code
  4. MCP callerMcpConnectionManager, ProtocolClient dispatch, version envelope, tasks API
  5. AdcpClient — ~25 named tool methods, TaskResult<T> envelope, webhook handling
  6. MCP serverAdcpPlatform SPI, conditional tool advertisement, AdcpServerBuilder
  7. A2A transport (v0.4) — SSE consumer, JSON-RPC framer, tasks/cancel fire-and-forget
  8. Integration tests — mock-server round-trip, storyboard CI hookup

Phases 1-6 + 8 gate v0.1. Phase 7 gates v0.4.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions