OpenAI's function-calling format and MCP cover overlapping ground: defining tools and letting models call them. They aren't competitive in the simple sense — MCP wraps function calling with discovery, transport, and lifecycle.
Advertisement
Function calling: in-process API
Per-call: include 'tools' in the request, model returns function name + args, your code executes. Fine when tools are part of your own service.
MCP: out-of-process protocol
Server hosts tools; client (agent runtime) discovers and invokes via standardized protocol over stdio/SSE/HTTP. Tools become composable, shareable, reusable across agents.
Advertisement
When to use which
Your own service implementing tools the model uses: function calling format. External services exposing tools that multiple agents want to use: MCP server. They're complementary, not competing.
Function-calling for in-process tools. MCP for cross-service reusable tool surfaces. Use both in different parts of the architecture.