Add snapshot tools

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2025-11-24 16:34:29 +01:00
parent 66484113d3
commit 927ad89a0c
5 changed files with 410 additions and 16 deletions

View File

@@ -71,6 +71,9 @@ type ResolverInterface interface {
UpdateTaskTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UpdateTaskInput) (*mcp.CallToolResult, types.UpdateTaskOutput, error)
AssignTaskTool(ctx context.Context, req *mcp.CallToolRequest, input *types.AssignTaskInput) (*mcp.CallToolResult, types.AssignTaskOutput, error)
UnassignTaskTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UnassignTaskInput) (*mcp.CallToolResult, types.UnassignTaskOutput, error)
ListSnapshotsTool(ctx context.Context, req *mcp.CallToolRequest, input *types.ListSnapshotsInput) (*mcp.CallToolResult, types.ListSnapshotsOutput, error)
GetSnapshotTool(ctx context.Context, req *mcp.CallToolRequest, input *types.GetSnapshotInput) (*mcp.CallToolResult, types.GetSnapshotOutput, error)
TakeSnapshotTool(ctx context.Context, req *mcp.CallToolRequest, input *types.TakeSnapshotInput) (*mcp.CallToolResult, types.TakeSnapshotOutput, error)
}
// New creates a new MCP server instance with all handlers registered.
@@ -700,4 +703,34 @@ func registerToolHandlers(server *mcp.Server, resolver ResolverInterface) {
},
resolver.UnassignTaskTool,
)
mcp.AddTool(
server,
&mcp.Tool{
Name: "listSnapshots",
Description: "List all snapshots for the organization",
InputSchema: types.ListSnapshotsToolInputSchema,
OutputSchema: types.ListSnapshotsToolOutputSchema,
},
resolver.ListSnapshotsTool,
)
mcp.AddTool(
server,
&mcp.Tool{
Name: "getSnapshot",
Description: "Get a snapshot by ID",
InputSchema: types.GetSnapshotToolInputSchema,
OutputSchema: types.GetSnapshotToolOutputSchema,
},
resolver.GetSnapshotTool,
)
mcp.AddTool(
server,
&mcp.Tool{
Name: "takeSnapshot",
Description: "Take a snapshot of a collection of objects (risks, vendors, assets, data, nonconformities, obligations, continual improvements, or processing activities)",
InputSchema: types.TakeSnapshotToolInputSchema,
OutputSchema: types.TakeSnapshotToolOutputSchema,
},
resolver.TakeSnapshotTool,
)
}