MCP Client Feature Support

Note that MCP is evolving rapidly, and some features are still being implemented across clients.

Summary

The Model Context Protocol ecosystem is maturing quickly, but feature support varies significantly across clients. Claude Desktop and Nanobot currently offer the most comprehensive feature sets, while other clients like Cline, Cursor, and Windsurf focus primarily on tools and resources. Notably, Sampling and Elicitations remain largely unimplemented across most clients, and OAuth 2 authentication faces significant adoption challenges due to Dynamic Client Registration (DCR) requirements.

Feature Support Matrix

Client Tools Resources (Templates/Lists/Completions) Prompts (w/ Resources/Completions) Elicitations Sampling Progress Updates Changes/Subscriptions MCP-UI (HTML/Remote DOM/iframe) OAuth 2
Claude Desktop ✅ Full ✅ / ✅ / ⚠️ ✅ Manual / ⚠️ ❌ Planned ❌ Not Yet ✅ Yes ⚠️ Limited ⚠️ Partial ❌ API Keys Only
Goose ✅ Full ✅ / ✅ / ⚠️ ✅ Yes / ⚠️ ❌ Not Yet ⚠️ Unknown ⚠️ Unknown ⚠️ Unknown ✅ Growing ⚠️ Unknown
Nanobot ✅ Full ✅ / ✅ / ✅ ✅ Full / ✅ ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ First-class ⚠️ Configurable
Postman ✅ Full ✅ / ⚠️ / ⚠️ ✅ Yes / ⚠️ ❌ Not Yet ⚠️ Testing Only ⚠️ Testing ❌ Not Applicable ❌ Not Applicable ✅ Testing/Dev
MCP Inspector ✅ Test ✅ / ✅ / ⚠️ ✅ Test / ⚠️ ✅ v0.16.2+ ⚠️ Testing Only ⚠️ Testing ⚠️ Testing ❌ Not Applicable ❌ Not Applicable
Cline (VS Code) ✅ Full ✅ / ✅ / ⚠️ ⚠️ Limited / ❌ ❌ Requested ❌ Requested ⚠️ Unknown ✅ Tool/Resource ❌ No ⚠️ Via Servers
Cursor IDE ✅ Full ✅ / ✅ / ⚠️ ⚠️ Limited / ❌ ❌ Not Yet ❌ Not Yet ⚠️ Unknown ⚠️ Unknown ❌ No ⚠️ Via Servers
Windsurf ✅ Full ✅ / ✅ / ⚠️ ⚠️ Limited / ❌ ❌ Not Yet ❌ Not Yet ⚠️ Unknown ⚠️ Unknown ❌ No ⚠️ Via Servers
Claude.ai ✅ Remote ✅ / ⚠️ / ❌ ✅ Remote / ❌ ❌ Planned ❌ Not Yet ⚠️ Unknown ⚠️ Limited ⚠️ Unknown ✅ Remote Only

Legend:

  • ✅ Full/Comprehensive support
  • ⚠️ Partial/Limited/In Development
  • ❌ Not supported/Not yet implemented
  • Unknown: No clear documentation found

Detailed Feature Analysis

1. Tools (Including Embedded Resources, Linked Resources, Annotations, Structured Output)

Status: Widely supported across all major clients

Most MCP clients provide full support for tools, which are specific actions that servers expose to clients, functioning like built-in functions or APIs that an LLM can call during conversations.

Key Capabilities by Client:

  • Claude Desktop: Provides comprehensive support for MCP tools with full support for resources, allowing attachment of local files and data
  • Cline: Can create and add tools through natural language (for example, "add a tool that searches the web") and share custom MCP servers with others
  • Postman: Enables users to create MCP requests to interact with MCP servers and use MCP requests to test and evaluate different servers, with tools, prompts, and resources auto-loaded from the server

Embedded/Linked Resources & Annotations: These advanced tool features are specified in the MCP protocol but implementation details vary. Most clients support basic tool execution but may not fully implement the more advanced resource embedding or annotation capabilities.

Structured Output: Tools can return structured results by default if return type annotations are compatible. Implementation varies by server SDK rather than client.

2. Resources (Including Resource Templates, Template Lists, Template Completions)

Status: Core functionality broadly supported; advanced features partially implemented

Resources provide a way to give LLMs access to data including database records, file contents, API responses, images, and more, similar to making an HTTP GET request.

Resource Templates: Allow you to define dynamic resources using URI patterns, letting you create resources whose URIs and content can be generated based on parameters.

Implementation by Client:

  • Claude Desktop: Resources and prompts require manual addition by clicking the plus sign and selecting MCP Server, then Prompt/References - they are not automatically triggered like tools
  • Nanobot: Comprehensive support for all resource types as it was built specifically for the MCP ecosystem
  • IDE Clients (Cline/Cursor/Windsurf): Support basic resources and templates, but template completions may be limited

