A database MCP server offers three things: an action that runs a query, the text of the database schema for context, and a reusable template containing few-shot examples for writing queries. Which mapping to server primitives is correct?
Select an answer to reveal the explanation.
Short Explanation
Ask what each thing does: does it act, inform, or guide? Running a query acts, so it's a tool; the schema informs, so it's a resource; the few-shot template guides the conversation, so it's a prompt. That pattern sorts nearly every primitive question you'll see.
Full Explanation
MCP defines three server primitives. Tools are executable functions that perform actions such as file operations, API calls or database queries. Resources are data sources that provide contextual information, such as file contents, records or a database schema, and are addressed by URI. Prompts are reusable templates that structure interactions with a language model, such as system prompts or few-shot examples. The architecture documentation uses this database server as its own example: tools for querying, a resource containing the schema, and a prompt with few-shot examples. Mapping the query action to a prompt fails because prompts produce messages rather than executing operations, and mapping the schema to a tool would turn passive context into an invocation. Swapping schema and template inverts their purposes: the schema is data the application can include as context, while the template is a user-selected starting point for an interaction. Treating the action as a resource is wrong because resources are read, not executed, and treating the template as a tool repeats the same confusion in reverse. Exam caveat: a tool can return a resource link or embedded resource in its result, but that does not change what the tool itself is. Operational check: classify each server offering by whether it acts, informs or templates, then confirm it appears under tools/list, resources/list or prompts/list respectively.