Skip to content

Releases: cyanheads/libofcongress-mcp-server

v0.2.12: Subject-namespace filtering, totalCount consistency, and newspaper page metadata fallbacks

Choose a tag to compare

@cyanheads cyanheads released this 13 Jul 18:57
v0.2.12
5341dae

Subject-namespace filtering, totalCount consistency, and newspaper page metadata fallbacks

Three fixes: LCSH-only subject suggestions, totalCount agreement on empty results, and URL-derived newspaper page metadata.

Added:

  • libofcongress_get_newspaper_page derives date and sequence from the page URL when the resource endpoint omits them (#28)

Fixed:

  • libofcongress_search_subjects filters suggest results to the LCSH subjects namespace (#25)
  • libofcongress_browse_collections, libofcongress_search, and libofcongress_search_newspapers re-enrich totalCount to 0 on empty results (#27)

171 tests pass; bun run devcheck clean.

CHANGELOG v0.2.12

v0.2.11: search/get_item id fixes, mcp-ts-core ^0.10.14

Choose a tag to compare

@cyanheads cyanheads released this 13 Jul 17:36
v0.2.11
e24ad7c

search/get_item id fixes, mcp-ts-core ^0.10.14

Fixes the search→get_item id contract (#24, #26) and adopts mcp-ts-core ^0.10.14 with supply-chain install hardening.

Added:

  • is_item field on libofcongress_search results — flags catalog items resolvable via libofcongress_get_item (#24)
  • bunfig.toml supply-chain guard — minimumReleaseAge + Socket install scanner
  • .github/SECURITY.md, .gitattributes

Changed:

  • Docker base image pinned to bun:1.3.14/1.3.14-slim; build installs with --ignore-scripts
  • Vendored skills/scripts re-synced to the framework

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.9 → ^0.10.14
  • @biomejs/biome ^2.5.0 → ^2.5.3
  • @types/node ^26.0.0 → ^26.1.1
  • ignore ^7.0.5 → ^7.0.6
  • tsc-alias ^1.8.17 → ^1.9.0
  • vitest ^4.1.9 → ^4.1.10
  • @socketsecurity/bun-security-scanner ^1.1.2 (new)

Fixed:

  • libofcongress_search id extraction preserves the full /item/ path for multi-segment newspaper ids (#24)
  • libofcongress_get_item encodes multi-segment ids per path segment instead of flattening slashes to %2F (#24)
  • libofcongress_get_item and the libofcongress://item/{item_id} resource normalize protocol-relative urls to https:// (#26)

161 tests pass; bun run devcheck clean.

CHANGELOG v0.2.11

v0.2.10: mcp-ts-core ^0.10.9 maintenance refresh

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 11:52
v0.2.10
a15dafb

mcp-ts-core ^0.10.9 maintenance refresh

Framework and dev-dependency refresh; vendored skills and devcheck scripts re-synced.

Dependency bumps:

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

Added:

  • check-dependency-specifiers devcheck step — fails on floating specifiers (latest, *, dist-tags) in package.json and bun.lock workspaces (cyanheads/mcp-ts-core#246)
  • Plugin marketplace manifest checks in lint:packaging — validates .claude-plugin and .codex-plugin descriptions, unscoped identity, and the full-package install arg (cyanheads/mcp-ts-core#240)

Changed:

151 tests pass; bun run devcheck clean.

v0.2.9: mcp-ts-core ^0.10.6 adoption, display identity, bundle cleaning

Choose a tag to compare

@cyanheads cyanheads released this 13 Jun 03:46
v0.2.9
d4ec4ce

mcp-ts-core ^0.10.6 adoption, display identity, bundle cleaning

Adopts the 0.10.x framework line and adds explicit display identity,
subject-search truncation disclosure, and MCPB bundle-content cleaning.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.21 → ^0.10.6
  • @biomejs/biome ^2.4.16 → ^2.5.0
  • @types/node ^25.9.1 → ^25.9.3

Added:

  • libofcongress_search_subjects enrichment: truncated/shown/cap with raise-limit guidance when results hit the cap
  • scripts/clean-mcpb.ts — strips dependency-shipped agent docs (skills/, .claude/, .agents/, SKILL.md) from the .mcpb bundle
  • Docker HEALTHCHECK polling /healthz; org.opencontainers.image.version label

Changed:

  • createApp() sets name/title to libofcongress-mcp-server; .codex-plugin displayName de-scoped to match
  • .mcpbignore dev-dir patterns anchored; /.agents/ and /skills/ added

151 tests pass; bun run devcheck clean.

v0.2.8: Rate-limit error contract fix across all 5 tools

Choose a tag to compare

@cyanheads cyanheads released this 04 Jun 08:56
v0.2.8
a88b90c

Rate-limit error contract fix across all 5 tools

All 5 tool handlers now route rate-limit throws from the service layer through ctx.fail() so the framework's contract-correlation machinery auto-populates retryable and recovery.hint.

Fixed:

  • Rate-limit error routing — all 5 tool handlers wrap the service call in try/catch and re-throw rate-limit errors via ctx.fail('rate_limit_exceeded') instead of letting the service factory throw bypass the contract entry (#22).
  • Error code — corrected from JsonRpcErrorCode.ServiceUnavailable (-32000) to JsonRpcErrorCode.RateLimited (-32003) in all 5 contracts.
  • retryable: false — added to each rate_limit_exceeded contract entry; framework retry machinery now receives an explicit do-not-retry signal for the 1-hour block window.
  • Test — libofcongress-search rate-limit test updated to pass errors contract to createMockContext.

151 tests pass; bun run devcheck clean.

v0.2.7: mcp-ts-core ^0.9.21: per-request log context, secret scrubbing, withRetry fail-fast

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 14:31
v0.2.7
0e0b39c

mcp-ts-core ^0.9.21: per-request log context, secret scrubbing, withRetry fail-fast

Adopts @cyanheads/mcp-ts-core ^0.9.16 → ^0.9.21. Per-request logs and traces now
carry fresh request + trace/span IDs instead of the frozen boot context. fetchWithTimeout
strips query-string secrets from error messages. withRetry fails fast on non-retryable
errors; ctx.fail auto-populates the retryable flag.

Changed:

  • README client-config keys updated to full package name libofcongress-mcp-server;
    bunx/npx args corrected to scoped name @cyanheads/libofcongress-mcp-server@latest
  • Skills re-synced: add-tool, add-service, api-canvas, api-context, api-linter,
    api-utils, design-mcp-server, release-and-publish updated; api-mirror and
    orchestrations skills added
  • scripts/release-github.ts and release:github npm script added

Dependencies:

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

151 tests pass; bun run devcheck clean.

v0.2.6: Enrichment adoption — typed enrichment block on search/browse tools

Choose a tag to compare

@cyanheads cyanheads released this 30 May 09:28
v0.2.6
d958e8e

Enrichment adoption — typed enrichment block on search/browse tools

Search and browse tools now surface query echoes, true result totals, and empty-result guidance in a typed enrichment block that reaches both structuredContent and the content[] markdown trailer automatically.

Changed:

  • libofcongress_search, libofcongress_search_newspapers, libofcongress_browse_collections, libofcongress_search_subjects — enrichment adoption: effectiveQuery, totalCount, and notice in a typed enrichment block (both channels).
  • structuredContent — the message key (previously in domain output) moved to enrichment.notice; value and presence semantics unchanged.
  • All four search/browse tools — removed the unreachable empty_results error contract (#21); empty results return success with enrichment.notice guidance.

Dependency bumps:

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

81 tests pass; bun run devcheck clean.

v0.2.5: mcp-ts-core ^0.9.9 → ^0.9.13, dep refresh, public catalog landing fix

Choose a tag to compare

@cyanheads cyanheads released this 29 May 05:15
v0.2.5
8a172cc

mcp-ts-core ^0.9.9 → ^0.9.13, dep refresh, public catalog landing fix

Framework adoption (0.9.10–0.9.13) brings HTTP hardening and DX improvements.

Changed:

  • landing.requireAuth: false — explicit opt-out of the new auth-gated default for public hosted catalogs (0.9.13)
  • @cyanheads/mcp-ts-core ^0.9.9 → ^0.9.13

Added:

  • MCP_HTTP_MAX_BODY_BYTES — configurable inbound body cap (default 1 MiB); oversized requests rejected with 413 before body parsing
  • HTTP session-init gate — non-initialize requests without Mcp-Session-Id rejected with 400
  • Expected client errors (401/403/400/404) now log at warning level instead of full error pipeline
  • GET /mcp keywords — package.json keywords now surfaced on the status endpoint
  • Plugin metadata files (.claude-plugin/, .codex-plugin/)
  • skills/code-simplifier/ — synced from framework
  • MCP_HTTP_MAX_BODY_BYTES documented in .env.example
  • manifest.jsonrepository, homepage, license fields added

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.9 → ^0.9.13
  • @biomejs/biome ^2.4.7 → ^2.4.16
  • @types/node ^25.6.0 → ^25.9.1
  • tsc-alias ^1.8.16 → ^1.8.17
  • typescript ^5.9.3 → ^6.0.3
  • vitest ^4.1.0 → ^4.1.7

81 tests pass; bun run devcheck clean.

v0.2.4: FUNDING.yml, hosted URL in README, trim npm files

Choose a tag to compare

@cyanheads cyanheads released this 26 May 07:46
v0.2.4
02e80e5

FUNDING.yml, hosted URL in README, trim npm files

Metadata and discoverability patch.

Added:

Changed:

  • package.json files — removed changelog/ and AGENTS.md from npm bundle

81 tests pass; bun run devcheck clean.

v0.2.3

Choose a tag to compare

@cyanheads cyanheads released this 25 May 02:07
v0.2.3
0fae505

Drop tsx, align scripts to bun-native execution, revert Dockerfile to oven/bun

Build tooling alignment release — removes the tsx runtime dependency and runs all scripts natively under Bun. Dockerfile build stage returns to oven/bun:1.3.

Changed:

  • All package.json scripts switched from tsx to bun run scripts/*.ts
  • start:stdio and start:http now invoke bun ./dist/index.js (not node)
  • Dockerfile build stage reverted from node:24-slim to oven/bun:1.3 (bun install + bun run build)
  • funding block added to package.json

Removed:

  • tsx devDependency

81 tests pass; bun run devcheck clean.