dapr/dapr · error
MCPServer %q: stdio.command path: %w
Error message
MCPServer %q: stdio.command path: %w
What it means
Error "MCPServer %q: stdio.command path: %w" thrown in dapr/dapr.
Source
Thrown at pkg/internal/loader/validate/mcpserver.go:84
// validateStdioCommand rejects relative commands that resolve outside pwd.
// Bare commands (no separator) are deferred to exec.LookPath at run time;
// absolute paths are explicit user choice and pass through.
func validateStdioCommand(serverName, command string) error {
if !strings.ContainsRune(command, filepath.Separator) || filepath.IsAbs(command) {
return nil
}
pwd, err := os.Getwd()
if err != nil {
return fmt.Errorf("MCPServer %q: cannot determine working directory: %w", serverName, err)
}
abs, err := filepath.Abs(command)
if err != nil {
return fmt.Errorf("MCPServer %q: stdio.command not resolvable: %w", serverName, err)
}
resolved, err := filepath.EvalSymlinks(abs)
if err != nil {
if !errors.Is(err, os.ErrNotExist) {
return fmt.Errorf("MCPServer %q: stdio.command path: %w", serverName, err)
}
resolved = abs
}
rel, err := filepath.Rel(pwd, resolved)
if err != nil || strings.HasPrefix(rel, "..") {
return fmt.Errorf("MCPServer %q: stdio.command must not escape working directory", serverName)
}
return nil
}
func validateMCPURL(serverName, transport, rawURL string) error {
u, err := url.Parse(rawURL)
if err != nil {
return fmt.Errorf("MCPServer %q: %s.url is not a valid URL: %w", serverName, transport, err)
}
switch u.Scheme {
case "http", "https":
// okView on GitHub (pinned to 74ad417027)
When it happens
Trigger: Thrown at pkg/internal/loader/validate/mcpserver.go:84 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dapr/dapr@74ad417027 (2026-08-16).
Data as JSON: /api/errors/cd4b18554106b8b0.
Report an issue: GitHub.