Skip to content

Get Solution Structure

get-solution-structure · Query · CorePlugin · Code discovery and navigation

Returns bounded solution folders, projects, target frameworks and direct project relationships.

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 true
openWorldHint false
readOnlyHint true
title "Get Solution Structure"

Request

Property Type Required Description
includeDocuments boolean No Whether documents should be included in project projections.
foldersLimit integer | null No Maximum number of folders to return.
projectsLimit integer | null No Maximum number of projects to return.
documentsPerProjectLimit integer | null No Maximum number of documents to return for each project.
projectReferencesPerProjectLimit integer | null No Maximum number of direct project references to return for each project.
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/folders
  • $/oneOf/0/properties/data/properties/projects
  • $/oneOf/0/properties/data/properties/projects/properties/items/items/properties/projectReferences
  • $/oneOf/0/properties/data/properties/projects/properties/items/items/properties/documents

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
Complete input schema
{
  "type": "object",
  "properties": {
    "includeDocuments": {
      "description": "Whether documents should be included in project projections.",
      "type": "boolean"
    },
    "foldersLimit": {
      "description": "Maximum number of folders to return.",
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 2147483647,
      "default": 200
    },
    "projectsLimit": {
      "description": "Maximum number of projects to return.",
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 2147483647,
      "default": 100
    },
    "documentsPerProjectLimit": {
      "description": "Maximum number of documents to return for each project.",
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 2147483647,
      "default": 200
    },
    "projectReferencesPerProjectLimit": {
      "description": "Maximum number of direct project references to return for each project.",
      "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"
        }
      }
    }
  }
}
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": {
            "solutionPath": {
              "description": "The loaded solution or project path.",
              "type": "string"
            },
            "folders": {
              "description": "The solution folders.",
              "type": "object",
              "properties": {
                "items": {
                  "description": "Items returned in this page.",
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "path": {
                        "type": "string"
                      },
                      "parentPath": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "name",
                      "path"
                    ]
                  }
                },
                "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"
                  ]
                }
              }
            },
            "projects": {
              "description": "The project structure projections.",
              "type": "object",
              "properties": {
                "items": {
                  "description": "Items returned in this page.",
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "object",
                    "properties": {
                      "projectId": {
                        "description": "The project identifier.",
                        "type": "string"
                      },
                      "name": {
                        "description": "The project name.",
                        "type": "string"
                      },
                      "path": {
                        "description": "The project path.",
                        "type": "string"
                      },
                      "solutionFolderPath": {
                        "description": "The associated solution-folder path, when available.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "targetFrameworks": {
                        "description": "The target frameworks inferred for the project.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "projectReferences": {
                        "description": "The direct project references.",
                        "type": "object",
                        "properties": {
                          "items": {
                            "description": "Items returned in this page.",
                            "type": [
                              "array",
                              "null"
                            ],
                            "items": {
                              "type": "object",
                              "properties": {
                                "projectId": {
                                  "description": "The referenced project identifier.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "The referenced project name.",
                                  "type": "string"
                                },
                                "path": {
                                  "description": "The referenced project path.",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "projectId",
                                "name",
                                "path"
                              ]
                            }
                          },
                          "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"
                            ]
                          }
                        }
                      },
                      "documents": {
                        "description": "The project documents, when included.",
                        "type": [
                          "object",
                          "null"
                        ],
                        "properties": {
                          "items": {
                            "description": "Items returned in this page.",
                            "type": [
                              "array",
                              "null"
                            ],
                            "items": {
                              "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"
                              ]
                            }
                          },
                          "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"
                            ]
                          }
                        }
                      }
                    },
                    "required": [
                      "projectId",
                      "name",
                      "path"
                    ]
                  }
                },
                "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"
                  ]
                }
              }
            }
          },
          "required": [
            "solutionPath"
          ],
          "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