Skip to content

Get Project Details

get-project-details · Query · CorePlugin · Code discovery and navigation

Returns project metadata, options and selected document details.

Availability: Built in and published in every operational mode.

Generated from Roslyn Workbench MCP 1.0.1 (1.0.1).

Behaviour annotations

Annotation Value
destructiveHint false
idempotentHint true
openWorldHint false
readOnlyHint true
title "Get Project Details"

Request

Property Type Required Description
project object Yes Provide projectId, name, path, targetFramework, or any combination.
includeDocuments boolean No Whether documents should be included.
documentsLimit integer | null No Maximum number of documents to return.
projectReferencesLimit integer | null No Maximum number of project references to return.
metadataReferencesLimit integer | null No Maximum number of metadata references to return.
analyzersLimit integer | null No Maximum number of analyzers 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.
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.

Bounded collections and continuation

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

  • $/oneOf/0/properties/data/properties/documents
  • $/oneOf/0/properties/data/properties/projectReferences
  • $/oneOf/0/properties/data/properties/metadataReferences
  • $/oneOf/0/properties/data/properties/analyzers

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
Complete input schema
{
  "type": "object",
  "properties": {
    "project": {
      "description": "Provide projectId, name, path, targetFramework, or any combination.",
      "type": "object",
      "properties": {
        "projectId": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "path": {
          "description": "Workspace-relative path.",
          "type": "string"
        },
        "targetFramework": {
          "type": "string"
        }
      }
    },
    "includeDocuments": {
      "description": "Whether documents should be included.",
      "type": "boolean"
    },
    "documentsLimit": {
      "description": "Maximum number of documents to return.",
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 2147483647,
      "default": 200
    },
    "projectReferencesLimit": {
      "description": "Maximum number of project references to return.",
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 2147483647,
      "default": 50
    },
    "metadataReferencesLimit": {
      "description": "Maximum number of metadata references to return.",
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0,
      "maximum": 2147483647,
      "default": 100
    },
    "analyzersLimit": {
      "description": "Maximum number of analyzers 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": [
    "project"
  ]
}
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": {
            "project": {
              "description": "The selected project information.",
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "projectId": {
                  "description": "The project identifier.",
                  "type": "string"
                },
                "name": {
                  "description": "The project name.",
                  "type": "string"
                },
                "path": {
                  "description": "The project path.",
                  "type": "string"
                },
                "assemblyName": {
                  "description": "The assembly name, when available.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "language": {
                  "description": "The project language.",
                  "type": "string"
                },
                "targetFrameworks": {
                  "description": "The target frameworks inferred for the project.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "projectId",
                "name",
                "path",
                "language"
              ]
            },
            "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"
                  ]
                }
              }
            },
            "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"
                  ]
                }
              }
            },
            "metadataReferences": {
              "description": "The metadata references.",
              "type": "object",
              "properties": {
                "items": {
                  "description": "Items returned in this page.",
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "object",
                    "properties": {
                      "display": {
                        "description": "The display string for the metadata reference.",
                        "type": "string"
                      },
                      "path": {
                        "description": "The file path, when available.",
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "display"
                    ]
                  }
                },
                "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"
                  ]
                }
              }
            },
            "analyzers": {
              "description": "The analyzer references.",
              "type": "object",
              "properties": {
                "items": {
                  "description": "Items returned in this page.",
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "object",
                    "properties": {
                      "displayName": {
                        "description": "The analyzer display name.",
                        "type": "string"
                      },
                      "path": {
                        "description": "The analyzer assembly path, when available.",
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "displayName"
                    ]
                  }
                },
                "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"
                  ]
                }
              }
            },
            "compilationOptions": {
              "description": "The compilation options, when available.",
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "outputKind": {
                  "description": "The output kind.",
                  "type": "string"
                },
                "nullableContext": {
                  "description": "The nullable context mode.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "allowUnsafe": {
                  "description": "Whether unsafe code is allowed.",
                  "type": "boolean"
                },
                "optimizationLevel": {
                  "description": "The optimization level.",
                  "type": "string"
                },
                "warningLevel": {
                  "description": "The warning level.",
                  "type": "integer"
                },
                "preprocessorSymbols": {
                  "description": "The effective preprocessor symbols.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "outputKind",
                "optimizationLevel"
              ]
            }
          },
          "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