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)
- AdcpHttpClient — SSRF-safe HTTP wrapper with DNS-pin via
InetAddressResolverProvider (JDK 21)
- Error taxonomy — sealed
AdcpError hierarchy, WWW-Authenticate challenge parser
- AgentConfig + Auth — Bearer, HTTP Basic (7.2.0), OAuth CC, OAuth auth-code
- MCP caller —
McpConnectionManager, ProtocolClient dispatch, version envelope, tasks API
- AdcpClient — ~25 named tool methods,
TaskResult<T> envelope, webhook handling
- MCP server —
AdcpPlatform SPI, conditional tool advertisement, AdcpServerBuilder
- A2A transport (v0.4) — SSE consumer, JSON-RPC framer,
tasks/cancel fire-and-forget
- Integration tests — mock-server round-trip, storyboard CI hookup
Phases 1-6 + 8 gate v0.1. Phase 7 gates v0.4.
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-core1.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-core1.1.2 (D9). Caller-sideHttpClientStreamableHttpTransportwith SSE fallback. Server-sideHttpServletStreamableServerTransportProvider. Plan deliberate 2.x migration PR ~6 months out.adcp-server. Keep types in-tree untila2a-java≥ 1.0.0 GA (D10). Currently at1.0.0.CR1.java.net.http.HttpClientwith SSRF-safeAdcpHttpClientwrapper (DNS-pin, address-guards, redirect:manual, body cap). SSRF policy primitives already landed in harness.AdcpObjectMapperFactoryalready landed with widenedStreamReadConstraints/StreamWriteConstraints.*Asyncmirror methods — virtual threads (D2).Implementation Plan (8 phases)
InetAddressResolverProvider(JDK 21)AdcpErrorhierarchy,WWW-Authenticatechallenge parserMcpConnectionManager,ProtocolClientdispatch, version envelope, tasks APITaskResult<T>envelope, webhook handlingAdcpPlatformSPI, conditional tool advertisement,AdcpServerBuildertasks/cancelfire-and-forgetPhases 1-6 + 8 gate v0.1. Phase 7 gates v0.4.