stacklok / stacklok/toolhive

Support Exclude Filter for vMCP Tool Filtering (Deny List with Default Allow)

Open
#3,493 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement kubernetes needs_more_info vmcp
Dominant language
Go
Stars
2.2k
Forks
300
Avg merge
1d 15h
Merged PRs (30d)
184

Description

Description

Currently, vMCP tool filtering only supports an include filter (allow list) where you must explicitly specify all tools to be included. There is no option to exclude specific tools while allowing the rest through by default.

However, an exclude list comes with some security considerations noted below. We need more info on a motivating use cases before moving forward with this change, so we can best mitigate any potential security problems.

Use Case

The current include-only approach can become onerous when you want to exclude just 2-3 specific known tools from a server that exposes dozens of tools. Instead of listing 20+ allowed tools, it would be more convenient to specify the few tools you want to block and allow everything else through.

This is particularly relevant when:

  • You trust most tools from a server but want to block specific ones
  • A server has many tools and maintaining a long allow list is cumbersome
  • You want to automatically allow new tools as they're added to the server (though this has security trade-offs)

Current Behavior

  • Only include filters are supported (must list all allowed tools)
  • The ExcludeAll functionality addresses different use cases (blocking ALL tools when using composite tools)
  • Registry filters support both include and exclude options, but vMCP tool filters do not

Desired Behavior

Add support for an exclude filter (deny list) where:

  • You can specify a list of tools to exclude
  • Any tool NOT in the exclude list is allowed by default
  • This would complement the existing include filter approach
Security Considerations

The counter-argument from a security perspective is that an explicit allow list is safer:

  • Requires conscious review of which tools are permitted
  • New tools added to an MCP server don't automatically become available
  • Forces deliberate security decisions when bumping versions

This trade-off should be documented for users choosing between include and exclude approaches.

Related
  • Issue #2779 - Original ExcludeAll issue (addresses a different use case)
  • Registry filters already support both include/exclude patterns

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing vMCP tool-filtering and ExcludeAll behavior, then compare the registry filter include/exclude options and issue #2779. Done requires a confirmed motivating use case, an agreed security trade-off, and a defined approach for excluding named tools while allowing others by default.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend-api-design, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.