diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 4149d6f..71230fc 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -14,7 +14,6 @@ "mcpServers": { "claude-mnemonic": { "command": "${CLAUDE_PLUGIN_ROOT}/mcp-server", - "args": ["--project", "${CLAUDE_PROJECT}"], "env": {} } }, diff --git a/cmd/mcp/main.go b/cmd/mcp/main.go index 14d8926..c1444e7 100644 --- a/cmd/mcp/main.go +++ b/cmd/mcp/main.go @@ -8,12 +8,14 @@ import ( "net/http" "os" "os/signal" + "strings" "syscall" "time" "github.com/lukaszraczylo/claude-mnemonic/internal/config" "github.com/lukaszraczylo/claude-mnemonic/internal/mcp" "github.com/lukaszraczylo/claude-mnemonic/internal/watcher" + "github.com/lukaszraczylo/claude-mnemonic/pkg/hooks" "github.com/lukaszraczylo/oss-telemetry" "github.com/rs/zerolog" "github.com/rs/zerolog/log" @@ -22,9 +24,18 @@ import ( // Version is set at build time via ldflags. var Version = "dev" +// defaultProject derives the project ID the same way the hooks do. +func defaultProject() string { + dir := os.Getenv("CLAUDE_PROJECT_DIR") + if dir == "" { + dir, _ = os.Getwd() + } + return hooks.ProjectIDWithName(dir) +} + func main() { // Parse flags - project := flag.String("project", "", "Project name (required)") + project := flag.String("project", "", "Project ID (default: derived from CLAUDE_PROJECT_DIR or cwd)") debug := flag.Bool("debug", false, "Enable debug logging") flag.Parse() @@ -35,8 +46,8 @@ func main() { } log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, NoColor: true}) - if *project == "" { - log.Fatal().Msg("--project is required") + if *project == "" || strings.Contains(*project, "${") { + *project = defaultProject() } // Get worker port from config diff --git a/plugin/.claude-plugin/plugin.json.tpl b/plugin/.claude-plugin/plugin.json.tpl index 1ec79f3..dcc3873 100644 --- a/plugin/.claude-plugin/plugin.json.tpl +++ b/plugin/.claude-plugin/plugin.json.tpl @@ -10,7 +10,6 @@ "mcpServers": { "claude-mnemonic": { "command": "${CLAUDE_PLUGIN_ROOT}/mcp-server", - "args": ["--project", "${CLAUDE_PROJECT}"], "env": {} } },