get_project_format_summary

[architecture]

Summarizes loaded workspace project file formats and project kinds for SDK-style migration planning. Returns aggregate counts, optional filtered project details, and optional dependency layers.

Why this tool exists

Project graphs, dependencies, unused references, and complexity are too large to infer reliably from scattered files.

How it helps the agent

The model can reason from architecture-level facts before deleting references, moving code, or prioritizing risky areas.

Try it locally in the GliderMCP playground

Parameters

NameTypeRequiredDescription
formatstringNoOptional format filter: 'sdkStyle', 'legacy', or 'unknown'. Omit for all formats.
kindstringNoOptional kind filter: 'library', 'exe', 'classicWeb', 'test', or 'unknown'. Omit for all kinds.
includeLayersbooleanNoInclude dependency-layer groups for the filtered projects. Default is false.
includeProjectsbooleanNoInclude filtered project detail rows. Default is true.
pathStylestringNoPath style: 'absolute' (default) or 'relative' (to solution root).

Examples

Summarize project formats

Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_project_format_summary",
    "arguments": {}
  }
}
Response
{
  "success": true,
  "data": {
    "projectCount": 44,
    "filteredProjectCount": 12,
    "filters": {
      "format": "legacy",
      "kind": null
    },
    "formatCounts": {
      "sdkStyle": 32,
      "legacy": 12,
      "unknown": 0
    },
    "kindCounts": {
      "library": 8,
      "exe": 2,
      "classicWeb": 1,
      "test": 1,
      "unknown": 0
    },
    "projects": [
      {
        "projectName": "MyProject.Core",
        "filePath": "src/MyProject.Core/MyProject.Core.csproj",
        "format": "legacy",
        "kind": "library",
        "targetFrameworks": [
          "v4.8"
        ],
        "outputType": "Library",
        "hasPackagesConfig": true,
        "hasWebApplicationTargets": false,
        "directDependencyCount": 0,
        "directDependentCount": 3,
        "migrationLayer": 0
      }
    ],
    "migrationLayers": [
      {
        "layer": 0,
        "projectCount": 1,
        "projects": [
          {
            "projectName": "MyProject.Core",
            "filePath": "src/MyProject.Core/MyProject.Core.csproj"
          }
        ]
      }
    ]
  },
  "error": null
}

Plan legacy project migration order

Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_project_format_summary",
    "arguments": {
      "format": "legacy",
      "includeLayers": true,
      "pathStyle": "relative"
    }
  }
}
Response
{
  "success": true,
  "data": {
    "projectCount": 44,
    "filteredProjectCount": 12,
    "filters": {
      "format": "legacy",
      "kind": null
    },
    "formatCounts": {
      "sdkStyle": 32,
      "legacy": 12,
      "unknown": 0
    },
    "kindCounts": {
      "library": 8,
      "exe": 2,
      "classicWeb": 1,
      "test": 1,
      "unknown": 0
    },
    "projects": [
      {
        "projectName": "MyProject.Core",
        "filePath": "src/MyProject.Core/MyProject.Core.csproj",
        "format": "legacy",
        "kind": "library",
        "targetFrameworks": [
          "v4.8"
        ],
        "outputType": "Library",
        "hasPackagesConfig": true,
        "hasWebApplicationTargets": false,
        "directDependencyCount": 0,
        "directDependentCount": 3,
        "migrationLayer": 0
      }
    ],
    "migrationLayers": [
      {
        "layer": 0,
        "projectCount": 1,
        "projects": [
          {
            "projectName": "MyProject.Core",
            "filePath": "src/MyProject.Core/MyProject.Core.csproj"
          }
        ]
      }
    ]
  },
  "error": null
}

Response Notes

Returns project format and kind counts, optional filtered project rows, and optional migration layers based on project-reference topology.

↑/↓ NavigateEnter OpenSpace Expand