You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
MCP tool permissions not working after migration from tools to permissions #6892
After the major change that merged tools into permissions, MCP tool permissions can no longer be controlled using the permissions configuration. The legacy tools configuration still works, but the new permissions configuration does not apply to MCP tools.
The permissions configuration should control MCP tools the same way the tools configuration did, but it appears that MCP tool patterns are not being properly evaluated in the new permissions system.
Expected Behavior
MCP tools should be controllable using the permissions field with glob patterns like "my-mcp*": allow or "my-mcp*": deny, just as they were with the tools field.
Context
This issue appears to be related to the permissions system overhaul that merged tools into permissions. The migration logic in packages/opencode/src/config/config.ts shows that legacy tools config should be converted to permission config, and the Permission schema includes a catchall pattern that should support arbitrary tool permissions.
However, it seems that MCP tool permissions are not being properly applied when using the new permissions configuration format.
Notes
The documentation shows examples of controlling MCP tools using the tools configuration mcp-servers.mdx, but there are no examples showing how to control MCP tools using the new permissions configuration. This suggests either a documentation gap or an implementation bug.
Update: I just discovered that the issue might be caused by a typo in the field name. I tested it again using permission (singular) instead of permissions (plural), and it worked!
With this correction, I can now successfully enable an MCP tool (which was globally disabled in opencode.json) within the YAML frontmatter of a specific agent markdown file like this:
permission:
"my-mcp*": allow
It seems the system expects the singular form permission in the frontmatter. Has anyone else encountered this, or is this the intended behavior?
Same, the docs seem to be outdated and I cannot seem to get per agent MCP tool or skill permissions to work. The global settings in the config seem to overwrite everything and the usual last matching rule wins mentioned in the docs appears to be broken.
Activity
Hipfox commentedon Jan 6, 2026
Update: I just discovered that the issue might be caused by a typo in the field name. I tested it again using permission (singular) instead of permissions (plural), and it worked!
With this correction, I can now successfully enable an MCP tool (which was globally disabled in opencode.json) within the YAML frontmatter of a specific agent markdown file like this:
It seems the system expects the singular form permission in the frontmatter. Has anyone else encountered this, or is this the intended behavior?
opencode v1.1.3
einarpersson commentedon Jan 10, 2026
Yes! I was also confused by this. I used to have
permissionsand now it seems to bepermission?sounds like a bug to me
github-actions commentedon Mar 25, 2026
To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.
GH#18285: add shopify-dev-mcp agent, fix MCP audit gaps, add permissi…
GH#18285: add shopify-dev-mcp agent, fix MCP audit gaps, add permissi…
fix(tool): use relative path for read permission patterns
sapient-engineer commentedon May 12, 2026
Same, the docs seem to be outdated and I cannot seem to get per agent MCP tool or skill permissions to work. The global settings in the config seem to overwrite everything and the usual
last matching rule winsmentioned in the docs appears to be broken.