The Agent Protocols Stopped at the Client — Let's Talk About the Server Half A developer has released Franca, an open-source Java 21 library published to Maven Central that implements the server side of agent wire protocols, terminating OpenAI Responses and Anthropic Messages dialects inside a developer's own service. The library, hosted via Spring Boot 3, uses pluggable adapters and drivers to let applications own the server half of the agent stack rather than relying on vendor-hosted implementations or client-side prompt bundles. Every few weeks another "skills" announcement lands. Prompt bundles, client-side toolkits, SDK-level orchestration patterns. I read them the way you probably do — genuinely interested, quietly uneasy. The industry's channel for developer agency in the agent stack has ended up almost entirely on the client side. Which is strange, if you think about where capabilities actually have to run: against your data, your environment, your governance. Server-side. This post is about a gap that sits precisely there, and an open-source Java library I shipped to Maven Central to fill it. OpenAI Responses and Anthropic Messages are becoming the wire protocols for agents. Look at what they specify on the client's half and it's genuinely impressive: conversation shape, tool declarations, reasoning knobs, structured events, streaming semantics. A client SDK that speaks one of these can talk to anything that speaks it back. Now look for the server's half. Which function actually answers a declared tool type? Where does it run? Should there be a retrieval pass before the answer? What can the server inject, observe, or veto? The protocol is silent on all of it. And silence has a consequence: whoever implements the server owns your application layer. Today the server half lives in one of three places: /v1/responses too — but as a raw text-in/text-out endpoint. They say the words of the dialect without the agent semantics behind them. So the division of labor we all claim to want — model capability belongs to model vendors, application capability belongs to application developers, the wire protocol is the border — only got implemented on one side. On the other side, your options are: rent the vendor's server half, route through a translator, or accept a very smart autocomplete. The industry's answer to the remaining developer agency is skills. Client-side prompt bundles. That's what you get when the server belongs to someone else. Franca is my attempt at the missing piece: a Java 21 library that terminates both dialects inside your own service, and turns the server half of the protocol into an ordinary development surface. The bottom boundary is any inference backend — currently an OpenAI-compatible chat driver, more via pluggable drivers. The top boundary is your /v1/responses and /v1/messages endpoints. The middle is yours. Dependencies Spring Boot 3 host :