Skip to content

v3.1.0

Choose a tag to compare

@boykush boykush released this 03 Oct 13:48
e4cd731

What's Changed

✨ Features

  • feat(mcp): export a trace span per MCP request over OTLP (#775)

    scraps mcp serve exports one OpenTelemetry span per MCP request once OTEL_EXPORTER_OTLP_ENDPOINT or OTEL_EXPORTER_OTLP_TRACES_ENDPOINT is set, on both the stdio and the HTTP transport. A tool call shows up as tools/call search_scraps with its duration and outcome rather than as an anonymous POST /mcp, following OpenTelemetry's semantic conventions for MCP, and it joins the client's trace when the request carries a traceparent. With neither variable set, nothing is exported.

    • The exporter speaks OTLP over plain HTTP only, with no TLS and no gRPC, so point it at a collector next to the server. An https:// endpoint is refused at startup with a warning and leaves tracing off.
    • Tool arguments and error messages stay off the spans unless OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true.
    • The release binary grows from 14.6 MB to 16.9 MB on aarch64-apple-darwin.

🐛 Bug Fixes

  • fix(mcp): shut down the HTTP server gracefully on SIGTERM (#776)

    scraps mcp serve --http now stops on SIGTERM the way it does on Ctrl-C: it flushes the spans still buffered and exits 0. Running as PID 1 in a container, it had no handler for the signal, so the kernel dropped it and the container was killed only when its grace period ran out. Outside a container, kill <pid> ended the server with status 143; a script or supervisor that read that status now sees a clean exit. In-flight requests are cut, as they are on Ctrl-C. The stdio transport is unchanged.

🔧 Maintenance

  • ci: move the floating tags from the release workflow to the release skill (#758)
  • ci: run the performance test on every pull request (#757)
  • chore: wait for ai-review's approval in the release skill (#756)
  • chore(deps): update rust crates rmcp to v3.5.0 (#723, #766), config to v0.15.27 (#771), comfy-table to v8.0.1 (#760) and hyper-util to v0.1.21 (#759)
  • chore(deps): update style-dictionary to v5.5.5 (#739), livt to v0.16.1 (#747), the boykush/ai-plugins digest (#768) and the boykush/workflows digest (#753, #761, #762, #763, #764, #770, #772, #774)
  • v3.1.0 (#778)

Full Changelog: v3.0.1...v3.1.0