Skip to content

v1.2.0

Latest

Choose a tag to compare

@stefanoamorelli stefanoamorelli released this 20 Aug 17:02

This release ships the Streamable HTTP transport (from the unpublished 1.1.0) together with scalability hardening across the request path and HTTP server.

Added

  • Client-side rate limiting: a token bucket matching FRED's 120 requests/minute per-key quota
  • TTL+LRU response cache and coalescing of identical in-flight requests
  • Retries with exponential backoff and jitter for 429/5xx/network failures, honoring Retry-After
  • Request timeouts via AbortController
  • HTTP session limits (MCP_MAX_SESSIONS) and idle-session reaping (MCP_SESSION_TTL_MS)
  • GET /healthz endpoint with session, cache, and uptime statistics
  • Graceful shutdown on SIGTERM as well as SIGINT
  • Leveled stderr logging via LOG_LEVEL
  • Streamable HTTP transport (--http flag or TRANSPORT=http), MCP conformance CI, documentation site
  • All tunables configurable through environment variables (see the README configuration table)

Changed

  • A missing FRED_API_KEY now fails with a clear configuration error instead of sending a placeholder key that FRED rejected with an opaque 400
  • Unknown HTTP session IDs return 404 instead of 400
  • fred_get_series fetches observations and metadata concurrently
  • fred_browse accepts filter_variable and filter_value for category_series
  • Tools are registered through registerTool (SDK 1.25 deprecated server.tool)

Fixed

  • Windows build and entrypoint detection (#29, thanks @zhowzeng)

Full changelog: v1.0.2...v1.2.0