From faad270920a5660e06c605ee711b7be1bfa6597f Mon Sep 17 00:00:00 2001 From: Martin Wortschack Date: Mon, 22 Sep 2025 14:47:31 +0200 Subject: [PATCH] Add tool proposal process to MCP development docs --- doc/development/mcp_server.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/development/mcp_server.md b/doc/development/mcp_server.md index 56eb059ca77149..73863c1e5690f0 100644 --- a/doc/development/mcp_server.md +++ b/doc/development/mcp_server.md @@ -116,6 +116,16 @@ npx -y @modelcontextprotocol/inspector npx ### Adding a new tool +#### The Tool Proposal process + +Our current development guidelines remain in early development. As we continue establishing tool development standards - especially for custom and +aggregated tools - we've created an interim `mcp-tool-review-board` committee to evaluate proposed tools before implementation and guide teams planning new MCP tools. + +To add a new tool, please create a [MCP Tool Proposal issue](https://gitlab.com/gitlab-org/gitlab/-/issues/new?related_item_id=undefined&type=ISSUE&description_template=MCP%20Tool%20Proposal) +and follow the template instructions. + +#### Implement a tool from an API rout + This [merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/201838) defines a process for creating an MCP tool from an API route. Adding the following `route_setting` to an API route definition: @@ -131,6 +141,10 @@ route_setting :mcp, tool_name: :get_merge_request, params: [:id, :merge_request_ This [merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/203055) provides more examples. +#### Implement a custom tool + +For tools with distinct functionality that should remain separate from API exposure, you can define a standalone class (see [this example](https://gitlab.com/gitlab-org/gitlab/-/blob/5d394a38c3dc20a247473d5334d71dab15d26a4b/app/services/mcp/tools/manager.rb#L7) for reference). + #### Risks of tool proliferation in AI agent architecture ##### Key problems with adding too many tools -- GitLab