Skip to content

Rename Symbol

rename-symbol · Mutation · CorePlugin · Code mutation

Stages a symbol rename across the effective solution.

Availability: Published in transactional, approval-required and autonomous-trusted operational modes.

Generated from Roslyn Workbench MCP 1.0.1 (1.0.1).

Behaviour annotations

Annotation Value
destructiveHint true
idempotentHint false
openWorldHint false
readOnlyHint false
title "Rename Symbol"

Request

Property Type Required Description
symbol object Yes The symbol selector.
newName string Yes The new symbol name.
renameOverloads boolean No Whether overloads should also be renamed.
renameInStrings boolean No Whether matching identifiers in string literals should also be renamed.
renameInComments boolean No Whether matching identifiers in comments should also be renamed.
renameFile boolean No Whether the containing file should be renamed for type symbols.
expectedSnapshot object Yes Echo the snapshot returned with the data or transaction state used to construct this request.
workspace object | null No Provide workspaceId, alias, path, or any combination.

Response

Success response

Property Type Required Description
ok boolean constant (true) Yes Whether the tool invocation succeeded.
data object Yes Tool-specific result payload.
snapshot object Yes Exact immutable workspace snapshot associated with the result, when available.
warnings array No Non-fatal warnings the agent should consider.

Error response

Property Type Required Description
ok boolean constant (false) Yes Whether the tool invocation succeeded.
error object Yes Structured error details when the invocation failed.
continuation oneOf No Action the agent should take before retrying or continuing.
diagnostics array No Diagnostics that explain the failed invocation.
warnings array No Non-fatal warnings the agent should consider.

Error response

Property Type Required Description
ok boolean constant (false) Yes Whether the tool invocation succeeded.
error object Yes Structured error details when the invocation failed.
diagnostics object Yes Diagnostics that explain the failed invocation.
reporting object No Error-reporting workflow available for an unhandled failure.

Continuations and required actions

A response may include a structured continuation at the following schema location. Follow its tool call or user-action instruction instead of guessing how to continue:

  • $/oneOf/1/properties/continuation

Examples

Stage the source change

Workflow: Review an exact change for one-use approval, step 2.

Operational modes: approval-required.

Stage one coherent mutation before producing its exact-change receipt.

Expected outcome: The rename advances the active transaction revision without writing source files.

