Skip to content

[Proposal] Add visibility / 'hidden': true attribute for confidential prompts and server instructions #3232

Description

@vmskonakanchi

Problem Statement

When building enterprise or commercial MCP servers, server authors often need to supply proprietary workflow instructions and multi-step domain rules to the client LLM.

Currently, all instructions, prompts, and tool metadata sent in InitializeResult or DiscoverResult are transmitted as plain text and displayed in client application UIs (such as Claude Desktop settings, prompt pickers, or network inspection logs). This forces server authors to choose between exposing proprietary intellectual property (system prompts) to end-users or running expensive server-side proxy LLMs.

Proposed Solution

Introduce an optional visibility / hidden metadata attribute to instructions, Prompt, and Tool schemas in the MCP specification:

{
  "jsonrpc": "2.0",
  "result": {
    "instructions": "Proprietary financial analysis rules...",
    "visibility": "assistant_only",
    "hidden": true
  }
}

Client Host Requirements

  • LLM Context: When hidden: true or visibility: "assistant_only" is declared, the client application passes the instruction string into the LLM context window as normal.
  • UI Redaction: The client application MUST redact or suppress the prompt text in user-facing settings, log inspectors, and prompt pickers (e.g., displaying [Protected Server Instruction] instead of plaintext).

Use Cases

  1. Commercial MCP servers protecting proprietary prompt IP.
  2. Enterprise security compliance preventing users from inspecting internal governance prompts.
  3. Reducing UI clutter in client host settings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions