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."
}
}
}
]
}