{
  "symbol": {
    "documentationCommentId": "T:Sample.Widget"
  },
  "newName": "RenamedWidget",
  "expectedSnapshot": {
    "workspaceId": "11111111-1111-1111-1111-111111111111",
    "workspaceEpoch": 1,
    "snapshotId": "22222222-2222-2222-2222-222222222222",
    "transactionRevision": 0
  },
  "workspace": {
    "alias": "sample"
  }
}
Complete input schema
{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "The symbol selector.",
      "type": "object",
      "properties": {
        "project": {
          "description": "Disambiguates symbols with matching identities.",
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "projectId": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "path": {
              "description": "Workspace-relative path.",
              "type": "string"
            },
            "targetFramework": {
              "type": "string"
            }
          }
        },
        "location": {
          "description": "Provide exactly one of span or selection.",
          "type": "object",
          "properties": {
            "span": {
              "type": "object",
              "properties": {
                "document": {
                  "description": "Provide exactly one of path or documentId.",
                  "type": "object",
                  "properties": {
                    "project": {
                      "description": "Disambiguates documents with matching paths or IDs.",
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "projectId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "path": {
                          "description": "Workspace-relative path.",
                          "type": "string"
                        },
                        "targetFramework": {
                          "type": "string"
                        }
                      }
                    },
                    "path": {
                      "description": "Workspace-relative path.",
                      "type": "string"
                    },
                    "documentId": {
                      "description": "Workspace-local document ID.",
                      "type": "string"
                    }
                  }
                },
                "range": {
                  "description": "Zero-based UTF-16 range.",
                  "type": "object",
                  "properties": {
                    "start": {
                      "description": "Zero-based UTF-16 offset.",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 2147483647
                    },
                    "length": {
                      "description": "UTF-16 code-unit length.",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 2147483647
                    }
                  }
                }
              },
              "required": [
                "document",
                "range"
              ]
            },
            "selection": {
              "type": "object",
              "properties": {
                "document": {
                  "description": "Provide exactly one of path or documentId.",
                  "type": "object",
                  "properties": {
                    "project": {
                      "description": "Disambiguates documents with matching paths or IDs.",
                      "$ref": "#/properties/symbol/properties/location/properties/span/properties/document/properties/project"
                    },
                    "path": {
                      "description": "Workspace-relative path.",
                      "type": "string"
                    },
                    "documentId": {
                      "description": "Workspace-local document ID.",
                      "type": "string"
                    }
                  }
                },
                "selectedText": {
                  "type": "string",
                  "minLength": 1
                },
                "contextBefore": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "contextAfter": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "document",
                "selectedText"
              ]
            }
          }
        },
        "documentationCommentId": {
          "type": "string"
        }
      }
    },
    "newName": {
      "description": "The new symbol name.",
      "type": "string"
    },
    "renameOverloads": {
      "description": "Whether overloads should also be renamed.",
      "type": "boolean"
    },
    "renameInStrings": {
      "description": "Whether matching identifiers in string literals should also be renamed.",
      "type": "boolean"
    },
    "renameInComments": {
      "description": "Whether matching identifiers in comments should also be renamed.",
      "type": "boolean"
    },
    "renameFile": {
      "description": "Whether the containing file should be renamed for type symbols.",
      "type": "boolean"
    },
    "expectedSnapshot": {
      "type": "object",
      "properties": {
        "workspaceId": {
          "type": "string",
          "format": "uuid"
        },
        "workspaceEpoch": {
          "type": "integer"
        },
        "snapshotId": {
          "type": "string",
          "format": "uuid"
        },
        "transactionRevision": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "workspaceId",
        "workspaceEpoch",
        "snapshotId",
        "transactionRevision"
      ],
      "description": "Echo the snapshot returned with the data or transaction state used to construct this request."
    },
    "workspace": {
      "description": "Provide workspaceId, alias, path, or any combination.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "workspaceId": {
          "type": "string",
          "format": "uuid"
        },
        "alias": {
          "type": "string"
        },
        "path": {
          "description": "Absolute workspace path.",
          "type": "string"
        }
      }
    }
  },
  "required": [
    "symbol",
    "newName",
    "expectedSnapshot"
  ]
}
Complete output schema
{
  "type": "object",
  "oneOf": [
    {
      "type": "object",
      "required": [
        "ok",
        "data",
        "snapshot"
      ],
      "properties": {
        "ok": {
          "const": true,
          "description": "Whether the tool invocation succeeded."
        },
        "data": {
          "type": "object",
          "required": [
            "staged"
          ],
          "properties": {
            "staged": {
              "type": "boolean",
              "description": "Whether the mutation was staged in the active transaction."
            },
            "summary": {
              "type": [
                "string",
                "null"
              ],
              "description": "Summary of the staged mutation, when available."
            },
            "transaction": {
              "type": [
                "object",
                "null"
              ],
              "description": "Transaction state after the mutation, when present.",
              "required": [
                "revision"
              ],
              "properties": {
                "revision": {
                  "type": "integer",
                  "description": "Transaction revision after staging."
                }
              }
            }
          },
          "description": "Tool-specific result payload."
        },
        "snapshot": {
          "type": "object",
          "properties": {
            "workspaceId": {
              "type": "string",
              "format": "uuid"
            },
            "workspaceEpoch": {
              "type": "integer"
            },
            "snapshotId": {
              "type": "string",
              "format": "uuid"
            },
            "transactionRevision": {
              "type": [
                "integer",
                "null"
              ]
            }
          },
          "required": [
            "workspaceId",
            "workspaceEpoch",
            "snapshotId",
            "transactionRevision"
          ],
          "description": "Exact immutable workspace snapshot associated with the result, when available."
        },
        "warnings": {
          "type": "array",
          "description": "Non-fatal warnings the agent should consider.",
          "items": {
            "$ref": "#/$defs/warningInfo"
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "ok",
        "error"
      ],
      "properties": {
        "ok": {
          "const": false,
          "description": "Whether the tool invocation succeeded."
        },
        "error": {
          "type": "object",
          "properties": {
            "code": {
              "description": "Stable machine-readable error code.",
              "type": "string"
            },
            "message": {
              "description": "Human-readable explanation of the failure.",
              "type": "string"
            },
            "correlationId": {
              "description": "Correlation identifier for matching the failure to server-side diagnostics, when available.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "code",
            "message"
          ],
          "description": "Structured error details when the invocation failed."
        },
        "continuation": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "tool",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "CallTool",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                },
                "tool": {
                  "type": "string",
                  "description": "Tool to call before continuing the original request.",
                  "minLength": 1
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "tools",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "ChooseTool",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                },
                "tools": {
                  "type": "array",
                  "description": "Allowed tool choices from which the agent must select one.",
                  "minItems": 1,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "description": "Name of a tool the agent may choose.",
                    "minLength": 1
                  }
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "RetryRequest",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "ReviseRequest",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "ResolveExternally",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                }
              }
            }
          ],
          "description": "Action the agent should take before retrying or continuing."
        },
        "diagnostics": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "description": "The diagnostic identifier.",
                "type": "string"
              },
              "severity": {
                "description": "The diagnostic severity.",
                "type": "string",
                "enum": [
                  "Hidden",
                  "Info",
                  "Warning",
                  "Error"
                ]
              },
              "message": {
                "description": "The diagnostic message.",
                "type": "string"
              },
              "location": {
                "description": "The optional source location of the diagnostic.",
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "document": {
                    "description": "The resolved document.",
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "documentId": {
                        "description": "The document identifier.",
                        "type": "string"
                      },
                      "path": {
                        "description": "The normalized document path.",
                        "type": "string"
                      },
                      "projectId": {
                        "description": "The owning project identifier.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "documentId",
                      "path",
                      "projectId"
                    ]
                  },
                  "span": {
                    "description": "The resolved text span.",
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "start": {
                        "description": "Zero-based UTF-16 offset.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 2147483647
                      },
                      "length": {
                        "description": "UTF-16 code-unit length.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 2147483647
                      }
                    }
                  },
                  "line": {
                    "description": "The one-based line number.",
                    "type": "integer"
                  },
                  "column": {
                    "description": "The one-based column number.",
                    "type": "integer"
                  },
                  "snapshot": {
                    "description": "The exact immutable workspace snapshot associated with this location.",
                    "type": "object",
                    "properties": {
                      "workspaceId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "workspaceEpoch": {
                        "type": "integer"
                      },
                      "snapshotId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "transactionRevision": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "workspaceId",
                      "workspaceEpoch",
                      "snapshotId",
                      "transactionRevision"
                    ]
                  },
                  "selector": {
                    "description": "The canonical selector that can resolve this source location again.",
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "span": {
                        "type": "object",
                        "properties": {
                          "document": {
                            "description": "Provide exactly one of path or documentId.",
                            "type": "object",
                            "properties": {
                              "project": {
                                "description": "Disambiguates documents with matching paths or IDs.",
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "properties": {
                                  "projectId": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "name": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "path": {
                                    "description": "Workspace-relative path.",
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "targetFramework": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "path": {
                                "description": "Workspace-relative path.",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "documentId": {
                                "description": "Workspace-local document ID.",
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          },
                          "range": {
                            "description": "Zero-based UTF-16 range.",
                            "type": "object",
                            "properties": {
                              "start": {
                                "description": "Zero-based UTF-16 offset.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 2147483647
                              },
                              "length": {
                                "description": "UTF-16 code-unit length.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 2147483647
                              }
                            }
                          }
                        },
                        "required": [
                          "document",
                          "range"
                        ]
                      }
                    },
                    "required": [
                      "span"
                    ]
                  }
                },
                "required": [
                  "snapshot"
                ]
              }
            },
            "required": [
              "id",
              "message"
            ]
          },
          "description": "Diagnostics that explain the failed invocation."
        },
        "warnings": {
          "type": "array",
          "description": "Non-fatal warnings the agent should consider.",
          "items": {
            "$ref": "#/$defs/warningInfo"
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "ok",
        "error",
        "diagnostics"
      ],
      "properties": {
        "ok": {
          "const": false,
          "description": "Whether the tool invocation succeeded."
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message",
            "correlationId"
          ],
          "properties": {
            "code": {
              "const": "UnhandledException"
            },
            "message": {
              "const": "Tool execution failed."
            },
            "correlationId": {
              "type": "string",
              "format": "uuid"
            }
          },
          "description": "Structured error details when the invocation failed."
        },
        "diagnostics": {
          "type": "object",
          "required": [
            "detailsAvailable",
            "detailsTool"
          ],
          "properties": {
            "detailsAvailable": {
              "const": true
            },
            "detailsTool": {
              "const": "get-error-details"
            }
          },
          "description": "Diagnostics that explain the failed invocation."
        },
        "reporting": {
          "type": "object",
          "properties": {
            "state": {
              "type": "string",
              "enum": [
                "Available",
                "AlwaysApproved",
                "DisabledByConfiguration",
                "ApprovalUnavailable"
              ]
            },
            "canPrepare": {
              "type": "boolean"
            },
            "prepareTool": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "state"
          ],
          "description": "Error-reporting workflow available for an unhandled failure."
        }
      }
    }
  ],
  "$defs": {
    "warningInfo": {
      "type": "object",
      "properties": {
        "code": {
          "description": "The stable machine-readable warning code.",
          "type": "string"
        },
        "message": {
          "description": "The human-readable warning message.",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}

Machine reference