basitalisandhu

Claude MCP Allow — Development skill for Claude Code

Development community

Generate least-privilege Claude Code permission rules for MCP tools from their live annotations: readOnlyHint tools go to allow, everything else to ask, one mcpservertool rule each, never a glob.

How to install Claude MCP Allow

This entry records only its repository, not the path inside it, so there is no exact command to give. Open basitalisandhu/claude-mcp-allow and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Claude MCP Allow does

Generate least-privilege Claude Code permission rules for MCP tools from their live annotations: readOnlyHint tools go to allow, everything else to ask, one mcp__server__tool rule each, never a glob. Merges into settings files, prints a diff, and --check exits 1 when annotations drift. TypeScript CLI on npm.

Alternatives in Development

  • Agentsys — This automates everything else · 14 plugins · 43 agents · 30 skills · for Claude Code, OpenCode, Codex 655 ★
  • Arreflect — AgentRecall consolidation & reflection — periodic triage of recurring corrections; proposes rule changes, neve 370 ★
  • Af Ship — Check $ARGUMENTS for flags before doing anything else 187 ★

README

claude-mcp-allow: least-privilege Claude Code permission rules for MCP tools

Generate `permissions.allow` and `permissions.ask` rules for every MCP tool Claude Code can reach, from the annotations each server reports on `tools/list`: a tool that says `readOnlyHint: true` (and not `destructiveHint: true`) gets an `allow` rule, everything else gets an `ask` rule, one exact `mcp____` rule per tool and never a glob. `--write` merges the rules into the settings file you choose, `--diff` shows what would change, and `--check` reconnects later and exits 1 when a server's annotations have drifted from the rules you saved.

[![CI](https://github.com/basitalisandhu/claude-mcp-allow/actions/workflows/ci.yml/badge.svg)](https://github.com/basitalisandhu/claude-mcp-allow/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Node 20+](https://img.shields.io/badge/node-20%2B-blue.svg)](package.json)

The problem

Claude Code asks before every MCP tool call unless a permission rule covers it. Its permission engine does not read MCP tool annotations: the request to auto-allow `readOnlyHint` tools and keep prompting for `destructiveHint` ones ([anthropics/claude-code#87452](https://github.com/anthropics/claude-code/issues/87452)) was closed as not planned, and on Claude Code on the web the connector prompt offers only "Allow once", so read-only tools ask on every call and unattended runs stall ([anthropics/claude-code#99112](https://github.com/anthropics/claude-code/issues/99112)). The [permissions docs](https://code.claude.com/docs/en/permissions) give you the rule syntax (`mcp__`, `mcp____`, and `mcp____*` only after a literal server prefix) and leave the rule writing to you. So people hand-roll hooks that guess by verb, or allow a whole server, or keep clicking.

This tool writes the rules for you, from what the servers themselves report, and tells you when that report changes.