---
title: "MCP roots"
canonical: "https://canmyagentuse.com/features/mcp-roots"
contentKind: "feature"
locale: "en"
description: "Provide filesystem or workspace roots to an MCP server. Compatibility evidence is tracked independently from other MCP capabilities."
llmSummary: "MCP roots is an atomic MCP capability. Support for another MCP primitive does not imply this capability."
publishedAt: "2026-08-28T00:00:00.000Z"
updatedAt: "2026-08-28T00:00:00.000Z"
verifiedAt: "2026-08-28"
tags: ["interfaces","mcp"]
---

# MCP roots

MCP roots is an atomic MCP capability. Support for another MCP primitive does not imply this capability.

- HTML: https://canmyagentuse.com/features/mcp-roots
- JSON: https://canmyagentuse.com/api/v1/features/mcp-roots.json
- Markdown: https://canmyagentuse.com/features/mcp-roots.md

Terminology basis: **MCP 2026-07-28** — https://modelcontextprotocol.io/specification/2026-07-28.

## Current support at a glance

MCP roots: 3 supported, 0 partial, 3 unsupported, 25 unreviewed across 31 cataloged products.

- Reviewed current products: 6 of 31
- Supported: 3
- Partial: 0
- Unsupported: 3
- Unreviewed: 25
- Not applicable: 0

Unknown or unreviewed means insufficient published evidence; it does not mean unsupported.

Provide filesystem or workspace roots to an MCP server.

This row remains unknown for a product until exact, dated evidence covers this capability rather than MCP generally.

## Catalog context

- Category: [interfaces](/categories/interfaces.md)
- Specification: [mcp](/specs/mcp.md) — revision 2026-07-28
- Aliases: roots/list
- Family: [Model Context Protocol](/features/mcp.md)
- Siblings: [MCP Apps](/features/mcp-apps.md), [MCP cancellation](/features/mcp-cancellation.md), [MCP client role](/features/mcp-client-role.md), [MCP elicitation](/features/mcp-elicitation.md), [MCP legacy HTTP and SSE](/features/mcp-legacy-sse.md), [MCP list-changed notifications](/features/mcp-list-changed.md), [MCP logging](/features/mcp-logging.md), [MCP OAuth authorization](/features/mcp-oauth.md), [MCP progress notifications](/features/mcp-progress.md), [MCP prompt-list notifications](/features/mcp-prompts-list-changed.md), [MCP prompts](/features/mcp-prompts.md), [MCP Registry metadata](/features/mcp-registry.md), [MCP resource subscriptions](/features/mcp-resource-subscriptions.md), [MCP resources](/features/mcp-resources.md), [MCP revision compatibility](/features/mcp-revision.md), [MCP sampling](/features/mcp-sampling.md), [MCP server instructions](/features/mcp-server-instructions.md), [MCP server role](/features/mcp-server-role.md), [MCP stdio transport](/features/mcp-stdio.md), [MCP Streamable HTTP](/features/mcp-streamable-http.md), [MCP task listing](/features/mcp-task-listing.md), [MCP tasks](/features/mcp-tasks.md), [MCP tools](/features/mcp-tools.md)

## Compatibility assertions

Unknown means insufficient published evidence; it does not mean unsupported.

### ChatGPT (web)

- Harness: [ChatGPT](/harnesses/chatgpt-web.md)
- current: **Unknown**
- preview: **Unknown**

### Claude (web)

- Harness: [Claude](/harnesses/claude-web.md)
- current: **Unknown**
- preview: **Unknown**

### Gemini (web)

- Harness: [Gemini](/harnesses/gemini-web.md)
- current: **Unknown**
- preview: **Unknown**

### Copilot (web)

- Harness: [Copilot](/harnesses/copilot-web.md)
- current: **Unknown**
- preview: **Unknown**

### Grok (web)

- Harness: [Grok](/harnesses/grok-web.md)
- current: **Unknown**
- preview: **Unknown**

### Grok Bot (desktop)

- Harness: [Grok Bot](/harnesses/grok-bot-desktop.md)
- current: **Unknown**

### Perplexity (web)

- Harness: [Perplexity](/harnesses/perplexity-web.md)
- current: **Unknown**
- preview: **Unknown**

### Le Chat (web)

- Harness: [Le Chat](/harnesses/le-chat.md)
- current: **Unknown**
- preview: **Unknown**

### Devin (web)

- Harness: [Devin](/harnesses/devin-web.md)
- current: **Unknown**
- preview: **Unknown**

### Replit Agent (web)

- Harness: [Replit Agent](/harnesses/replit-agent.md)
- current: **Unknown**
- preview: **Unknown**

### ChatGPT (desktop)

- Harness: [ChatGPT](/harnesses/chatgpt-desktop.md)
- current: **Unknown**
- preview: **Unknown**

### Claude (desktop)

- Harness: [Claude](/harnesses/claude-desktop.md)
- current: **Unknown**
- preview: **Unknown**

### Cursor (desktop)

