A developer is building an MCP server that exposes a 'getOrderStatus' tool for a Copilot Studio agent. The tool takes an order ID (string, required) and a customer email (string, optional) as inputs and returns the order status. The developer must write the tool schema so the agent understands how to call it. Which JSON structure correctly defines this tool in the MCP server manifest?
Select an answer to reveal the explanation.
Short Explanation and Infographic
MCP tool schemas follow the same JSON Schema draft that OpenAI and other LLM-calling standards use — name, description, and inputSchema with properties and required array. Get the field names wrong and the agent will be as confused as a tourist reading a menu in the wrong language.
Full explanation below image
Full Explanation
The Model Context Protocol specifies that tool schemas use a standard JSON structure with these mandatory fields: name (the tool identifier the agent uses to call it), description (natural language explanation that helps the AI decide when to use the tool), and inputSchema (a JSON Schema object defining the parameters). The inputSchema uses the standard JSON Schema properties object for parameter definitions and a required array listing which parameter names are mandatory. Optional parameters are simply omitted from the required array.
This structure allows the Copilot Studio agent (and its underlying language model) to understand the tool's purpose from the description and construct correct calls by matching the JSON Schema — exactly as function calling works in modern LLM APIs.
Option A is incorrect because it uses 'tool' instead of 'name', uses a flat array for parameters instead of a JSON Schema properties object, and lacks a description field. The MCP protocol would reject or misinterpret this schema.
Option C is incorrect because it uses non-standard field names (functionName, inputs, mandatory) and non-standard type notation (string? for optional is not valid JSON Schema). The agent's tool discovery mechanism would not recognize this structure.
Option D is incorrect because it uses 'action' instead of 'name' and uses a non-standard schema structure that doesn't follow JSON Schema conventions. Required/optional status is not specified as a per-property boolean in JSON Schema — it is listed in a top-level required array.
Exam tip: MCP tool schemas follow JSON Schema. Remember the four key fields: name, description, inputSchema (with properties and required). The description field is especially important — it is how the AI decides which tool to call in orchestration mode.