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.