Skip to content

Releases: cyanheads/worldbank-mcp-server

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

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 18:41
v0.1.14
a89edf3

mcp-ts-core ^0.10.9 maintenance

Framework-maintenance sync — no source or behavior changes.

Dependency bumps:

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

Changed:

  • Re-synced framework scripts/ and skills/, including the new check-dependency-specifiers.ts guard and updated devcheck.config.json checks

134 tests pass; bun run devcheck clean.

v0.1.13: server instructions + plugin identity unscoping

Choose a tag to compare

@cyanheads cyanheads released this 16 Jun 00:55
v0.1.13
0d63572

server instructions + plugin identity unscoping

Server-level orientation on createApp() and unscoped agent-facing plugin identity fields.

Added:

  • createApp({ instructions }) — worldbank_* workflow, indicator code format, country forms, and worldbank_get_data constraints, sent on every initialize

Changed:

  • Plugin display identity unscoped to worldbank-mcp-server (plugin name, mcpServers key, Codex displayName, Codex mcp.json key); install args stay @cyanheads/worldbank-mcp-server

Dependency bumps:

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

134 tests pass; bun run devcheck clean.

v0.1.12: mcp-ts-core ^0.10.6 adoption, packaging and identity hardening

Choose a tag to compare

@cyanheads cyanheads released this 12 Jun 08:33
v0.1.12
66d1244

mcp-ts-core ^0.10.6 adoption, packaging and identity hardening

Adopts the latest framework, pins the served identity to the machine name, and hardens MCPB bundling so dependency-shipped agent docs never leak into the bundle.

Dependencies:

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

Added:

  • createApp({ name, title }) set to worldbank-mcp-server — served identity is the unscoped package name on every surface
  • scripts/clean-mcpb.ts post-pack cleaner (wired into bundle) strips node_modules agent-doc entries that root-anchored .mcpbignore cannot reach
  • lint-packaging bundle-content + identity guards; check-framework-antipatterns z.coerce.boolean() env-flag rule
  • Dockerfile /healthz HEALTHCHECK and org.opencontainers.image.version label

Changed:

  • .mcpbignore root dev-dir patterns anchored with a leading /
  • Vendored framework skills re-synced to ^0.10.6

134 tests pass; bun run devcheck clean.

v0.1.11: Typed error contracts, empty getData structured result

Choose a tag to compare

@cyanheads cyanheads released this 04 Jun 08:38
v0.1.11
2c98eb6

Typed error contracts, empty getData structured result

Tools now surface recovery.hint on the wire for all declared error reasons.
getData returns a structured empty result instead of throwing when the WB API returns no observations.

