-
Notifications
You must be signed in to change notification settings - Fork 50
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()
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.