Skip to content

Commit e8bbf96

Browse files
author
Steve Lee (POWERSHELL HE/HIM) (from Dev Box)
committed
wrap result in object to satisfy mcp
1 parent 9600755 commit e8bbf96

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

dsc/src/mcp/invoke_dsc_resource.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use serde::{Deserialize, Serialize};
2222
use tokio::task;
2323

2424
#[derive(Deserialize, JsonSchema)]
25+
#[serde(rename_all = "lowercase", untagged)]
2526
pub enum DscOperation {
2627
Get,
2728
Set,
@@ -30,13 +31,19 @@ pub enum DscOperation {
3031
}
3132

3233
#[derive(Serialize, JsonSchema)]
34+
#[serde(untagged)]
3335
pub enum ResourceOperationResult {
3436
GetResult(GetResult),
3537
SetResult(SetResult),
3638
TestResult(TestResult),
3739
ExportResult(ExportResult),
3840
}
3941

42+
#[derive(Serialize, JsonSchema)]
43+
pub struct InvokeDscResourceResponse {
44+
pub result: ResourceOperationResult,
45+
}
46+
4047
#[derive(Deserialize, JsonSchema)]
4148
pub struct InvokeDscResourceRequest {
4249
#[schemars(description = "The operation to perform on the DSC resource")]
@@ -59,7 +66,7 @@ impl McpServer {
5966
open_world_hint = true,
6067
)
6168
)]
62-
pub async fn invoke_dsc_resource(&self, Parameters(InvokeDscResourceRequest { operation, resource_type, properties_json }): Parameters<InvokeDscResourceRequest>) -> Result<Json<ResourceOperationResult>, McpError> {
69+
pub async fn invoke_dsc_resource(&self, Parameters(InvokeDscResourceRequest { operation, resource_type, properties_json }): Parameters<InvokeDscResourceRequest>) -> Result<Json<InvokeDscResourceResponse>, McpError> {
6370
let result = task::spawn_blocking(move || {
6471
let mut dsc = DscManager::new();
6572
let Some(resource) = dsc.find_resource(&resource_type, None) else {
@@ -97,6 +104,6 @@ impl McpServer {
97104
}
98105
}).await.map_err(|e| McpError::internal_error(e.to_string(), None))??;
99106

100-
Ok(Json(result))
107+
Ok(Json(InvokeDscResourceResponse { result }))
101108
}
102109
}

0 commit comments

Comments
 (0)