Skip to content

feat(tools): create an allow list for MCP tools#2800

Open
BrunoKrugel wants to merge 1 commit intocharmbracelet:mainfrom
BrunoKrugel:feat/allowListTools
Open

feat(tools): create an allow list for MCP tools#2800
BrunoKrugel wants to merge 1 commit intocharmbracelet:mainfrom
BrunoKrugel:feat/allowListTools

Conversation

@BrunoKrugel
Copy link
Copy Markdown
Contributor

@BrunoKrugel BrunoKrugel commented May 5, 2026

Currently, we only have an option for a deny list (disabled_tools) in MCP Tools, however, for MCP with a lot of tools, it is really hard to disable all the tools and keep it clean.

For example, the Jira MCP has 73 tools:

image

This PR introduces an allow list enabled_tools, so we can enable only the tools that we want:

    "mcp-atlassian": {
      "type": "stdio",
      "command": "uvx",
      "enabled_tools": ["jira_get_issue", "jira_search"],
      "args": ["mcp-atlassian"],
    }
image
  • I have read CONTRIBUTING.md.
  • I have created a discussion that was approved by a maintainer (for new features).

Closes #2815

@meowgorithm
Copy link
Copy Markdown
Member

This is a good one. I know the pain here myself. What happens when you have both enabled_tools and disabled_tools set?

@BrunoKrugel
Copy link
Copy Markdown
Contributor Author

BrunoKrugel commented May 7, 2026

This is a good one. I know the pain here myself. What happens when you have both enabled_tools and disabled_tools set?

They run sequentially, and the enabled_tools runs first, if we configure:

    "mcp-atlassian": {
      "type": "stdio",
      "command": "uvx",
      "enabled_tools": ["jira_get_issue", "jira_search"],
      "disabled_tools": ["jira_get_issue"],
      "args": ["mcp-atlassian"],
    }

Only the jira_search will be enabled, I created this test for this scenario.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tools (allowlist) field to MCP config, alongside disabled_tools (denylist)

3 participants