# Protocol Features This page covers cross-cutting MCP protocol features. ## MCP Primitives The MCP protocol defines three core primitives that servers can implement: | Primitive | Control | Description | Example Use | |-----------|-----------------------|-----------------------------------------------------|------------------------------| | Prompts | User-controlled | Interactive templates invoked by user choice | Slash commands, menu options | | Resources | Application-controlled| Contextual data managed by the client application | File contents, API responses | | Tools | Model-controlled | Functions exposed to the LLM to take actions | API calls, data updates | ## Server Capabilities MCP servers declare capabilities during initialization: | Capability | Feature Flag | Description | |--------------|------------------------------|------------------------------------| | `prompts` | `listChanged` | Prompt template management | | `resources` | `subscribe`
`listChanged`| Resource exposure and updates | | `tools` | `listChanged` | Tool discovery and execution | | `logging` | - | Server logging configuration | | `completions`| - | Argument completion suggestions | ## Pagination For pagination details, see: - Server-side implementation: [Building Servers - Pagination](server.md#pagination-advanced) - Client-side consumption: [Building Servers - Client-side Consumption](server.md#client-side-consumption)