github / github/github-mcp-server

Hide write-oriented prompts and instructions when write tools are filtered

Open
#2,228 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
33k
Forks
5k
Avg merge
2d 1h
Merged PRs (30d)
52

Description

## Problem
Tool filtering can remove write capabilities while prompts and server instructions continue to advertise those same actions. In read-only or explicitly filtered configurations, the server can still expose prompts that instruct the client to create issues, assign Copilot, or open pull requests.

## Why now
This server builds instructions and prompts dynamically as part of its safety surface. If filtered capabilities remain documented as available, clients receive contradictory guidance and can plan actions the server has already hidden.

## Version under test
- Commit: `b1575edfefde09e3cf7c805aea79a92131271659` (`origin/main` on 2026-03-17)
- Runtime: Go `1.25.7`, macOS `darwin/arm64`

## Minimal repro
1. Build an inventory in read-only mode or with write tools excluded.
2. Inspect `AvailableTools`, `AvailablePrompts`, and generated server instructions.
3. Compare the filtered tool set with the exposed prompts/instruction text.

## Expected behavior
If a write tool is hidden by policy, related prompts and write-oriented instructions should disappear or clearly mark the capability as unavailable.

## Actual behavior
Prompt availability is filtered only by toolset/feature flags, and instruction generation does not verify that the referenced write tools survived read-only or exclude-tool filtering.

## Code paths
- `pkg/inventory/instructions.go`
- `pkg/inventory/prompts.go`
- `pkg/github/toolset_instructions.go`
- `docs/toolsets-and-icons.md`

## Validation target
Read-only and explicitly filtered inventories should not expose prompts or instruction text that imply unavailable write actions.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.