Skip to content

The list of tools is not filtered #331

@andrey-helldar

Description

@andrey-helldar

I'm adding an MCP server for JetBrains PhpStorm Junie.

I listed the allowed utilities as specified in the README, but MCP ignores this list and initializes all utilities.

This wouldn't be a problem if PhpStorm weren't limited to 100 active tools.

How to make the filter work?

{
    "mcpServers": {
        "gitlab": {
            "command": "D:/modules/nodejs/npx.cmd",
            "args": [
                "-y",
                "@zereight/mcp-gitlab"
            ],
            "env": {
                "GITLAB_PERSONAL_ACCESS_TOKEN": "<my_pat>",
                "GITLAB_API_URL": "https://<my_host>/api/v4",
                "GITLAB_READ_ONLY_MODE": "false",
                "USE_GITLAB_WIKI": "false",
                "USE_MILESTONE": "false",
                "USE_PIPELINE": "false"
            },
            "tools": [
                "create_issue_note",
                "create_merge_request",
                "create_merge_request_note",
                "create_note",
                "get_branch_diffs",
                "get_commit",
                "get_commit_diff",
                "get_file_contents",
                "get_issue",
                "get_issue_link",
                "get_merge_request",
                "get_merge_request_diffs",
                "get_namespace",
                "get_project",
                "get_repository_tree",
                "list_commits",
                "list_group_iterations",
                "list_group_projects",
                "list_issue_links",
                "list_issues",
                "list_merge_request_diffs",
                "list_merge_requests",
                "list_namespaces",
                "list_projects",
                "search_repositories",
                "update_merge_request",
                "update_merge_request_note"
            ]
        },
        // ...other MCP's
    }
}
Image

I can assume that the filter should be here:

gitlab-mcp/index.ts

Lines 5342 to 5344 in ac13d34

const tools0 = GITLAB_READ_ONLY_MODE
? allTools.filter(tool => readOnlyTools.has(tool.name))
: allTools;

Using a regular expression and passing it to GITLAB_DENIED_TOOLS_REGEX will partially solve the problem.

Why partially? Because:

  1. You'll have to manually list 71 tool names;
  2. You'll have to constantly monitor new releases of @zereight/mcp-gitlab and check for new tools, promptly updating the exclusion list.

Instead, it's better to define a "whitelist" of tools and work with it. BUT, despite this option being in the documentation, the code ignores it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions