Skip to content

List Code Actions

list-code-actions · Query · CodeAction · Code Actions

Lists bounded Roslyn code fixes and refactorings for a document, selection or caret.

Availability: Built in and published by default.

Generated from Roslyn Workbench MCP 0.1.0-beta.294 (0.1.0-beta.294).

Behaviour annotations

Annotation Value
destructiveHint false
idempotentHint false
openWorldHint false
readOnlyHint true
title "List Code Actions"

Request

Property Type Required Description
document object Yes Target document.
range object | null No The optional selection or caret range. An omitted range selects the complete document.
expectedSnapshot object Yes Echo the snapshot returned with the data or transaction state used to construct this request.
kinds string enum ("CodeFixes", "Refactorings", "All") Yes The kinds of actions to discover.
diagnosticIds array | null No The optional diagnostic identifier filter for code fixes.
limit integer | null No The maximum number of action leaves to return.
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 | null Yes Tool-specific result payload.
snapshot object Yes Exact immutable workspace snapshot associated with the result, when available.

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.

Bounded collections and continuation

These response locations publish returned items with explicit bounds and continuation state:

  • $/oneOf/0/properties/data/properties/actions
  • $/oneOf/0/properties/data/properties/actions/properties/items/items/properties/diagnostics

Continuations and required actions

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

  • $/oneOf/1/properties/continuation

Examples

Discover Code Actions

Workflow: Discover and stage a Code Action, step 2.

List bounded fixes and refactorings against an exact document snapshot.

Expected outcome: At most 20 snapshot-bound Code Action references are returned for the selected document.

{
  "document": {
    "path": "src/Sample.cs"
  },
  "expectedSnapshot": {
    "workspaceId": "11111111-1111-1111-1111-111111111111",
    "workspaceEpoch": 1,
    "snapshotId": "22222222-2222-2222-2222-222222222222",
    "transactionRevision": 0
  },
  "kinds": "All",
  "limit": 20,
  "workspace": {
    "alias": "sample"
  }
}
Complete input schema
{
  "type": "object",
  "properties": {
    "document": {
      "description": "Target document.",
      "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": "The optional selection or caret range. An omitted range selects the complete document.",
      "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
        }
      }
    },
    "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."
    },
    "kinds": {
      "description": "The kinds of actions to discover.",
      "type": "string",
      "enum": [
        "CodeFixes",
        "Refactorings",
        "All"
      ]
    },
    "diagnosticIds": {
      "description": "The optional diagnostic identifier filter for code fixes.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      }
    },
    "limit": {
      "description": "The maximum number of action leaves to return.",
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 2147483647,
      "default": 50
    },
    "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": [
    "document",
    "expectedSnapshot",
    "kinds"
  ]
}
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",
            "null"
          ],
          "properties": {
            "actions": {
              "description": "The returned actions.",
              "type": "object",
              "properties": {
                "items": {
                  "description": "Items returned in this page.",
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "object",
                    "properties": {
                      "actionId": {
                        "description": "The opaque action reference.",
                        "type": "string",
                        "format": "uuid"
                      },
                      "title": {
                        "description": "The display title.",
                        "type": "string"
                      },
                      "kind": {
                        "description": "The action kind.",
                        "type": "string",
                        "enum": [
                          "CodeFix",
                          "Refactoring"
                        ]
                      },
                      "location": {
                        "description": "The precise source location to which the action applies.",
                        "type": "object",
                        "properties": {
                          "document": {
                            "description": "The project-aware source document identity.",
                            "type": "object",
                            "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 zero-based UTF-16 source span.",
                            "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
                              }
                            }
                          },
                          "line": {
                            "description": "The zero-based source line.",
                            "type": "integer"
                          },
                          "column": {
                            "description": "The zero-based source column.",
                            "type": "integer"
                          }
                        },
                        "required": [
                          "document",
                          "span"
                        ]
                      },
                      "diagnostics": {
                        "description": "Concise diagnostic context for a code fix.",
                        "type": [
                          "object",
                          "null"
                        ],
                        "properties": {
                          "items": {
                            "description": "Items returned in this page.",
                            "type": [
                              "array",
                              "null"
                            ],
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "description": "The diagnostic identifier.",
                                  "type": "string"
                                },
                                "message": {
                                  "description": "The diagnostic message.",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "message"
                              ]
                            }
                          },
                          "hasMore": {
                            "description": "Whether additional items were available beyond this page.",
                            "type": "boolean"
                          },
                          "totalCount": {
                            "description": "Complete result count, when available without additional expensive work.",
                            "type": [
                              "integer",
                              "null"
                            ]
                          }
                        }
                      },
                      "fixAllScopes": {
                        "description": "The supported Fix All scopes for a code fix.",
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": "string",
                          "enum": [
                            "Document",
                            "Project",
                            "Solution"
                          ]
                        }
                      }
                    },
                    "required": [
                      "actionId",
                      "title",
                      "kind",
                      "location"
                    ]
                  }
                },
                "hasMore": {
                  "description": "Whether additional items were available beyond this page.",
                  "type": "boolean"
                },
                "totalCount": {
                  "description": "Complete result count, when available without additional expensive work.",
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              }
            }
          },
          "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."
        }
      }
    },
    {
      "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."
        }
      }
    }
  ]
}

Machine reference