-
Notifications
You must be signed in to change notification settings - Fork 506
Closed as not planned
Labels
Description
Problem
MCP tool names use underscores as separators: drive_files_list. This is ambiguous when services or resources contain underscores (e.g., admin_reports_activities_list — is admin or admin_reports the service?). Additionally, tools/list used Discovery doc names while tools/call validated against configured aliases (#162).
MCP Spec Constraints
- Max 64 characters
- Must start with a letter
- Only lowercase letters and hyphens allowed
- Dots are NOT allowed per spec
- Underscores are used in ecosystem but not mandated
Proposal
Switch from underscore to hyphen as the hierarchy separator:
Before: drive_files_list (ambiguous with split("_"))
After: drive-files-list (unambiguous with split("-"))
Hyphens are safe because Google API service/resource names contain underscores and dots but never hyphens, so - is an unambiguous separator. Parsing becomes tool_name.splitn(3, "-").
Changes required
build_tools_list— join service, resource, method with-instead of_handle_tools_call— split on-instead of_- Use configured service alias (not Discovery doc name) as prefix
- Update compact mode tool naming to match
Breaking change
This changes all MCP tool names. Since the MCP ecosystem is early and tool names are dynamically discovered via tools/list, this should be transparent to well-behaved clients.
Consolidates
- Fixes MCP tools/list returns uncallable tool names for aliased services (events, apps-script, admin-reports) #162 (uncallable tool names for aliases)
- Fixes MCP Server Tool Name Parsing Breaks on Multi-Word Resource Names #170 (parsing breaks on multi-word resources)
- Supersedes PR fix: use service alias in MCP tool names for aliased services #224 and PR fix(mcp): align tools/list namespace with aliased services #165
Reactions are currently unavailable