-
Notifications
You must be signed in to change notification settings - Fork 52
Description
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([adapter])
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.
show_dsc_resource(<typeName>)
This retrieves all the information for one specific DSC resource. Only latest version is returned. Includes schema.
validate_dsc_resource_schema(<typeName>, <input>)
Used to validate potential input JSON against the resource JSONSchema.
invoke_dsc_resource(<operation>, <typeName>, [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.