How to safely rename MCP tools without breaking existing user configurations.
When tools are renamed, users who have the old tool name in their MCP configuration (for example, in X-MCP-Tools headers for the remote MCP server or --tools flags for the local MCP server) would normally get errors.
The deprecation alias system allows us to maintain backward compatibility by silently resolving old tool names to their new canonical names.
This allows us to rename tools safely, without introducing breaking changes for users that have a hard reference to those tools in their server configuration.
- Rename the tool in your code (as usual, this will imply a range of changes like updating the tool registration, the tests and the toolsnaps).
- Add a deprecation alias in pkg/github/deprecated_tool_aliases.go:
var DeprecatedToolAliases = map[string]string{ "old_tool_name": "new_tool_name", }
- Update documentation (README, etc.) to reference the new canonical name
That's it. The server will silently resolve old names to new ones. This will work across both local and remote MCP servers.
If renaming get_issue to issue_read:
var DeprecatedToolAliases = map[string]string{
"get_issue": "issue_read",
}A user with this configuration:
{
"--tools": "get_issue,get_file_contents"
}Will get issue_read and get_file_contents tools registered, with no errors.
| Old Name | New Name |
|---|---|
add_project_item |
projects_write |
cancel_workflow_run |
actions_run_trigger |
delete_project_item |
projects_write |
delete_workflow_run_logs |
actions_run_trigger |
download_workflow_run_artifact |
actions_get |
get_project |
projects_get |
get_project_field |
projects_get |
get_project_item |
projects_get |
get_workflow |
actions_get |
get_workflow_job |
actions_get |
get_workflow_job_logs |
actions_get |
get_workflow_run |
actions_get |
get_workflow_run_logs |
actions_get |
get_workflow_run_usage |
actions_get |
list_project_fields |
projects_list |
list_project_items |
projects_list |
list_projects |
projects_list |
list_workflow_jobs |
actions_list |
list_workflow_run_artifacts |
actions_list |
list_workflow_runs |
actions_list |
list_workflows |
actions_list |
rerun_failed_jobs |
actions_run_trigger |
rerun_workflow_run |
actions_run_trigger |
run_workflow |
actions_run_trigger |
update_project_item |
projects_write |