PoshMcp v0.6.0 Release Notes

Released: 2026-07-25

What's New

MCP Resources Support

PoshMcp now exposes static and dynamic content as MCP Resources, allowing AI agents to read contextual information without executing PowerShell commands.

Two resource sources:

  • File-based resources — Expose configuration files, runbooks, or documentation on disk
  • Command-based resources — Serve live PowerShell output (processes, service topology, Azure resources)

Example: Configure a resource backed by a PowerShell command:

{
  "McpResources": {
    "Resources": [
      {
        "Uri": "poshmcp://resources/running-processes",
        "Name": "Running Processes",
        "Description": "List of currently running processes",
        "MimeType": "application/json",
        "Source": "command",
        "Command": "Get-Process | Select-Object Name, Id, WorkingSet | ConvertTo-Json -Depth 2"
      }
    ]
  }
}

MCP clients can now:

  • resources/list — discover configured resources
  • resources/read — fetch resource content by URI

MCP Prompts Support

Define reusable prompt templates with named arguments. AI agents inject arguments as PowerShell variables, enabling dynamic prompt rendering.

Example: A prompt template for service analysis:

{
  "McpPrompts": {
    "Prompts": [
      {
        "Name": "analyze-service",
        "Description": "Analyze Windows service status and health",
        "Arguments": [
          {
            "Name": "serviceName",
            "Description": "Name of the Windows service",
            "Required": true
          },
          {
            "Name": "detail",
            "Description": "Level of detail (basic, detailed)",
            "Required": false
          }
        ],
        "Command": "Get-Service -Name $serviceName | Format-List *; Get-EventLog -LogName System -Source Service Control Manager | Where-Object { $_.Message -match $serviceName } | Select-Object -First 5"
      }
    ]
  }
}

MCP clients can:

  • prompts/list — discover available prompt templates
  • prompts/get — retrieve a rendered prompt with arguments injected

Doctor Validation

The poshmcp doctor command now validates McpResources and McpPrompts configuration:

poshmcp doctor

Doctor checks include:

  • Resource URI uniqueness
  • File path accessibility (for file-based resources)
  • PowerShell command syntax validity (for command-based resources)
  • Prompt argument requirement consistency
  • Missing or circular prompt references

Configuration

McpResources Schema

{
  "McpResources": {
    "Resources": [
      {
        "Uri": "poshmcp://resources/{id}",
        "Name": "Display Name",
        "Description": "Brief description",
        "MimeType": "text/plain or application/json",
        "Source": "file" | "command",
        "Path": "path/to/file.txt",
        "Command": "PowerShell command"
      }
    ]
  }
}
  • Uri — Unique resource identifier (required)
  • Name — Human-readable name (required)
  • Description — What the resource contains (required)
  • MimeType — Content type (required)
  • Source"file" or "command" (required)
  • Path — File path (required if Source = "file"; relative to appsettings.json directory)
  • Command — PowerShell command (required if Source = "command")

McpPrompts Schema

{
  "McpPrompts": {
    "Prompts": [
      {
        "Name": "prompt-name",
        "Description": "What this prompt does",
        "Arguments": [
          {
            "Name": "arg-name",
            "Description": "Argument description",
            "Required": true | false
          }
        ],
        "Command": "PowerShell command with $arg-name variables"
      }
    ]
  }
}
  • Name — Prompt identifier (required)
  • Description — Purpose of the prompt (required)
  • Arguments — Array of argument definitions (optional)
  • Command — PowerShell command with $variableName placeholders (required)

Breaking Changes

None. This is a backward-compatible feature release.

Bug Fixes & Stability

  • Improved error messages for resource read failures with context-aware hints
  • Fixed resource caching edge case when command output is very large
  • Prompt argument validation now provides detailed mismatch errors

Upgrade Notes

For Existing Deployments

If you do not need MCP Resources or Prompts:

  • No configuration changes required
  • No breaking changes to existing PowerShell tool exposure
  • Safe to upgrade immediately

Enabling Resources and Prompts

To use the new features, add McpResources and/or McpPrompts sections to your appsettings.json:

# Update configuration manually or via CLI (CLI support planned for 0.6.1)
# For now, edit appsettings.json directly
  1. Read Resources and Prompts Guide for complete examples
  2. Use poshmcp doctor to validate your configuration
  3. Test resource and prompt access with your MCP client

Documentation

Known Limitations

  • Prompt commands cannot reference PowerShell functions defined in other prompts (single-scope execution)
  • Resource read operations do not cache; each call executes fresh (by design for live data)
  • File-based resources are read in full into memory; very large files may impact performance

Platform Support

  • Windows: .NET 10 runtime
  • Linux/macOS: .NET 10 runtime
  • Docker: Included in poshmcp:latest image
  • Azure Container Apps: Supported with POSHMCP_TRANSPORT=http

Testing

This release includes:

  • Unit tests for resource URI validation and uniqueness
  • Integration tests for resources/list and resources/read MCP methods
  • Integration tests for prompts/list and prompts/get MCP methods
  • Command-based resource execution and error handling tests
  • Doctor validation tests for configuration integrity

See Also