On March 26, 2025, OpenAI CEO Sam Altman announced that OpenAI would support the Model Context Protocol (MCP), the open standard Anthropic had introduced four months earlier for connecting AI applications to tools and data. Support shipped the same day in the OpenAI Agents SDK, and Altman said the ChatGPT desktop app and the Responses API would follow. The decision turned MCP from one lab's proposal into a cross-vendor default, which is why it matters to every team that wants its tools to be callable by more than one AI platform.
Key Facts#
- Date: March 26, 2025, announced by Sam Altman in a post on X.
- Quote: Altman wrote that "people love MCP and we are excited to add support across our products."
- Availability: MCP support was live that day in the OpenAI Agents SDK. Support in the ChatGPT desktop app and the Responses API was described as coming soon.
- Origin of the standard: Anthropic introduced and open-sourced MCP on November 25, 2024, with a specification, SDKs and a repository of reference servers.
- Framing: TechCrunch reported the news as OpenAI adopting a standard created by its rival, Anthropic.
- Follow-through: In May 2025, OpenAI added support for remote MCP servers to the Responses API, and later built its ChatGPT Apps SDK on MCP.
What Happened#
The announcement was brief. Altman's post said MCP support was available immediately in the Agents SDK, OpenAI's open-source Python framework for building multi-agent workflows, and that the ChatGPT desktop app and the Responses API would come next. There was no new protocol, no fork and no OpenAI-specific dialect: OpenAI chose to implement the existing specification as published.
In practice, the Agents SDK treats an MCP server as another source of tools. The agent connects to the server, lists the tools it exposes, and makes them available to the model alongside ordinary Python function tools. When the model decides to call one, the SDK forwards the call to the MCP server and returns the result to the model.
The SDK's MCP documentation now describes four integration options. MCPServerStdio launches a local process and talks to it over standard input and output. MCPServerStreamableHttp connects to local or remote servers that use the Streamable HTTP transport. MCPServerSse supports the older HTTP with Server-Sent Events transport, which the documentation marks as deprecated by the MCP project. Finally, HostedMCPTool lets the Responses API call a publicly reachable MCP server on the model's behalf, so the round trip happens on OpenAI's side. The documentation also covers static and dynamic tool filtering, optional caching of tool lists and per-tool approval policies.
Background#
Before MCP, every AI vendor had its own function-calling format, and every integration with a database, ticketing system or file store had to be written again for each assistant. Anthropic pitched MCP as a fix for that multiplication problem. Anthropic's announcement argued that even sophisticated models are held back by isolation from data, because each new source needs a custom implementation.
MCP uses a client-server design. An MCP server exposes capabilities such as tools, resources and prompts. An MCP client, embedded in an AI application, connects to one or more servers and relays what they offer to the model. At launch, Anthropic shipped the specification and SDKs, local server support in the Claude Desktop apps, and open-source servers for systems such as Google Drive, Slack, GitHub, Git, Postgres and Puppeteer. Block and Apollo were named as early adopters, and developer-tool companies including Zed, Replit, Codeium and Sourcegraph said they were working with the protocol.
By the time OpenAI announced its support, MCP had built real momentum among developers, as Altman's own post acknowledged. What it lacked was a commitment from another leading model provider. OpenAI's move supplied that commitment and made it much easier for later adopters to follow.
Why It Matters for Developers#
The practical effect is "write once, expose everywhere." A tool published as an MCP server can now be consumed by OpenAI agents, by Claude and by the growing list of editors and assistants that speak the protocol. For teams that maintain internal tools, the question changes from "which assistant do we integrate with?" to "how do we operate one well-secured MCP server?"
.NET developers can take part on both sides of the protocol with the official C# SDK (see our MCP in C# guide and the C# SDK launch news). Because the SDK's client tools plug into Microsoft.Extensions.AI, an MCP server can supply tools to any IChatClient, including one backed by an OpenAI model. The following sketch follows the pattern of the SDK's own ChatWithTools sample:
using Microsoft.Extensions.AI;
using ModelContextProtocol.Client;
using OpenAI;
// Start a local MCP server over stdio (here, the MCP project's reference test server).
var mcpClient = await McpClient.CreateAsync(
new StdioClientTransport(new()
{
Name = "Everything",
Command = "npx",
Arguments = ["-y", "@modelcontextprotocol/server-everything"],
}));
var tools = await mcpClient.ListToolsAsync();
var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;
using IChatClient chatClient = new OpenAIClient(apiKey)
.GetChatClient("gpt-4o-mini") // any tool-capable model
.AsIChatClient()
.AsBuilder()
.UseFunctionInvocation()
.Build();
List<ChatMessage> messages = [new(ChatRole.User, "Add 17 and 25 using your tools.")];
var options = new ChatOptions { Tools = [.. tools] };
await foreach (var update in chatClient.GetStreamingResponseAsync(messages, options))
{
Console.Write(update);
}A few design choices deserve attention:
- Pick the transport deliberately. Use stdio for local, per-user tools and Streamable HTTP for shared remote servers. Avoid building anything new on the deprecated SSE transport.
- Treat hosted calls as internet-facing. A server that OpenAI's platform calls directly must be publicly reachable, so it needs real authentication, rate limiting and least-privilege access to back-end systems.
- Keep a human in the loop for side effects. Approval policies and tool filtering exist for a reason. Tool descriptions and results are untrusted input that can carry prompt injection, as our responsible AI guide explains.
- Keep your abstractions portable. Coding against
IChatClient, as covered in the Microsoft.Extensions.AI guide, lets you swap model providers without rewriting tool plumbing. The function calling guide covers the underlying mechanics.
What's Next#
At announcement time, OpenAI committed to MCP support in the ChatGPT desktop app and the Responses API. The Responses API part arrived in May 2025, when OpenAI added remote MCP server support alongside built-in image generation and Code Interpreter. Coverage of that release named MCP servers from companies such as Stripe, Twilio, Shopify, PayPal and Intercom as examples, and OpenAI said it had joined the MCP steering committee.
ChatGPT followed with a developer mode that provides full MCP client support for both read and write tools, available on the web for Pro, Plus, Business, Enterprise and Education accounts. OpenAI's Apps SDK, which lets developers build interactive apps that run inside ChatGPT, is also built on MCP. In December 2025, OpenAI joined Anthropic and Block as a co-founder of the Agentic AI Foundation, the Linux Foundation fund that now hosts MCP.
Open questions remain around authorization for remote servers, consistent security review of third-party servers, and how quickly hosts adopt new specification versions. Those issues now play out in a shared, multi-vendor process rather than inside a single company.