fix(codersdk/toolsdk): fix tool schemata (#17365)

Fixes two issues with the MCP server:
- Ensures we have a non-null schema, as the following schema was making
claude-code unhappy:

 
```
        "inputSchema": { "type": "object", "properties": null },
```


- Skip adding the coder_report_task tool if an agent client is not
available. Otherwise the agent may try to report tasks and get confused.
This commit is contained in:
Cian Johnston
2025-04-11 18:58:17 +01:00
committed by GitHub
parent 6330b0d545
commit 7b0422b49b
2 changed files with 20 additions and 0 deletions
+8
View File
@@ -259,6 +259,10 @@ is provisioned correctly and the agent can connect to the control plane.
Tool: aisdk.Tool{
Name: "coder_list_templates",
Description: "Lists templates for the authenticated user.",
Schema: aisdk.Schema{
Properties: map[string]any{},
Required: []string{},
},
},
Handler: func(ctx context.Context, _ map[string]any) ([]MinimalTemplate, error) {
client, err := clientFromContext(ctx)
@@ -318,6 +322,10 @@ is provisioned correctly and the agent can connect to the control plane.
Tool: aisdk.Tool{
Name: "coder_get_authenticated_user",
Description: "Get the currently authenticated user, similar to the `whoami` command.",
Schema: aisdk.Schema{
Properties: map[string]any{},
Required: []string{},
},
},
Handler: func(ctx context.Context, _ map[string]any) (codersdk.User, error) {
client, err := clientFromContext(ctx)