Skip to content

MCP Server #1093

@SteveL-MSFT

Description

@SteveL-MSFT

Summary of the new feature / enhancement

dsc.exe will be a MCP server started as dsc mcp. It will support STDIO transport. This is to support future AI scenarios where the user wants to use MCP clients like CoPilot to make changes ot the system which results in invoking a DSC resource.

Proposed technical implementation details (optional)

As LLMs are still evolving and we want to support SLM use cases as well, we should be thoughtful about the number of tokens returned as to not exceed limits. Additionally, we should assume in the future that a system may have thousands of DSC resources (locally or perhaps through remote discovery from a repository), so need a strategy for this to work effectively.

Proposed tools in implementation order:

list_dsc_resources()

This will provide a small list of resources found on the current system. Should include the typeName, description and kind. Only 1 version should be returned.

list_adapted_resources(<adapter>)

This allows the AI to use information from the previous tool to get a list of resources from a specific adapter. The description of this tool should indicate to use this per adapter if the first tool doesn't return something useful.

show_dsc_resource(<typeName>)

This retrieves all the information for one specific DSC resource. Only latest version is returned.

show_dsc_resource_schema(<typeName>)

This retrieves the JSONSchema for one specific DSC resource.

validate_dsc_resource_schema(<typeName>, <input>)

Used to validate potential input JSON against the resource JSONSchema.

`invoke_dsc_resource(, , [input])

Invoke get, set, test, or export against a specific resource.

list_configuration_examples()

Returns a list of embedded example configurations (YAML) returning name and description. This is intended to give the LLM some example of what a proper configuration doc should look like.

show_configuration_example(<name>)

Returns one example configuration (YAML)

validate_configuration(<input>)

Perform static analysis of the configuration.

invoke_dsc_configuration(<operation>, <input>)

Invoke get, set, test, or export against the configuration.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions