Skip to content

Releases: cyanheads/openfec-mcp-server

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

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 17:43
v0.4.13
4f1acde

mcp-ts-core ^0.10.9 maintenance

Framework-tooling refresh — no server behavior changes.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9
  • @biomejs/biome ^2.4.16 → ^2.5.0
  • @types/node ^25.9.3 → ^26.0.0
  • vitest ^4.1.8 → ^4.1.9

Added:

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

Changed:

265 tests pass; bun run devcheck clean.

v0.4.12: mcp-ts-core 0.10.6, packaging guards, identity pinning

Choose a tag to compare

@cyanheads cyanheads released this 12 Jun 08:42
v0.4.12
29bdbae

mcp-ts-core 0.10.6, packaging guards, identity pinning

Adopts mcp-ts-core 0.10.6 and hardens bundle/packaging hygiene and in-code identity.

Added:

  • In-code identity: createApp() name/title and manifest display_name pinned to openfec-mcp-server
  • clean-mcpb.ts strips dependency-shipped agent docs (skills/, .claude/, .agents/, SKILL.md) from the MCPB bundle
  • lint-packaging.ts bundle-content + identity checks (anchored .mcpbignore, no runtime-path stripping, zero node_modules agent-doc entries, name/title/display_name match)
  • check-framework-antipatterns.ts rule against z.coerce.boolean() on env flags
  • Dockerfile /healthz HEALTHCHECK (bun-native fetch) and APP_VERSION OCI label

Changed:

  • server.json FEC_API_KEY description trimmed

Dependency bumps:

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

265 tests pass; bun run devcheck clean.

v0.4.11: Three search/validation bug fixes

Choose a tag to compare

@cyanheads cyanheads released this 08 Jun 12:18
v0.4.11
75f9377

Three search/validation bug fixes

All three fixes address field-test findings on the live OpenFEC API.

Fixed:

  • openfec_search_legal — respondent, regulatory_citation, and statutory_citation now satisfy the hasFilter gate on their own; previously returned missing_filter when used without query/type/ao_number/case_number (#7)

  • candidate/committee ID validation — removed field-level .regex() from six search tools; handler validators (validateCandidateId, validateCommitteeId) now fire as sole enforcement, surfacing the friendly format message instead of the raw Zod regex pattern. Also resolves a JSON-Schema pattern/runtime case-sensitivity mismatch. (#8)

  • openfec_lookup_elections summary mode — independent_expenditures from /elections/summary/ is now annotated with a caveat flagging it as an unreconciled upstream aggregate; directs to openfec_search_expenditures mode:by_candidate for verified per-committee totals (#9)

Dependency bumps:

  • @types/node ^25.9.1 -> ^25.9.2

265 tests pass; bun run devcheck clean.

v0.4.10: McpError preservation and search_legal totalCount enrichment

Choose a tag to compare

@cyanheads cyanheads released this 04 Jun 08:20
v0.4.10
94c7b85

McpError preservation and search_legal totalCount enrichment

Two targeted bug fixes.

Fixed:

  • rethrowSanitized — re-throws McpError instances with original code and data intact instead of wrapping into plain Error. Fixes 422 → ValidationError misclassification (was InternalError) and preserves 404/429/403 codes. (#4)
  • openfec_search_legal enrichment — adds totalCount to the enrichment schema and calls ctx.enrich.total(), aligning with all eight other tools. (#6)

259 tests pass; bun run devcheck clean.

v0.4.9: mcp-ts-core 0.9.21 framework adoption

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 14:45
v0.4.9
d80477a

mcp-ts-core 0.9.21 framework adoption

Adopts @cyanheads/mcp-ts-core ^0.9.21 with three notable fixes from the 0.9.16–0.9.21 range.

Changed:

  • HTTP transport per-request log context — per-request logs and traces carry fresh request + trace/span IDs instead of the frozen boot context.
  • fetchWithTimeout error messages — query-string secrets (e.g. ?api_key=) are stripped from error messages and logs before surfacing.
  • withRetry — fails fast on non-retryable errors; ctx.fail auto-populates the retryable flag.

Dependencies:

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

252 tests pass; bun run devcheck clean.

v0.4.8: enrichment adoption on all 9 tools

Choose a tag to compare

@cyanheads cyanheads released this 30 May 09:53
v0.4.8
2ee1b3e

enrichment adoption on all 9 tools

All search and lookup tools now surface a typed enrichment block with totalCount (true result count before pagination) and an optional notice (empty-result guidance). Both structuredContent JSON and content[] markdown carry the data.

Added:

  • enrichment block on openfec_search_candidates, openfec_search_committees, openfec_search_contributions, openfec_search_disbursements, openfec_search_expenditures, openfec_search_filings, openfec_search_legal, openfec_lookup_elections, openfec_lookup_calendar

Dependency bumps:

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

141 tests pass; bun run devcheck clean.

v0.4.7: mcp-ts-core ^0.9.6 → ^0.9.13: HTTP hardening, session gate, quieter error logs, GET /mcp keywords

Choose a tag to compare

@cyanheads cyanheads released this 29 May 05:26
v0.4.7
5bf826e

mcp-ts-core ^0.9.6 → ^0.9.13: HTTP hardening, session gate, quieter error logs, GET /mcp keywords

Adopts six framework releases (0.9.7–0.9.13) and adds manifest metadata.

Added:

  • MCP_HTTP_MAX_BODY_BYTES — 413 guard on oversized HTTP request bodies (default 1 MiB)
  • landing.requireAuth: false — public hosted catalog serves full tool/resource/prompt inventory
  • GET /mcp keywords — package.json keywords surfaced on the HTTP status endpoint
  • manifest.jsonrepository, homepage, license fields
  • package.json keywords — bun, stdio, streamable-http

Changed:

  • HTTP session-init gate — non-initialize requests without Mcp-Session-Id → HTTP 400
  • Expected client error log levels — 401/403/400/404 use logger.warning, no stack traces

Dependency bumps:

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

129 tests pass; bun run devcheck clean.

v0.4.6: Zod regex + workflow hints on ID fields

Choose a tag to compare

@cyanheads cyanheads released this 26 May 19:51
v0.4.6
c8cd7f7

Zod regex + workflow hints on ID fields

Adds structural schema validation and discovery hints to candidate_id
and committee_id parameters across all tool definitions.

Changed:

  • candidate_id fields — added .regex(/^[HSP][0-9A-Z]+$/i) to surface a pattern in JSON Schema; updated .describe() to point callers to openfec_search_candidates for IDs (#2)
  • committee_id fields — added .regex(/^C\d+$/i) to surface a pattern in JSON Schema; updated .describe() to point callers to openfec_search_committees for IDs (#2)
  • Tests — updated invalid-ID assertions to expect ZodError at parse time

129 tests pass; bun run devcheck clean (outdated-dep advisory pre-existing, unrelated).

v0.4.5: mcp-ts-core ^0.9.1 → ^0.9.6, MCPB bundle support, per-version changelog

Choose a tag to compare

@cyanheads cyanheads released this 23 May 12:28
v0.4.5
090b30c

Maintenance release: framework bump, MCPB bundle scaffolding, changelog migrated to per-version format.

Changed:

  • @cyanheads/mcp-ts-core ^0.9.1 → ^0.9.6
  • zod ^4.4.3 added as direct dependency
  • Changelog migrated to per-version files under changelog/<major.minor>.x/
  • Dev dep patches: biome, @types/node, vitest

Added:

  • MCPB bundle support — manifest.json + .mcpbignore + lint:packaging + list-skills scripts
  • Install badge (Claude Desktop)

bun run devcheck clean.