Skip to content

Releases: cyanheads/usaspending-mcp-server

v0.2.3: mcp-ts-core ^0.10.9 maintenance

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 18:28
v0.2.3
b1b5db0

mcp-ts-core ^0.10.9 maintenance

Framework-tooling and skill sync — no tool, schema, or behavior changes.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9
  • @types/node 25.9.3 → 26.0.0

Added:

  • check-dependency-specifiers devcheck step — rejects floating latest/* specifiers in package.json + bun.lock workspaces (mcp-ts-core#246)
  • Plugin marketplace manifest checks in lint:packaging, gated by packaging.pluginManifests (mcp-ts-core#240)

Changed:

  • Vendored skills re-synced to framework 0.10.7–0.10.9, incl. the ctx.content collector reference in api-context (mcp-ts-core#239)
  • Fresh-scaffold + worktree-deletion devcheck guards (mcp-ts-core#242, #243, #237)

218 tests pass; bun run devcheck clean.

v0.2.2: run release:github with bun

Choose a tag to compare

@cyanheads cyanheads released this 16 Jun 02:29
v0.2.2
872beb8

run release:github with bun

The release:github npm script ran via tsx, which is not a declared dependency, so the GitHub Release step failed to resolve a runner. It now runs under bun run.

Fixed:

  • release:github runs bun run scripts/release-github.ts instead of tsx scripts/release-github.ts

Dependency bumps:

  • @biomejs/biome ^2.4.16 → ^2.5.0
  • vitest ^4.1.8 → ^4.1.9

218 tests pass; bun run devcheck clean.

v0.2.1: mcp-ts-core 0.10.6 adoption

Choose a tag to compare

@cyanheads cyanheads released this 12 Jun 08:35
v0.2.1
79170f5

mcp-ts-core 0.10.6 adoption

Adopts the framework's 0.10.6 enrichment helpers and identity fields, syncs packaging tooling and vendored skills.

Added:

  • truncated/shown/cap enrichment on usaspending_autocomplete, usaspending_get_idv_awards, and usaspending_search_recipients — discloses a full page on endpoints that return no total count
  • Dockerfile HEALTHCHECK (bun-native fetch against /healthz) and APP_VERSION OCI version label

Changed:

  • Pagination totals emit via ctx.enrich.total() under the canonical totalCount field, replacing per-tool total/result_total/subaward_total/transaction_total keys
  • createApp() sets explicit name and title to usaspending-mcp-server
  • bundle script runs clean-mcpb.ts to prune the packed MCPB; .mcpbignore patterns root-anchored
  • vendored skills re-synced to 0.10.6

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.21 → ^0.10.6
  • @types/node 25.9.2 → 25.9.3

218 tests pass; bun run devcheck clean.

v0.2.0: Two new tools, applied-filter enrichment, breaking naics_codes rename

Choose a tag to compare

@cyanheads cyanheads released this 09 Jun 00:40
v0.2.0
22da417

Two new tools, applied-filter enrichment, breaking naics_codes rename

Adds usaspending_search_federal_accounts (keyword/agency account search)
and usaspending_get_idv_awards (child orders under an IDV parent).
Applied-filter enrichment echoes land on search_awards and the three
analytics tools. Empty-result notices added to get_award_subawards and
get_award_transactions. Breaking: naics_code renamed to naics_codes array.

Added:

  • usaspending_search_federal_accounts — keyword/agency search over federal accounts; returns account_number for chaining into usaspending_get_federal_account (#16)
  • usaspending_get_idv_awards — list child contracts, task orders, and sub-IDVs under an IDV award; each row carries generated_unique_award_id for chaining (#17)
  • Applied-filter enrichment echoes (applied_keyword/s, applied_agency_name, applied_naics_codes, applied_time_period_start/end) on search_awards and the three analytics tools (#11)
  • Empty-result notice on get_award_subawards and get_award_transactions (#12)

Changed:

  • usaspending_search_awards: naics_code (string) renamed to naics_codes (array) — callers must update to naics_codes: [""] (#14)

Fixed:

  • usaspending_disaster_spending spending_type doc corrected: values are award and total (not spending/loans) (#6)

Dependency bumps:

  • @types/node ^25.9.1 -> 25.9.2
  • vitest ^4.1.7 -> ^4.1.8

215 tests pass; bun run devcheck clean.

v0.1.7: POST timeout, def_codes guard, empty-result returns

Choose a tag to compare

@cyanheads cyanheads released this 04 Jun 07:53
v0.1.7
3bdbad2

POST timeout, def_codes guard, empty-result returns

Four bug fixes: POST requests now enforce the configured timeout via fetchWithTimeout (matching get()), disaster_spending validates def_codes for non-overview dimensions before hitting the upstream API, and both spending_by_geography and spending_over_time return structured empty responses with ctx.enrich.notice() instead of throwing.

Fixed:

  • POST requests in USASpendingService now use fetchWithTimeout, enforcing timeoutMs for all analytics tools (#13)
  • usaspending_disaster_spending throws ValidationError when def_codes is absent for non-overview dimensions (#7)
  • usaspending_spending_by_geography returns structured empty response with notice instead of throwing no_data (#8)
  • usaspending_spending_over_time dead-code guard converted to structured return with notice (#9)

203 tests pass; bun run devcheck clean.

v0.1.6: mcp-ts-core ^0.9.21 framework adoption

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 15:10
v0.1.6
663f0df

mcp-ts-core ^0.9.21 framework adoption

Adopts @cyanheads/mcp-ts-core ^0.9.21 with per-request log context fix,
secret-stripping in error messages, and withRetry fail-fast on non-retryable errors.
Re-synced skills (8 updated + api-mirror + orchestrations); new devcheck/release/skill-version scripts.

Changed:

  • @cyanheads/mcp-ts-core ^0.9.16 -> ^0.9.21 — HTTP transport per-request log context fix; fetchWithTimeout strips query-string secrets from error messages; withRetry fails fast on non-retryable errors; ctx.fail auto-populates retryable flag
  • Skills re-synced — 8 updated + new api-mirror and orchestrations skills
  • scripts/devcheck.ts rewritten as standalone Bun script; check-skill-versions.ts and release-github.ts added

Dependencies:

  • @cyanheads/mcp-ts-core ^0.9.16 -> ^0.9.21
  • vitest ^4.1.7 -> ^4.1.8

202 tests pass; bun run devcheck clean.

v0.1.5: Enrichment on search/analytics tools, dead error contracts removed

Choose a tag to compare

@cyanheads cyanheads released this 30 May 09:28
v0.1.5
c3e026d

Enrichment on search/analytics tools, dead error contracts removed

Agent-facing context — query echoes, result totals, empty-result recovery — now surfaces via ctx.enrich() into the typed enrichment block on all search and analytics tools, reaching both structuredContent and content[] without a format() entry.

Changed:

  • usaspending_search_awards, usaspending_search_recipients, usaspending_spending_by_category: output.message removed; enrichment block added with pagination totals, counts, and recovery notice. no_match/no_data error contracts removed — empty results return success with an enrichment notice. (#10)
  • usaspending_disaster_spending, usaspending_get_award_subawards, usaspending_get_award_transactions, usaspending_list_agencies, usaspending_spending_by_geography, usaspending_spending_over_time, usaspending_autocomplete: enrichment block added for result counts, pagination metadata, and contextual guidance.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.13 → ^0.9.16

81 tests pass; bun run devcheck clean.

v0.1.4: mcp-ts-core ^0.9.13, ValidationError reclassification

Choose a tag to compare

@cyanheads cyanheads released this 29 May 05:49
v0.1.4
dae892e

mcp-ts-core ^0.9.13, ValidationError reclassification

Adopts @cyanheads/mcp-ts-core ^0.9.13 and reclassifies the get_agency missing-input error code.

Changed:

  • usaspending_get_agencymissing_input reason now maps to ValidationError instead of InvalidParams. data.reason is unchanged; only the numeric error code changes. Client-observable.
  • landing.requireAuth: false added to createApp() — preserves public-catalog inventory (0.9.13 changed the default to gated when auth is enabled)
  • package.json keywords — added typescript, bun, stdio, streamable-http for npm and GET /mcp discoverability

Framework (^0.9.9 → ^0.9.13):

  • MCP_HTTP_MAX_BODY_BYTES — body cap (default 1 MiB); oversized requests → HTTP 413 before SDK parse
  • HTTP session-init gate — non-initialize requests without Mcp-Session-Id → HTTP 400
  • Expected client errors (401/403/400/404) now log at warning, not full ErrorHandler pipeline
  • GET /mcp surfaces package.json keywords alongside name/version/description

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.9 → ^0.9.13
  • @biomejs/biome ^2.4.15 → ^2.4.16

79 tests pass; bun run devcheck clean.

v0.1.3: metadata, scripts, badges, Docker alignment

Choose a tag to compare

@cyanheads cyanheads released this 26 May 07:49
v0.1.3
3e0d49c

metadata, scripts, badges, Docker alignment

Aligns with ecosystem gold standard.

Changed:

  • package.json scripts migrated to bun run; start:stdio/start:http use bun ./dist/index.js; test uses bunx vitest run
  • package.json metadata: added author, bugs, homepage, funding; removed tsx devDependency
  • README: added Docker, MCP SDK, npm badges; Install in Claude Desktop / Cursor / VS Code buttons
  • Dockerfile: bun run build, org.opencontainers.image.source label, scoped image title
  • Docker: multi-arch image (linux/amd64, linux/arm64) published to ghcr.io/cyanheads/usaspending-mcp-server
  • .github/FUNDING.yml: GitHub Sponsors + Buy Me a Coffee

Fixed:

  • GitHub release created for v0.1.1 tag

bun run devcheck clean.

v0.1.2: mcpName field, publish-mcp script for MCP Registry

Choose a tag to compare

@cyanheads cyanheads released this 26 May 03:19
v0.1.2
16c55bf

mcpName field, publish-mcp script for MCP Registry

Adds the mcpName field required for MCP Registry publication and the publish-mcp script.

79 tests pass; bun run devcheck clean.