Releases: cyanheads/reliefweb-mcp-server
Release list
v0.1.14: active-only profile links, sort on job/training search
active-only profile links, sort on job/training search
Bounds crisis-country get_country/get_disaster payloads and adds sort control to the job and training search tools.
Added:
sortinput onreliefweb_search_jobsandreliefweb_search_training, mirroring the reports/disasters sort surface (#12)
Changed:
reliefweb_search_trainingnow defaults todate.start:asc(soonest-starting), replacingdate.created:desc(#12)reliefweb_get_country/reliefweb_get_disasterreturn only the currently-active curated links forkeyContent/appealsResponsePlans/usefulLinks;get_disastergains a prose-size advisory (#9)
Fixed:
reliefweb_get_countryno longer exceeds the client token limit for long-running crises — thekey_contentarchive (2,300+ entries for Syria) is no longer merged into the response (#9)
172 tests pass; bun run devcheck clean.
v0.1.13: filter/taxonomy corrections + mcp-ts-core ^0.10.14
filter/taxonomy corrections + mcp-ts-core ^0.10.14
Corrects filter fields and documented taxonomy across the search/list tools; framework and supply-chain maintenance.
Fixed:
search_reports/search_disasterscountry filter now matchescountry.iso3(any tagged country), notprimary_country.iso3(#8)list_sourcestext search now queriesname+shortname, so acronym lookups resolve (#10)list_countriescrisis filter now sends theongoingstatus directly instead of the legacyalert/currentalias (#11)- Filter-value docs corrected across tool descriptions,
README.md, anddocs/design.md(#11)
Changed:
list_sources.typeandsearch_training.formattightened toz.enumover the real ReliefWeb taxonomy; invalid values now rejected (#11)- Supply-chain hardening: Socket install scanner via
bunfig.toml, pinnedoven/bun:1.3.14with--ignore-scripts+ BuildKit cache,.github/SECURITY.md
Dependency bumps:
@cyanheads/mcp-ts-core^0.10.9 → ^0.10.14js-yaml(transitive) 3.14.2 → 3.15.0 — clears GHSA-h67p-54hq-rp68 (CVE-2026-53550)
162 tests pass; bun run devcheck clean.
v0.1.12: mcp-ts-core ^0.10.9 maintenance
mcp-ts-core ^0.10.9 maintenance
Framework-maintenance release; no tool, resource, or server 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-specifiersdevcheck step — floating-specifier guard over package.json deps and bun.lock workspaces (cyanheads/mcp-ts-core#246)- Plugin marketplace manifest checks in
lint:packaging, gated by devcheck.configpackaging.pluginManifests(cyanheads/mcp-ts-core#240)
Changed:
- Re-synced vendored framework scripts (fresh-scaffold .git-absent skips, worktree-deletion guard) and eight skills (cyanheads/mcp-ts-core#237, #242, #243)
- Populated the empty .codex-plugin longDescription
156 tests pass; bun run devcheck clean.
v0.1.11: Typed upstream-error contracts and applied-filter echoes
Typed upstream-error contracts and applied-filter echoes
Search and list tools now route ReliefWeb API failures through a typed contract, and the search tools surface the resolved filter set they ran with.
Added:
- upstream_error errors[] contract on all six search/list tools — failures carry data.reason for agent routing (#6)
- appliedFilters output on the four search tools — resolved filter set echoed back, rendered into content[] (#7)
- notice enrichment on list_countries and list_sources for empty filtered results (#7)
Changed:
- Empty-result notices on the four search tools echo every active filter (#7)
- release:github runs via bun run; tsx devDependency removed
156 tests pass; bun run devcheck clean.
v0.1.10: server instructions, plugin display identity
server instructions, plugin display identity
Adds a server-level instructions string sent on every initialize, and unscopes the plugin manifest display identity to the hyphenated repo name.
Added:
instructionsoncreateApp()— tool families, required RELIEFWEB_APP_NAME, identifier shapes (ISO3 country codes, numeric report/disaster IDs, organization shortnames), search-then-fetch workflow, daily call quota
Changed:
- Plugin manifest display identity unscoped to
reliefweb-mcp-server—.claude-plugin/plugin.json(name, mcpServers key),.codex-plugin/plugin.json(interface.displayName),.codex-plugin/mcp.json(server key); install args stay@cyanheads/reliefweb-mcp-server
Dependency bumps:
vitest^4.1.8 → ^4.1.9
136 tests pass; bun run devcheck clean.
v0.1.9: mcp-ts-core ^0.10.6, server identity, MCPB bundle cleaner
mcp-ts-core ^0.10.6, server identity, MCPB bundle cleaner
Maintenance release: framework adoption, explicit display identity, and a
post-pack MCPB cleaner that strips dependency-shipped agent docs.
Added:
- scripts/clean-mcpb.ts — post-pack MCPB cleaner (mcpb clean + exact-name strip
of node_modules/** skills/, .claude/, .agents/, SKILL.md), wired into bundle - Docker HEALTHCHECK (bun-native fetch /healthz) and org.opencontainers.image.version label
Changed:
- createApp() sets explicit name/title ('reliefweb-mcp-server') for display identity
- .mcpbignore dev-dir patterns root-anchored so they don't strip nested runtime paths
- lint:packaging gains bundle-content + name/title identity guards
- check-framework-antipatterns: z.coerce.boolean() env-flag rule; skips comment lines
Dependencies:
- @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
- tsx ^4.22.3 → ^4.22.4
- vitest ^4.1.7 → ^4.1.8
136 tests pass; bun run devcheck clean.
v0.1.8: Three data-shape bug fixes: GET envelope, profile sub-fields, source type
Three data-shape bug fixes: GET envelope, profile sub-fields, source type
All three tools that call single-record GET endpoints were broken against
the real ReliefWeb API due to shape mismatches in the service layer.
Fixed:
- reliefweb_get_report / reliefweb_get_disaster: GET endpoint returns data
as an array, not a single object; unwrap data[0] (#3) - reliefweb_get_country / reliefweb_get_disaster: profile sub-fields
(key_content, appeals_response_plans, useful_links) are { title, active,
archive } objects, not flat arrays; concatenate active + archive (#4) - reliefweb_list_sources: type field is a single { name } object, not an
array; types was always absent from results; filter docs showed wrong
values (e.g. 'NGO' vs 'Non-governmental Organization') (#5)
Service-level tests added in tests/services/reliefweb-service.test.ts
covering all three shapes; 136 tests pass total.
bun run devcheck clean.
v0.1.7: mcp-ts-core ^0.9.21 framework adoption
mcp-ts-core ^0.9.21 framework adoption
Adopts three framework fixes from @cyanheads/mcp-ts-core ^0.9.21.
Changed:
- HTTP transport per-request log context: 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.
- README mcpServers keys normalized to package name (reliefweb-mcp-server).
- release:github script added for structured GitHub Release creation.
- devcheck: Open-Indexed Interfaces and Skill Versions checks added.
- api-mirror and orchestrations skills added; 8 skills updated.
Dependencies:
- @cyanheads/mcp-ts-core ^0.9.16 -> ^0.9.21
- tsx ^4.22.3 -> ^4.22.4
- vitest ^4.1.7 -> ^4.1.8
127 tests pass; bun run devcheck clean.
v0.1.6: enrichment block for search/list tools
enrichment block for search/list tools
Search and list tools now surface true upstream totals and empty-result
guidance in a typed enrichment block reaching both structuredContent (JSON)
and content[] (markdown trailer).
Changed:
- reliefweb_search_reports, search_disasters, search_jobs, search_training: totalCount and empty-result hint moved to enrichment contract via ctx.enrich.total() / ctx.enrich.notice()
- reliefweb_list_countries, list_sources: totalCount moved to enrichment via ctx.enrich.total()
- output.message renamed to enrichment.notice (search tools) — value unchanged
- @cyanheads/mcp-ts-core ^0.9.13 → ^0.9.16
43 tests pass; bun run devcheck clean.
v0.1.5: mcp-ts-core ^0.9.9 → ^0.9.13, plugin metadata files
mcp-ts-core ^0.9.9 → ^0.9.13, plugin metadata files
Adopts framework releases 0.9.10–0.9.13.
Changed:
MCP_HTTP_MAX_BODY_BYTES— configurable inbound body cap (default 1 MiB); oversized requests rejected with HTTP 413 before the SDK parses the body- HTTP session-init gate — stateful HTTP mode rejects non-
initializerequests withoutMcp-Session-Idheader with HTTP 400 - Expected client errors (401/403/400/404) log at
warninglevel, no stack traces GET /mcpnow surfacespackage.jsonkeywordsin the status JSON
Added:
.claude-plugin/and.codex-plugin/— plugin metadata filesCITATION.cff— citation metadataskills/code-simplifier/— post-session cleanup skill
Dependency bumps:
@cyanheads/mcp-ts-core^0.9.9 → ^0.9.13@biomejs/biome^2.4.15 → ^2.4.16
44 tests pass; bun run devcheck clean.