Skip to content

Releases: cyanheads/census-mcp-server

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

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 10:55
v0.1.11
d1049dd

mcp-ts-core ^0.10.9 maintenance

Adopts the @cyanheads/mcp-ts-core 0.10.7–0.10.9 line: ctx.content media collector, Canvas SQL invalid_sql classification with DuckDB binder detail, the ambiguous-column describe() fix, and fresh-scaffold devcheck guards.

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

Changed:

  • devcheck.config.json enables the new plugin-manifest packaging check (packaging.pluginManifests); validates plugin descriptions, unscoped display names, and the scoped install arg.
  • .codex-plugin/plugin.json longDescription filled with the tool-surface summary.
  • scripts re-synced — new check-dependency-specifiers.ts floating-specifier guard, plus skip-on-fresh-scaffold guards across the devcheck scripts.
  • 14 framework skills re-synced to upstream versions, mirrored into .claude/skills/ and .agents/skills/.

111 tests pass; bun run devcheck clean.

v0.1.10: mcp-ts-core 0.10.6 adoption + MCPB bundle hardening

Choose a tag to compare

@cyanheads cyanheads released this 12 Jun 07:24
v0.1.10
a2a3169

mcp-ts-core 0.10.6 adoption + MCPB bundle hardening

Adopts @cyanheads/mcp-ts-core ^0.10.6 with explicit server identity and refined error/output contracts, and hardens MCPB bundle packaging.

Added:

  • census_search_variables emits truncated/shown/cap output fields and a ctx.enrich.truncated() signal when matches exceed the limit
  • scripts/clean-mcpb.ts (wired into bundle) strips dependency-shipped agent docs from MCPB bundles that root-anchored .mcpbignore cannot reach
  • lint:packaging bundle-content + identity guards; check-framework-antipatterns flags z.coerce.boolean() on env flags

Changed:

  • createApp() sets explicit name/title of census-mcp-server
  • variable_not_found in census_query_data and census_compare_geographies: ValidationError → NotFound
  • census_resolve_geography throws validationError() for a blank name
  • .mcpbignore root dev-dir patterns anchored with a leading slash

Dependencies:

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

111 tests pass; bun run devcheck clean.

v0.1.9: county-scoped tract queries, dataset_not_found contract, geography_type enum

Choose a tag to compare

@cyanheads cyanheads released this 04 Jun 07:51
v0.1.9
88c8f6d

county-scoped tract queries, dataset_not_found contract, geography_type enum

Adds county_fips / within_county fields to census_query_data and census_compare_geographies so tract and block-group queries can be scoped to a specific county. Fixes error contract and geography_type validation.