- Harness: [Cursor](/harnesses/cursor.md)
- current: **Supported**
  - Target: dated-documentation — current Cursor MCP documentation observed 2026-08-28; observed 2026-08-28
  - Environment: local-default
  - Constraint (runtime): the documentation confirms the capability but does not enumerate Cursor's root selection or change-notification policy
  - Evidence: [Cursor — Model Context Protocol](https://prod.cursor.com/docs/mcp) — documented; observed 2026-08-28
  - Qualification note 3: Evidence checked 2026-08-28: Cursor's protocol capability table explicitly lists MCP Roots as supported server-initiated inquiries into URI or filesystem boundaries.
- preview: **Unknown**

### OpenWork Desktop (desktop)

- Harness: [OpenWork Desktop](/harnesses/openwork-desktop.md)
- current: **Unknown**

### Copilot Chat (desktop)

- Harness: [Copilot Chat](/harnesses/vscode-copilot.md)
- current: **Unknown**
- preview: **Unknown**

### Chrome WebMCP origin trial (desktop)

- Harness: [Chrome WebMCP origin trial](/harnesses/chrome-webmcp-preview.md)
- current: **Unknown**

### Windsurf (desktop)

- Harness: [Windsurf](/harnesses/windsurf.md)
- current: **Unknown**
- preview: **Unknown**

### Zed Agent (desktop)

- Harness: [Zed Agent](/harnesses/zed-agent.md)
- current: **Unsupported**
  - Target: dated-documentation — Zed source commit e3adf43f37d7 observed 2026-08-28; observed 2026-08-28
  - Environment: local-default
  - Constraint (host-role): status is scoped to Zed Agent's direct MCP client initialization
  - Evidence: [Zed source — MCP protocol client at e3adf43](https://github.com/zed-industries/zed/blob/e3adf43f37d7a2a9c165a78b255d293b0848d2d0/crates/context_server/src/protocol.rs) — documented; observed 2026-08-28
  - Qualification note 6: Evidence checked 2026-08-28: Zed's pinned MCP initialization explicitly sets the client Roots capability to none.
- preview: **Unknown**

### Continue (desktop)

- Harness: [Continue](/harnesses/continue.md)
- current: **Unsupported**
  - Target: dated-documentation — Continue source commit 5522c6f44ca0 observed 2026-08-28; observed 2026-08-28
  - Environment: local-default
  - Constraint (host-role): status is scoped to Continue's desktop extension MCP client
  - Evidence: [Continue source — MCP desktop client at 5522c6f](https://github.com/continuedev/continue/blob/5522c6f44ca0ac3528b37244818fbfa39b5af470/core/context/mcp/MCPConnection.ts) — documented; observed 2026-08-28
  - Qualification note 5: Evidence checked 2026-08-28: Continue's pinned desktop MCP client initializes with an empty client-capabilities object, so it does not advertise or handle the Roots capability.
- preview: **Unknown**

### Cline (desktop)

- Harness: [Cline](/harnesses/cline.md)
- current: **Unsupported**
  - Target: dated-documentation — Cline source commit 27350f243c2a observed 2026-08-28; observed 2026-08-28
  - Environment: local-default
  - Constraint (host-role): status is scoped to Cline's desktop extension MCP client
  - Evidence: [Cline source — MCP desktop client at 27350f2](https://github.com/cline/cline/blob/27350f243c2a31c97b4e38fa700e009a2f61adae/apps/vscode/src/services/mcp/McpHub.ts) — documented; observed 2026-08-28
  - Qualification note 4: Evidence checked 2026-08-28: Cline's pinned desktop MCP client initializes with an empty client-capabilities object, so it does not advertise or handle the Roots capability.
- preview: **Unknown**

### JetBrains AI (desktop)

- Harness: [JetBrains AI](/harnesses/jetbrains-ai.md)
- current: **Unknown**
- preview: **Unknown**

### Warp (desktop)

- Harness: [Warp](/harnesses/warp.md)
- current: **Unknown**
- preview: **Unknown**

### Claude CLI (cli)

- Harness: [Claude CLI](/harnesses/claude-cli.md)
- current: **Supported**
  - Target: dated-documentation — current Claude Code MCP documentation; observed 2026-08-28
  - Environment: local-default
  - Constraint (runtime): the documented root is the directory Claude Code was launched from
  - Evidence: [Anthropic — Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp) — documented; observed 2026-08-28
  - Qualification note 1: Evidence checked 2026-08-28: Claude Code documents the MCP `roots/list` request returning the directory from which Claude Code was launched.
- preview: **Unknown**

### ChatGPT CLI (cli)

- Harness: [ChatGPT CLI](/harnesses/chatgpt-cli.md)
- current: **Unknown**
- preview: **Unknown**

### Codex CLI (cli)

- Harness: [Codex CLI](/harnesses/codex-cli.md)
- current: **Unknown**
- preview: **Unknown**

### OpenCode (cli)

- Harness: [OpenCode](/harnesses/opencode.md)
- current: **Unknown**
- preview: **Unknown**

### Gemini CLI (cli)

- Harness: [Gemini CLI](/harnesses/gemini-cli.md)
- current: **Supported**
  - Target: release — Gemini CLI v0.57.0; observed 2026-08-28
  - Environment: local-default
  - Constraint (runtime): roots are derived from the CLI workspace context and change notifications follow workspace-directory updates
  - Constraint (protocol-revision): evidence covers the pre-2026 roots/list request flow implemented by Gemini CLI v0.57.0
  - Evidence: [Google Gemini CLI v0.57.0 — MCP client implementation](https://github.com/google-gemini/gemini-cli/blob/6b0ae9a6c37aa117cc8b070d8b41c5bb4fa6d253/packages/core/src/tools/mcp-client.ts) — documented; observed 2026-08-28
  - Qualification note 2: Evidence checked 2026-08-28: Gemini CLI v0.57.0 advertises the roots capability, handles `roots/list` from its current workspace directories, and sends `roots/list_changed` when those directories change.
- preview: **Unknown**

### Aider (cli)

- Harness: [Aider](/harnesses/aider.md)
- current: **Unknown**
- preview: **Unknown**

### Goose (cli)

- Harness: [Goose](/harnesses/goose.md)
- current: **Unknown**
- preview: **Unknown**

### Copilot CLI (cli)

- Harness: [Copilot CLI](/harnesses/copilot-cli.md)
- current: **Unknown**
- preview: **Unknown**

### Amp (cli)

- Harness: [Amp](/harnesses/amp-cli.md)
- current: **Unknown**
- preview: **Unknown**
