Function Calling (often termed 'Tool Calling') is the capability of an LLM to recognize when it needs external resources and output a structured JSON request to
Function calling (tool use) lets a model invoke your code: you describe available functions with names, parameters, and JSON schemas; the model decides when a request needs one and emits a structured call; your runtime executes it and returns results for the model to continue with. Standards like MCP (Model Context Protocol) package this pattern into reusable tool servers.
Function calling is the bridge from language to action: the mechanism beneath every agent, plugin, and AI integration. It turns models from advisors into operators on your systems, which also makes tool design (clear schemas, least privilege, validation) a core safety surface.
From your function descriptions: names, parameter docs, and when-to-use guidance are effectively prompts. Ambiguous or overlapping descriptions cause wrong calls; treat tool specs as carefully as user-facing copy.
As safe as your tool design: validate every argument server-side, scope permissions minimally, gate sensitive actions behind approvals, and log all calls. Never trust model-emitted arguments as authorization.
MCP standardizes how tools are exposed: instead of bespoke schemas per app, a tool server speaks a common protocol any compliant model client can use, making integrations reusable across the ecosystem.