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
}
}
I can assume that the filter should be here:
|
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:
- You'll have to manually list 71 tool names;
- 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.
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 } }I can assume that the filter should be here:
gitlab-mcp/index.ts
Lines 5342 to 5344 in ac13d34
Using a regular expression and passing it to GITLAB_DENIED_TOOLS_REGEX will partially solve the problem.
Why partially? Because:
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.