Repository navigation
Tool Policies
github-actions[bot] edited this page Oct 11, 2026
·
1 revision
Each virtual server has a policy that decides which of its selected tools agents get:
{"policy": {"default": "read_only", "tools": {"alpha__add": "allow", "crm__delete_customer": "deny"}}}| Mode | Effect |
|---|---|
allow |
The tool is listed and callable |
deny |
The tool is hidden and not callable |
read_only |
Allowed only if the upstream declares annotations.readOnlyHint: true for the tool |
default applies to tools without an entry in tools (keys are exposed names, i.e. aliases if set).
- Blocked tools are removed from
tools/list, so agents cannot even see them. - A call to a blocked tool is refused and recorded in the audit log with status
denied. -
read_onlytrusts the upstream's own annotation. A tool without the hint is treated as not read-only and blocked, which is the safe direction. If you do not trust an upstream's annotations, use explicitallow/denyentries. - Changes take effect on all data-plane nodes within moments, with no restart.
vMCP is licensed under Apache-2.0. This wiki is generated from the docs/ folder of the repository: send documentation fixes as pull requests, not wiki edits.
- Getting started
- Guided setup and client connections
- Installation options
- Kubernetes quickstart
- Install a published release
- Upstreams
- Virtual servers
- Resources and prompts
- Agent keys and authentication
- OAuth for agents
- SSO and roles
- Tool policies
- PII masking
- Rate limits
- Audit log
- FAQ and troubleshooting