Building Model Context Protocol servers and related tooling for agents can be hard. Different clients support different part of the MCP spec to varying degrees. Even if an agent claims support there are often caveats. On top of this there's no universal standard for defining, including, and loading context for agents.
We're tracking support for features across AI agents but things move very quickly, we'll do our best to keep this up to date. Contributions welcome at @jamesmoss/agentcompat.com.
| Feature | Claude Code | Cursor | VSCode (Copilot) | Codex |
|---|---|---|---|---|
MCP Spec Core Model Context Protocol specification features | ||||
Transport Specifies how messages are transmitted (stdio, HTTP streaming, custom transports). | ✓ | ✓ | ✓ | ✓ |
Authorization Provides OAuth-based authentication/authorization for HTTP transports. | ✓ | ✓ | ✓ | ✓ |
Resources Servers expose read-only contextual data (files, database records, APIs) that clients/models can fetch. | ✓ | ✗* | ✓ | ✓ |
Prompts Servers define reusable prompt templates with parameters that clients/models can list and invoke. | ✓ | ✗* | ◐ | ✓ |
Tools Servers expose structured operations or actions (functions) that clients/models can call. | ✓ | ✓ | ✓ | ✓ |
Logging Servers can emit structured log messages back to the client for visibility and debugging. | ✓ | ✓ | ✓ | ✓ |
Completion (Autocomplete) Servers can provide argument autocompletion for prompts, tools, or other features when requested by the client. | ✓ | ◐ | ✓ | ✓ |
Progress Notifications Servers can send progress updates during long-running operations so clients can display intermediate status. | ◐* | ◐ | ✓ | ✓ |
Cancellation Clients can request cancellation of an in-flight server operation if it's no longer needed. | ✓ | ◐ | ✓ | ✓ |
Error Reporting Servers return structured errors with codes and messages when operations fail, enabling consistent client handling. | ✓ | ✓ | ✓ | ✓ |
Experimental Features Servers can expose experimental or non-standard features under a controlled namespace for testing. | ✓ | ◐ | ◐ | ◐ |
Sampling Servers can request clients to generate completions (LLM outputs) under user control. | ✓ | ◐ | ✓ | ✓ |
Roots Clients expose filesystem roots or directories so servers know where they can safely operate. | ✓ | ◐ | ✓ | ✓ |
Elicitation Clients can prompt the user for structured input during workflows triggered by servers. | ✗* | ◐ | ✓ | ◐ |
Memory Methods for loading and parsing broader context and instructions | ||||
Context Management Methods for managing and updating the context of the agent. | ✓ | ✓ | ✓ | ✓ |
Reference other files Methods for referencing other files within context. | ✓ | ✓ | ✓ | ✓ |
Extensions Support for enhancing and customizing agents. | ||||
Hooks Lifecycle events for the agent. | ✓ | ✓* | ✗ | ✗ |
Slash commands Re-usable commands that can be manually triggered by the user. | ✓ | ✓ | ✓ | ✗ |
Subagents Define specialized AI subagents for task-specific workflows. | ✓ | ✗ | ✗ | ✗ |
Custom chat modes Create specialist AI agents that enable you to tailor the chat experience for specific tasks. | ✗ | ✗ | ✓ | ✗ |
Plugins A method of bundling together commands, agents and hooks | ✓ | ◐* | ✓* | ✗ |
Marketplace Publish and share extensions with the community | ✓ | ◐* | ✓* | ✗ |
System prompt override Replace the system prompt for the agent | ✓ | ◐ | ◐* | ✗ |
Other What else can the agent do? | ✓ | ◐ | ✓ | ◐ |