Fixed:

  • census_query_data / census_compare_geographies: new county_fips / within_county fields; CensusApiService builds compound in=state:XX%20county:YYY clause when both state and county FIPS are supplied (#11)
  • census_query_data: dataset_not_found added to errors[] contract; guard now uses ctx.fail('dataset_not_found') for consistent data.reason (#12)
  • census_resolve_geography: geography_type changed from z.string() to z.enum(['state','county','place','tract']); invalid and whitespace-padded values rejected at schema boundary (#14)
  • census_resolve_geography format(): county FIPS line annotates county_fips usage in census_query_data for tract-level results

110 tests pass; bun run devcheck clean.

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

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 13:59
v0.1.8
8e7536c

mcp-ts-core ^0.9.21 framework adoption

Adopts three framework fixes from @cyanheads/mcp-ts-core 0.9.17–0.9.21.

Changed:

  • HTTP transport log context — per-request logs and traces now carry fresh request/trace/span IDs instead of the frozen boot 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

103 tests pass; bun run devcheck clean.

v0.1.7: Enrichment adoption on search/query/compare tools

Choose a tag to compare

@cyanheads cyanheads released this 30 May 09:12
v0.1.7
31efe1a

Enrichment adoption on search/query/compare tools

Query echo, result totals, and empty-result guidance now surface in a typed enrichment block on all search/list/compare tools, reaching both structuredContent JSON and content[] markdown.

Changed:

  • census_search_variables: effectiveQuery echo, totalMatches, dataset/year, notice on empty results in enrichment; total_matches/dataset/year removed from output
  • census_query_data: totalRows, dataset, year moved to enrichment; total_rows removed from output
  • census_list_datasets: totalCount, filterApplied, notice on empty results in enrichment; total_count removed from output
  • census_list_geographies: totalLevels, dataset, year moved to enrichment; dataset/year removed from output
  • census_compare_geographies: totalCount, truncated, sortVariable, dataset, year, notice when truncated in enrichment; output fields removed; total_count/sort_variable renamed to camelCase in enrichment

Dependency bumps:

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

48 tests pass; bun run devcheck clean.

v0.1.6: mcp-ts-core ^0.9.13, TypeScript ^6, manifest user_config wiring, error code alignment

Choose a tag to compare

@cyanheads cyanheads released this 29 May 04:51
v0.1.6
a09fe7b

mcp-ts-core ^0.9.13, TypeScript ^6, manifest user_config wiring, error code alignment

Adopts @cyanheads/mcp-ts-core ^0.9.9 → ^0.9.13 and refreshes dev deps. Wires CENSUS_API_KEY into the MCPB bundle's user_config, aligns tool error codes, and adds landing.requireAuth: false for hosted deployments.

Changed:

  • HTTP body cap — inbound requests over 1 MiB rejected with 413 (MCP_HTTP_MAX_BODY_BYTES, default 1 MiB)
  • Session-init gate — stateful HTTP mode rejects non-initialize requests missing Mcp-Session-Id with 400
  • Quieter client-error logging — 401/403/400/404 responses use logger.warning, not the full error pipeline
  • GET /mcp keywords — package.json keywords now surfaced on the HTTP status endpoint
  • manifest.json — CENSUS_API_KEY wired as ${user_config.CENSUS_API_KEY}; default: "" added for optional field safety
  • Error codes — InvalidParams replaced with ValidationError across census_query_data, census_list_geographies, census_resolve_geography, census_compare_geographies
  • landing.requireAuth: false set in src/index.ts

Dependency bumps:

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

50 tests pass; bun run devcheck clean.

v0.1.5: FUNDING.yml, Docker image, missing GH releases

Choose a tag to compare

@cyanheads cyanheads released this 26 May 07:48
v0.1.5
6ef2197

FUNDING.yml, Docker image, missing GH releases

Metadata and infrastructure alignment release.

Added:

  • .github/FUNDING.yml — GitHub Sponsors and Buy Me a Coffee
  • Docker image — multi-arch linux/amd64 + linux/arm64 at ghcr.io/cyanheads/census-mcp-server:0.1.5
  • GitHub releases for v0.1.0, v0.1.1, v0.1.2

50 tests pass; bun run devcheck clean.

v0.1.4: Drop tsx, align scripts to bun-native execution

Choose a tag to compare

@cyanheads cyanheads released this 25 May 02:08
v0.1.4
edece18

Drop tsx, align scripts to bun-native execution

All build scripts switched from tsx to bun run; tsx removed from devDependencies.
start:stdio and start:http now run via bun directly. funding block added.

Changed:

  • All scripts: tsx replaced with bun run
  • test: vitest run → bunx vitest run
  • start:stdio / start:http: node → bun ./dist/index.js
  • start script removed (superseded by start:stdio / start:http)
  • engines.bun: >=1.3.0 → >=1.3.2

Removed:

  • tsx devDependency

Added:

  • funding block (GitHub Sponsors, Buy Me a Coffee)

50 tests pass; bun run devcheck clean.

v0.1.3: Geography resolution fully operational — 8 bugs fixed (3 critical)

Choose a tag to compare

@cyanheads cyanheads released this 25 May 01:45
v0.1.3
5dfdf80

Geography resolution fully operational — 8 bugs fixed (3 critical)

Field-test pass that restored full geography resolution, removed the
CENSUS_API_KEY requirement from discovery-only tools, and simplified
service initialization across 10 files.

Fixed:

  • census_resolve_geography: wrong geocoder endpoint (/address vs /onelineaddress) — address lookup always failed
  • census_resolve_geography: STUSAB filter on county/place/tract layers (field absent) — all non-state resolution failed
  • census_resolve_geography: two-letter state abbreviation now matched via STUSAB= directly
  • census_resolve_geography: empty name now fails fast with no_match instead of upstream call
  • census_resolve_geography: geocoder response parsing now covers Census Tracts, 2020 Census Blocks, Incorporated Places layers
  • census_compare_geographies: invalid dataset now throws dataset_not_found (correct reason + contract entry)
  • census_list_geographies / census_search_variables / census_get_variable: no longer require CENSUS_API_KEY at startup
  • census_api_service: 404 from Census Data API now returns empty result (enables year_not_available path)
  • TIGERweb place layer: corrected from Places_CouSub layer 0 to Places_CouSub_ConCity_SubMCD layer 4

Changed:

  • DiscoveryConfig split from ServerConfig — tools that don't need the API key use getDiscoveryConfig()
  • Service init signatures simplified — AppConfig and StorageService params removed
  • Tool descriptions and error clauses tightened across all 7 tools

50 tests pass; bun run devcheck clean.

v0.1.2: Scope npm package to @cyanheads org

Choose a tag to compare

@cyanheads cyanheads released this 26 May 07:42
v0.1.2
b30df34

Scope npm package to @cyanheads org

Fixes the package name from the unscoped census-mcp-server to @cyanheads/census-mcp-server. Updates server.json identifiers, README badges, and normalizes the bundle script and author field to match ecosystem conventions.

Changed:

  • package.json name: census-mcp-server → @cyanheads/census-mcp-server
  • bundle script: npm run build → bun run build
  • author: normalized to cyanheads casey@caseyjhand.com format
  • server.json packages[].identifier: → @cyanheads/census-mcp-server
  • README h1, npm badge, Cursor/VS Code install configs updated to scoped package

47 tests pass; bun run devcheck clean.