Disable localhost protection on StreamableHTTP and simplify error returns

Amolith created

Change summary

internal/server/server.go | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

Detailed changes

internal/server/server.go 🔗

@@ -83,7 +83,9 @@ func Run(ctx context.Context, cfg *config.Config) error {
 	if cfg.HTTPAddr != "" {
 		handler := mcp.NewStreamableHTTPHandler(func(r *http.Request) *mcp.Server {
 			return server
-		}, nil)
+		}, &mcp.StreamableHTTPOptions{
+			DisableLocalhostProtection: true,
+		})
 		log.Printf("sb-mcp: MCP server listening on %s", cfg.HTTPAddr)
 		return http.ListenAndServe(cfg.HTTPAddr, handler)
 	}
@@ -112,7 +114,7 @@ func makeExecuteLuaHandler(client *silverbullet.Client, defaultTimeout int) func
 
 		result, err := client.ExecuteLua(ctx, params.Script, timeout)
 		if err != nil {
-			return nil, nil, fmt.Errorf("executing lua: %w", err)
+			return nil, nil, err
 		}
 
 		if result.Error != "" {
@@ -139,7 +141,7 @@ func makeScreenshotHandler(client *silverbullet.Client) func(context.Context, *m
 	return func(ctx context.Context, req *mcp.CallToolRequest, params ScreenshotParams) (*mcp.CallToolResult, any, error) {
 		data, err := client.Screenshot(ctx)
 		if err != nil {
-			return nil, nil, fmt.Errorf("fetching screenshot: %w", err)
+			return nil, nil, err
 		}
 
 		return &mcp.CallToolResult{
@@ -163,7 +165,7 @@ func makeConsoleLogsHandler(client *silverbullet.Client) func(context.Context, *
 
 		result, err := client.ConsoleLogs(ctx, limit, params.Since)
 		if err != nil {
-			return nil, nil, fmt.Errorf("fetching logs: %w", err)
+			return nil, nil, err
 		}
 
 		logsJSON, err := json.MarshalIndent(result.Logs, "", "  ")