Fixed:

  • worldbank_get_country, worldbank_get_indicator: service-layer errors caught and re-thrown via ctx.fail(), populating data.recovery.hint (#10)
  • worldbank_get_data: indicator_not_found and country_not_found re-thrown via ctx.fail(); no_data contract entry removed (#10)
  • worldbank_get_data: empty items array returns structured result (data: [], paging totals in enrichment) instead of throwing (#9)
  • worldbank_list_countries: errors[] contract added for invalid_filter; handler catches service throw and re-routes via ctx.fail() (#11)

134 tests pass; bun run devcheck clean.

v0.1.10: mcp-ts-core ^0.9.21 — log context fix, secret scrubbing, withRetry fail-fast

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 15:13
v0.1.10
6571eec

mcp-ts-core ^0.9.21 — log context fix, secret scrubbing, withRetry fail-fast

Adopts @cyanheads/mcp-ts-core ^0.9.16 → ^0.9.21 with three framework fixes
that improve observability, security, and retry correctness.

Changed:

  • HTTP transport per-request log context now carries fresh request/trace/span IDs instead of the frozen boot-time context
  • fetchWithTimeout strips query-string secrets (e.g. ?api_key=) from error messages and logs
  • 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

Also: README client-config key renamed to full package name; plugin manifests updated.

128 tests pass; bun run devcheck clean.

v0.1.9: enrichment adoption — query echoes, result totals, pagination, empty-result guidance

Choose a tag to compare

@cyanheads cyanheads released this 30 May 10:12
v0.1.9
2ee4324

enrichment adoption — query echoes, result totals, pagination, empty-result guidance

Pagination metadata (total/page/pages) moved from output to a typed enrichment block
across all four search/list/data tools, surfacing in both structuredContent and
content[] automatically. structuredContent keys renamed (total → totalCount,
page → currentPage, pages → totalPages; message → notice in search_indicators).
worldbank_search_indicators gains effectiveQuery; worldbank_get_data gains notice
for empty-result recovery hints.

Changed:

  • output fields total/page/pages → enrichment.totalCount/currentPage/totalPages (all 4 tools)
  • output.message (worldbank_search_indicators) → enrichment.notice
  • worldbank_search_indicators: adds enrichment.effectiveQuery (active filter echo)
  • worldbank_get_data: adds enrichment.notice for empty-result guidance
  • @cyanheads/mcp-ts-core ^0.9.13 → ^0.9.16

36 tests pass; bun run devcheck clean.

v0.1.8: mcp-ts-core ^0.9.13: 413 body cap, session-init gate, quieter error logging, GET /mcp keywords

Choose a tag to compare

@cyanheads cyanheads released this 29 May 05:50
v0.1.8
653ea4c

mcp-ts-core ^0.9.13: 413 body cap, session-init gate, quieter error logging, GET /mcp keywords

Framework adoption and dependency refresh.

Changed:

  • @cyanheads/mcp-ts-core ^0.9.9 → ^0.9.13 — HTTP transport hardening (configurable 413 body cap via MCP_HTTP_MAX_BODY_BYTES, session-init gate rejects uninitialized-session requests with 400), expected client error log-level split (401/403/400/404 now log at warning, not full error pipeline), GET /mcp surfaces package.json keywords.
  • @biomejs/biome ^2.4.15 → ^2.4.16

32 tests pass; bun run devcheck clean.

v0.1.7: Bug fixes, code simplification, mcp-ts-core ^0.9.9

Choose a tag to compare

@cyanheads cyanheads released this 24 May 22:17
v0.1.7
cf02c13

Bug fixes, code simplification, mcp-ts-core ^0.9.9

Two resource files passed cause: err in the wrong argument position to notFound() — it landed in the data object instead of the options bag, silently dropping the error cause from the envelope.

Fixed:

  • worldbank-country.resource and worldbank-indicator.resource — cause: err moved to third arg (options) of notFound()

Changed:

  • worldbank-search-indicators — missing-filter guard now throws missing_filter (ValidationError) instead of no_match (NotFound)
  • worldbank-get-data — invalid_params error contract corrected to ValidationError code
  • worldbank-service — consolidated imports, collapsed duplicate clientFilterTerm pagination guard, removed nullish fallback on items, bucket pattern for Map grouping

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.7 → ^0.9.9

32 tests pass; bun run devcheck clean.

v0.1.6: Field-test bug fixes

Choose a tag to compare

@cyanheads cyanheads released this 24 May 12:29
v0.1.6
a49f032

Field-test bug fixes

Three fixes from field-testing: a crash on invalid API input, a flag that was always false, and inaccurate pagination counts when filtering aggregates.

Fixed:

  • Error envelope array unwrap in getData — WB error responses are wrapped in an array; accessing .message on the outer array caused TypeError on invalid indicator/country
  • isAggregate lookup now checks countryiso3code (ISO3, e.g. AFE) in addition to country.id (ISO2); aggregate entries were always flagged false
  • listCountries with include_aggregates: false over-fetches all entries and re-paginates client-side; total and pages now reflect the filtered set

32 tests pass; bun run devcheck clean.

v0.1.5: Add hosted server endpoint

Choose a tag to compare

@cyanheads cyanheads released this 24 May 04:57
v0.1.5
9857a11

Add hosted server endpoint

Registers the public streamable-HTTP endpoint at worldbank.caseyjhand.com/mcp
via the server.json remotes block and README public URL link.

Added:

32 tests pass; bun run devcheck clean.