mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
Adds a `coder exp mcp` command which will start a local MCP server listening on stdio with the following capabilities: * Show logged in user (`coder whoami`) * List workspaces (`coder list`) * List templates (`coder templates list`) * Start a workspace (`coder start`) * Stop a workspace (`coder stop`) * Fetch a single workspace (no direct CLI analogue) * Execute a command inside a workspace (`coder exp rpty`) * Report the status of a task (currently a no-op, pending task support) This can be tested as follows: ``` # Start a local Coder server. ./scripts/develop.sh # Start a workspace. Currently, creating workspaces is not supported. ./scripts/coder-dev.sh create -t docker --yes # Add the MCP to your Claude config. claude mcp add coder ./scripts/coder-dev.sh exp mcp # Tell Claude to do something Coder-related. You may need to nudge it to use the tools. claude 'start a docker workspace and tell me what version of python is installed' ```
23 lines
511 B
Go
23 lines
511 B
Go
package cli
|
|
|
|
import "github.com/coder/serpent"
|
|
|
|
func (r *RootCmd) expCmd() *serpent.Command {
|
|
cmd := &serpent.Command{
|
|
Use: "exp",
|
|
Short: "Internal commands for testing and experimentation. These are prone to breaking changes with no notice.",
|
|
Handler: func(i *serpent.Invocation) error {
|
|
return i.Command.HelpHandler(i)
|
|
},
|
|
Hidden: true,
|
|
Children: []*serpent.Command{
|
|
r.scaletestCmd(),
|
|
r.errorExample(),
|
|
r.mcpCommand(),
|
|
r.promptExample(),
|
|
r.rptyCommand(),
|
|
},
|
|
}
|
|
return cmd
|
|
}
|