GPT-Realtime-2.1: MCP, SIP, and Image Input Are Live OpenAI released GPT-Realtime-2.1, a zero-cost upgrade to its Realtime API that adds MCP server support, image input, and native SIP phone calling, with 25% better p95 latency and improved noise handling. The update enables voice agents to connect to existing tool ecosystems via MCP, accept SIP trunks directly from providers like Twilio or Telnyx, and process images during sessions, making voice agents viable as production infrastructure. OpenAI just made the case for building voice agents a lot harder to ignore. GPT-Realtime-2.1 — already the upgrade over 2.0 you should have shipped weeks ago — now adds MCP server support, image input, and native SIP phone calling. Three features that together push voice agents from “impressive in demos” to “viable as actual infrastructure.” Here is what changed and what you need to do next. First, Make Sure You Are on 2.1 If your session config still says model: "gpt-realtime-2" , stop reading and fix that first. GPT-Realtime-2.1 is a zero-cost upgrade https://openai.com/index/introducing-gpt-realtime/ — same API, same endpoint, same pricing — with 25% better p95 latency, improved noise and interruption handling, and configurable reasoning effort. There is no reason to stay on 2.0. GPT-Realtime-2.1-mini ships reasoning at the old non-reasoning mini price point, making high-volume phone flows that were previously too expensive now viable. MCP Servers in Voice: The Missing Piece This is the feature that changes the calculus for voice agent architecture. Until now, voice agents were largely isolated from your tool ecosystem — you could give them hardcoded functions, but connecting them to the same MCP servers powering your text agents required custom glue code. That is over. You add an MCP server to a Realtime session the same way you would configure it for a text agent: pass the server URL into the session config, set which tools are allowed, and the API handles the rest. The model calls tools mid-conversation, gets results, and responds — all without you writing a custom dispatcher. js const event = { type: "session.update", session: { model: "gpt-realtime-2.1", output modalities: "audio", "text" , tools: { type: "mcp", server label: "support docs", server url: "https://your-mcp-server.example.com/mcp", allowed tools: "search docs", "create ticket" , require approval: "never", }, , }, }; ws.send JSON.stringify event ; The require approval: "never" flag lets tools run without a confirmation step — what you want for unattended agent flows. For anything involving irreversible actions, handle approval in your application layer instead. Full reference at the OpenAI Realtime MCP guide https://developers.openai.com/api/docs/guides/realtime-mcp . SIP Calling: The Enterprise Unlocker This one matters most for enterprise workloads, and it has been understated in the coverage so far. OpenAI’s Realtime API now accepts SIP trunks directly. You point your Twilio or Telnyx trunk at the OpenAI SIP endpoint, configure a webhook, and your voice agent answers the phone. No FreeSWITCH. No Asterisk. No media bridge to maintain. The architecture is exactly as simple as it sounds. Configure your SIP trunk origination URI: sip:proj