Platform

What are the MCP primitives?

MCP primitives let servers expose actions, data and reusable prompts, and let clients supply additional input for an operation.

A server may need to offer an action, supply background data or request information from the user. MCP gives these interactions different interfaces.

In the 2026-07-28 specification revision, sampling and roots are deprecated. They remain available during the deprecation window, but new implementations should not adopt them.

What does each primitive do?

Tools expose actions, resources expose data and prompts expose reusable message templates. Elicitation obtains additional user input.

The MCP architecture guide separates server-provided capabilities from the input a client can supply.

PrimitivePurposeExample
ToolsLet the client invoke a functionSend a message
ResourcesSupply context at a resource addressRetrieve a document
PromptsSupply reusable message templatesPrepare a structured request for analysis
ElicitationAsk the user for information needed by an operationRequest a missing choice
Sampling, deprecatedRequest model generation through the clientAsk a client to generate text
Roots, deprecatedDescribe filesystem locations relevant to the serverIdentify a project directory

A server implements the interfaces its integration needs. The client must support the capabilities it uses.

How do tools, resources and prompts differ in practice?

Choose according to whether the client needs to execute an operation, retrieve context or obtain a reusable prompt.

A hypothetical scheduling server could expose an appointment-booking tool. A resource could provide the venue's information. A prompt could prepare the messages used to compare appointment choices.

The client discovers the available server capabilities. Discovering a booking tool does not grant permission to book. The service still authorizes the operation.

A resource supplies content without establishing that the model should follow instructions embedded in it. The host controls which server content and actions it trusts.

What changes for sampling and roots?

For roots, the changelog recommends passing files or directories through tool parameters, resource addresses or server configuration. For sampling, it recommends integrating directly with model-provider APIs.

Deprecation does not mean a feature has already been removed. Existing integrations can still encounter these interfaces during the transition.

How does a server request more input?

A server returns an input-required result, and the client supplies the requested information when retrying the original operation.

The 2026-07-28 revision calls this the Multi Round-Trip Requests pattern. It changes how requests for elicitation, sampling and roots are delivered. The architecture guide still names elicitation/create as the method for requesting user input.

Which primitives do I use with Bird?

You can use Bird's MCP tools to send messages and inspect their recorded outcomes.

For email, email_send starts the operation and email_get retrieves the message with its aggregate delivery status. Recipient outcomes require the corresponding recipient details. The delivery-state answer explains why acceptance alone cannot establish delivery.

Your client's tool inventory supplies the names and input schemas for the connection you are using. A listed tool may still require permissions your grant lacks.

For instructions that connect several operations into a task, Bird's agent skills provide CLI procedures. A packaged procedure and an MCP prompt are separate interfaces; one does not imply the other is available.

Build on the same network.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Start with one channel.
Add the others when you're ready.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours:

Cursor