Template Lists & Completions: These allow clients to autocomplete resource URIs dynamically. Support is patchy - more mature clients like Claude Desktop and Nanobot support these, while IDE extensions have varying levels of implementation.

3. Prompts (Including Resources in Messages, Prompt Completions)

Status: Supported but often requires manual activation

Prompts in MCP are structured templates that servers provide to standardize interactions with language models, defining reusable message sequences and workflows that help guide LLM behavior.

Key Challenges:

  • In Claude Desktop, prompts need to be added manually by clicking the plus sign and selecting MCP Server then Prompt/References
  • When using MCP prompts with Claude Desktop, users send a custom prompt along with a message using the plus menu, and if the prompt accepts an argument, they will be prompted for it when adding

Prompt Completions: Limited support across clients. This feature allows autocomplete of prompt names/parameters but is not widely implemented yet.

4. Elicitations

Status: Emerging feature, minimal client support

Elicitations is an incoming MCP feature that enables MCP servers to request additional information from users through the client, for things like confirmation of critical actions, contextual information gathering, and key decisions.

Current Support:

  • MCP Inspector: Added Elicitation support in release 0.16.2
  • Nanobot: Nanobot was written from the ground up to support the MCP ecosystem and fully leverages MCP features like tools, prompts, sampling, and elicitation
  • Claude Desktop: Planned but not yet implemented
  • Other Clients: Cline has an active discussion requesting support for elicitation, but most clients don't support it yet

5. Sampling

Status: Limited implementation, significant potential

Sampling allows an MCP client to run model completions on behalf of a server, enabling the server to offload AI reasoning without directly integrating or paying for a model API.

Architecture: The server initiates a sampling request to the client, the client asks the user to approve or edit the request, runs the task through the model (like Claude), and the user reviews the AI's response before it's sent back to the server.

Current Support:

  • Claude Desktop: The Claude desktop app still does not support sampling
  • Nanobot: Full support as a core feature
  • MCP Inspector: Testing capabilities only
  • Most IDE Clients: Not yet implemented, though there are requests for this feature

Why It Matters: Sampling is particularly powerful for agentic workflows where a tool on the server needs model-generated output to complete its task, without every MCP server needing its own AI model connection.

6. Progress Updates for Long Running Tasks

Status: Supported in server SDKs, client implementation varies

Progress updates allow tools to report progress with ctx.report_progress, sending notifications with progress, total, and message parameters.

Implementation:

  • Claude Desktop: Supports progress notifications
  • Spring AI MCP Client: The @McpProgress annotation handles progress notifications for long-running operations, allowing handlers to track progress for specific servers
  • Nanobot: Full support
  • IDE Clients: Implementation varies and is not well-documented

7. Changes & List Changes (Tools, Resources, Prompts, Subscriptions)

Status: Partially implemented, depends on transport mechanism

When a server's tools, resources, or prompts change, clients can automatically receive notifications and update internal state.

Subscription Support:

  • Spring AI provides @McpToolListChanged and @McpResourceListChanged annotations to handle notifications when the server's tool or resource lists change
  • Nanobot: Full support for change notifications
  • Claude Desktop: Limited support for change detection
  • Cline: Supports tools and resources but change notification support is unclear

Note: Effective change notifications require stateful connections, which work better with the newer Streamable HTTP transport rather than stdio.

8. MCP-UI (HTML, Remote DOM, iframes)

Status: Emerging standard with growing but inconsistent support

MCP-UI extends the Model Context Protocol to enable AI agents to return fully interactive UI components, supporting three delivery methods: inline HTML embedded via srcDoc in sandboxed iframes, remote resources loaded in sandboxed iframes, and Remote DOM using Shopify's remote-dom library.

Current Support:

  • Nanobot: Has rich and deep support for MCP-UI as first-class functionality, with the @mcp-ui/client component automatically detecting resource type and rendering appropriate components
  • Goose: Starting from version 1.3.0, users can add MCP-UI as an extension, with support still in early days and evolving
  • Claude Desktop: Partial support, details limited
  • IDE Clients (Cline/Cursor/Windsurf): No current support

UIResourceRenderer Component: This is a React component from @mcp-ui/client that automatically detects the resource's mimeType and contentType to determine the appropriate rendering method, providing a unified API for all resource types. It's not a client itself but a library for building MCP-UI clients.

Security: All content types execute within sandboxed iframe environments to ensure host application security while maintaining interactive capabilities.

9. OAuth 2 Authentication

Status: Specification exists but implementation is challenging

MCP auth implementations must implement OAuth 2.1 with appropriate security measures for both confidential and public clients, and should support the OAuth 2.0 Dynamic Client Registration Protocol.

