[FEATURE] Keep an MCP server's tools while excluding its resources from the @ picker

Status Open
Reported on v2.1.245
Maintainer reply None cached
Activity 0 comments · opened Aug 25, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet — the closest

open issues are #83285 and #82823 (server-level opt-in/opt-out for connectors), #73886 (MCP
resources outrank files when fileSuggestion is a custom command) and #77342 (how a selected
resource is displayed). None of them asks for resources to be separable from tools in the @
picker, which is what this request is about.

  • [x] This is a single feature request (not multiple features)

Problem Statement

The @ picker mixes MCP resources and resource templates into the same list as project files, and
there is no granularity between "all of a server" and "none of it". A single connector that
publishes resource templates makes @ unusable as a file picker: typing @ and a couple of
characters buries the repository's files under URI-shaped entries from a server whose tools I
actually want to keep.

A representative session in a Go repository with a handful of connectors enabled:

@go
  + go.mod
  + go.sum
  ◇ <connector>:site:///            – Retrieves site metadata for a given siteId and o…
  ◇ <connector>:page:///sites/      – Lists and retrieves site pages for a given siteI…
  ◇ <connector>:teams:///chats/     – Fetches the full content of a chat message given a ch…
  + internal/migrations/00001_….sql

None of those resource templates will ever be @-mentioned while writing Go. The tools from the
same server occasionally are useful, so disabling the server is not the trade I want to make.

Verified against the 2.1.245 binary: the @ suggestion builder is handed
{mcpResources, mcpResourceTemplates} taken straight from mcp.resourceTemplates and the
connected clients, and the only thing that ever empties them is a server being absent from the
session. There is no filter between "the server is connected" and "its resources appear in @".

Proposed Solution

A way to keep a server's tools while excluding its resources from the @ picker. Any of these
would solve it; the first is the smallest:

  1. A user-scope setting in ~/.claude/settings.json, e.g.

``jsonc
"mcpResourcesInFileMention": false // default true, preserves today's behavior
``

  1. The same, per server, so a documentation-style server can stay searchable while a

productivity connector's templates are hidden:

``jsonc
"mcpResourcesInFileMention": { "default": false, "allow": ["some-docs-server"] }
``

  1. Alternatively, keep resources out of the bare @ list and surface them only once the query

names a server — @servername: already scopes the list, so plain @ could mean files and
agents, and @server: could mean that server's resources. This needs no new setting.

Alternative Solutions

All existing escapes are server-level, so each one also drops the tools I want:

  • /mcp disable <server> — works, but writes disabledMcpServers into the project entry of

~/.claude.json, so it has to be repeated in every repository, and it takes the server's tools
down with its resources. (This is the subject of #83285 / #82823.)

  • "disableClaudeAiConnectors": true in ~/.claude/settings.json, or

ENABLE_CLAUDEAI_MCP_SERVERS=0 — user-scope and effective, but all-or-nothing across every
account connector, tools included.

  • claude mcp remove — not applicable to account-pushed connectors, and destructive for local

ones.

Filtering by typing more characters doesn't help either: the resource descriptions are long
English sentences, so short queries fuzzy-match them broadly.

Priority

Medium - Would be very helpful

Feature Category

Interactive mode (TUI)

Use Case Example

  1. A connector is enabled on the account because its tools are genuinely useful — issue tracking,

docs lookup, chat search.

  1. I open a code repository and work there for hours; every @ is a file reference.
  2. The connector publishes resource templates, so every @ query returns a mix of files and

URIs, and the file I want is somewhere below them.

  1. With the setting above I'd turn resources off for the picker once, keep the tools, and get a

file picker that only ranks files.

Additional Context

  • Claude Code 2.1.245, macOS (arm64).
  • The behavior is not connector-specific: it follows from resource templates existing at all, so

it applies to any current or future server that publishes them.

  • Related but distinct: #83285 and #82823 want per-project/per-server control over whether a

connector loads; this asks for control over what part of a loaded server reaches the @
picker. Solving either does not solve the other.

View original on GitHub ↗