Skip to content

MCP Tool Consolidation — Removed Shim Tools

Seven compatibility shim tools have been removed from the MCP catalog. These tools were deprecated wrappers around canonical replacements that have been stable since the unified run tool and MCP resource system launched. Removing them reduces search result noise when Claude selects tools.

Before: 76 registered tools (including 7 shims) After: 69 registered tools (shims removed; all capabilities preserved)

No operational capability was removed. Every workflow supported by a shim is fully supported by its canonical replacement.


Removed shimCanonical replacementNotes
run_projectrun(scope='project', mode='sync')Project-level synchronous execution
run_modelrun(scope='model', mode='sync')Model-level synchronous execution
queue_runrun(scope='project', mode='async') or run(scope='model', mode='async')Background async execution
list_project_templatestemplates:// (MCP resource)Read the resource to list available templates
list_skillsskills:// (MCP resource)Read the resource to list available skills
get_skillskill://{name} (MCP resource)Read the resource URI to retrieve a skill
list_gsheet_presetsformat_gsheet(spec={"kind":"list_presets"})Returns the same presets list via the unified format tool

// Before (removed)
{"name": "run_project", "arguments": {"project_name": "forecasts"}}
// After (canonical)
{"name": "run", "arguments": {"scope": "project", "mode": "sync", "project_name": "forecasts"}}
// Before (removed)
{"name": "run_model", "arguments": {"project_name": "forecasts", "model_name": "revenue"}}
// After (canonical)
{"name": "run", "arguments": {"scope": "model", "mode": "sync", "project_name": "forecasts", "model_name": "revenue"}}
// Before (removed)
{"name": "queue_run", "arguments": {"project_name": "forecasts", "branch": "main"}}
// After (canonical)
{"name": "run", "arguments": {"scope": "project", "mode": "async", "project_name": "forecasts", "branch": "main"}}

Then poll get_run with the returned run_id until status reaches a terminal state.

// Before (removed)
{"name": "list_skills"}
// After (canonical MCP resource)
Read resource: skills://
// Before (removed)
{"name": "get_skill", "arguments": {"name": "create-saas-forecast"}}
// After (canonical MCP resource)
Read resource: skill://create-saas-forecast
// Before (removed)
{"name": "list_project_templates"}
// After (canonical MCP resource)
Read resource: templates://
// Before (removed)
{"name": "list_gsheet_presets"}
// After (canonical)
{"name": "format_gsheet", "arguments": {"project_name": "any", "spec": {"kind": "list_presets"}}}
{
"name": "write_gsheet",
"arguments": {
"project_name": "forecasts",
"spec": {
"mode": "replace",
"run_id": "66666666-6666-6666-6666-666666666666",
"output_name": "forecast.json",
"source_name": "board_pack",
"spreadsheet_id": "1aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ABCDEFG",
"cell_range": "Forecast!A1"
}
}
}

Use source_name from list_data_sources when writing back to a connected data source. Use spreadsheet_id when the target connected sheet must be addressed explicitly.

{
"name": "write_gsheet",
"arguments": {
"project_name": "forecasts",
"spec": {
"mode": "append",
"run_id": "66666666-6666-6666-6666-666666666666",
"output_name": "actuals.csv",
"source_name": "board_pack",
"spreadsheet_id": "1aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ABCDEFG",
"sheet_name": "Actuals"
}
}
}
{
"name": "format_gsheet",
"arguments": {
"project_name": "forecasts",
"spec": {
"kind": "range_format",
"spreadsheet_id": "1aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ABCDEFG",
"sheet_id": 0,
"start_row": 0,
"end_row": 20,
"start_col": 0,
"end_col": 6,
"number_format": "$#,##0",
"number_format_type": "CURRENCY"
}
}
}

Call get_spreadsheet_metadata first when you need the numeric sheet_id; each tab reports both display title and numeric sheetId.

{
"name": "modify_gsheet_structure",
"arguments": {
"project_name": "forecasts",
"spec": {
"action": "ensure_tab",
"spreadsheet_id": "1aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ABCDEFG",
"tab_title": "Board Pack"
}
}
}

The async execution rate limit bucket (queue_run, 100 requests/hour) is preserved under its original name for backward-compatible throttling. No existing quota configuration needs to change.