Critical Challenge: MCP clients have no standardized way to handle client IDs or client secrets and need to register themselves dynamically as OAuth clients, but most OAuth providers (Google, GitHub, Microsoft Azure AD) do not support Dynamic Client Registration.

Current Reality:

  • Many companies claiming to support "OAuth" for their MCP servers are actually doing something much simpler, with users obtaining personal access tokens separately and passing them directly in headers
  • Remote MCP Servers: Claude.ai's integration implementation uses the old deprecated SSE transport mechanism and the 2024-03-26 version of the auth spec, which may delay ecosystem standardization
  • Cloudflare: Provides an OAuth Provider Library that implements the provider side of OAuth 2.1, allowing servers to handle authorization themselves or integrate with third-party providers like Auth0, Stytch, or WorkOS
  • Local Servers: Typically use API keys or environment variables rather than OAuth

Workaround: The community has developed OAuth proxies as a workaround since most OAuth providers don't support Dynamic Client Registration, with companies using the Cloudflare Workers proxy pattern or building similar solutions.


Client-Specific Deep Dives

Claude Desktop

Strengths:

  • Comprehensive tools and resources support
  • Desktop Extensions (.mcpb files) make installation simple
  • Growing ecosystem with official Anthropic backing

Limitations:

  • Does not support sampling
  • Prompts and resources require manual addition rather than automatic discovery
  • Local servers use API keys/environment variables, not OAuth

Nanobot

Strengths:

  • Built from the ground up to support the MCP ecosystem with full support for tools, prompts, sampling, elicitation and more, plus first-class MCP-UI support
  • Production-ready with PostgreSQL backend
  • Can be deployed anywhere and embedded in applications

Target Audience: Developers building custom MCP-powered agents and applications

Cline (VS Code Extension)

Strengths:

  • Open-source with full control over API keys and costs, supporting multiple AI providers
  • Built-in MCP marketplace for easy server installation
  • Autonomous coding agent capable of creating/editing files, running commands, with MCP features supported including resources and tools

Limitations:

  • Sampling and elicitation features have been requested but are not yet implemented
  • No MCP-UI support
  • Prompts support is limited

Cursor & Windsurf IDEs

Strengths:

  • Polished AI coding experiences
  • MCP support for tools and resources
  • Both support MCP server connections via SSE and stdio transports

Limitations:

  • No MCP-UI support
  • Limited prompt support
  • No sampling or elicitations
  • Windsurf has had some issues with MCP tool execution compared to Cursor in testing

Postman

Use Case: Postman's MCP support is focused on testing and evaluation, allowing developers to create MCP requests to experiment with, test, and evaluate different MCP servers before exporting configurations to production clients

Strengths:

  • Tools, prompts, and resources are auto-loaded from servers and displayed in a structured interface, with the ability to paste MCP config JSON to generate working requests instantly
  • Can generate MCP servers from 100,000+ public APIs
  • Good for development and debugging

Limitations: Not intended as a production MCP client for end users

MCP Inspector

Purpose: An interactive developer tool for testing and debugging MCP servers

Capabilities:

  • Allows selecting transport for connecting to servers, customizing command-line arguments and environment for local servers
  • Added elicitation support in version 0.16.2
  • Essential for MCP server development

Note: This is a development tool, not a production client


Recommendations for Development Teams

For End Users / Consumer Applications:

  • Claude Desktop remains the most mature and supported option for general use
  • Nanobot is excellent if you need comprehensive MCP feature support including sampling and MCP-UI

For Developer Tools:

  • Cline offers the best open-source VS Code experience with strong community support
  • Cursor provides a more polished experience for teams willing to pay monthly fees
  • Postman is invaluable for MCP server testing and development

OAuth Considerations:

If OAuth is critical for your use case, be prepared for significant implementation complexity due to the Dynamic Client Registration requirement mismatch with existing OAuth infrastructure. Consider using API keys for local servers and OAuth proxies (like Cloudflare Workers) for remote servers.


Future Outlook

The MCP ecosystem is evolving rapidly:

  1. Elicitations are coming soon to more clients, enabling better user confirmation flows
  2. Sampling adoption is growing slowly but could unlock powerful agentic capabilities
  3. MCP-UI support is expanding, with more clients expected to implement interactive components
  4. OAuth improvements are being incorporated into the specification, with changes from discussions being added to newer versions
  5. Streamable HTTP transport is gradually replacing SSE, enabling better stateful features

For developers planning MCP integrations, I recommend starting with tools and resources (widely supported), being cautious about depending on sampling or elicitations (limited support), and using API keys for authentication unless you have dedicated infrastructure for OAuth proxy patterns.


Building MCP servers that integrate your systems with AI is what I do. If you need to make your internal services accessible to Claude or other AI tools through the Model Context Protocol, let's talk about what's actually feasible given current client support. Get in touch to discuss your requirements.