@cyanheads/reliefweb-mcp-server 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** @cyanheads/reliefweb-mcp-server
4
- **Version:** 0.1.2
4
+ **Version:** 0.1.3
5
5
  **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.7`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
package/CLAUDE.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** @cyanheads/reliefweb-mcp-server
4
- **Version:** 0.1.2
4
+ **Version:** 0.1.3
5
5
  **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.7`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-0.1.2-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/reliefweb-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/reliefweb-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/reliefweb-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-0.1.3-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/reliefweb-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/reliefweb-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/reliefweb-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
@@ -0,0 +1,12 @@
1
+ ---
2
+ summary: "Fix empty RELIEFWEB_APP_NAME validation and crisis_briefing country/disaster disambiguation"
3
+ breaking: false
4
+ security: false
5
+ ---
6
+
7
+ # 0.1.3 — 2026-05-24
8
+
9
+ ## Fixed
10
+
11
+ - **`RELIEFWEB_APP_NAME`** — changed `z.string()` to `z.string().min(1)` in `server-config.ts`; empty string now fails validation at startup rather than silently passing.
12
+ - **`reliefweb_crisis_briefing` prompt** — added disambiguation logic for the jobs and training sections: when `target` is a disaster name or GLIDE number, `reliefweb_search_jobs` and `reliefweb_search_training` are called with `text=` instead of `country=` (the `country=` filter expects an ISO3 code; passing a disaster name returns no results).
@@ -7,7 +7,7 @@
7
7
  import { z } from '@cyanheads/mcp-ts-core';
8
8
  import { parseEnvConfig } from '@cyanheads/mcp-ts-core/config';
9
9
  const ServerConfigSchema = z.object({
10
- appName: z.string().describe('Pre-approved appname for the ReliefWeb API v2.'),
10
+ appName: z.string().min(1).describe('Pre-approved appname for the ReliefWeb API v2.'),
11
11
  });
12
12
  let _config;
13
13
  export function getServerConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CAC/E,CAAC,CAAC;AAIH,IAAI,OAAiC,CAAC;AAEtC,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,cAAc,CAAC,kBAAkB,EAAE;QAC7C,OAAO,EAAE,oBAAoB;KAC9B,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CACtF,CAAC,CAAC;AAIH,IAAI,OAAiC,CAAC;AAEtC,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,cAAc,CAAC,kBAAkB,EAAE;QAC7C,OAAO,EAAE,oBAAoB;KAC9B,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"crisis-briefing.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/crisis-briefing.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAU,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,uBAAuB;;;;;;;kBAgElC,CAAC"}
1
+ {"version":3,"file":"crisis-briefing.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/crisis-briefing.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAU,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,uBAAuB;;;;;;;kBAoElC,CAAC"}
@@ -28,12 +28,16 @@ export const reliefwebCrisisBriefing = prompt('reliefweb_crisis_briefing', {
28
28
  - List active disasters with status, GLIDE number, and primary type.
29
29
  - List key appeals and response plans from the country/disaster profile.`;
30
30
  const jobsSection = `## Open Positions
31
- - Search for open humanitarian jobs with reliefweb_search_jobs filtered by country="${target}".
31
+ - Determine whether "${target}" is a country/ISO3 code or a disaster name/GLIDE number.
32
+ - If it is a country or ISO3 code: call reliefweb_search_jobs with country="${target}".
33
+ - If it is a disaster name or GLIDE number: call reliefweb_search_jobs with text="${target}" (the country= filter expects an ISO3 code; passing a disaster name returns no results).
32
34
  - Group by organization and career category.
33
35
  - List title, organization, closing date, and URL for each position.
34
36
  - Note total count and any recurring roles (e.g., multiple UNHCR positions).`;
35
37
  const trainingSection = `## Training Opportunities
36
- - Search for upcoming training with reliefweb_search_training filtered by country or text.
38
+ - Determine whether "${target}" is a country/ISO3 code or a disaster name/GLIDE number.
39
+ - If it is a country or ISO3 code: call reliefweb_search_training with country="${target}".
40
+ - If it is a disaster name or GLIDE number: call reliefweb_search_training with text="${target}".
37
41
  - List title, organizer, start date, format, and URL for each opportunity.`;
38
42
  let sections;
39
43
  if (focus === 'situation') {
@@ -1 +1 @@
1
- {"version":3,"file":"crisis-briefing.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/crisis-briefing.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,2BAA2B,EAAE;IACzE,WAAW,EACT,yEAAyE;QACzE,+IAA+I;QAC/I,gDAAgD;QAChD,6HAA6H;IAC/H,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,mBAAmB,EAAE,CAAC;aACnB,MAAM,EAAE;aACR,QAAQ,CACP,+IAA+I,CAChJ;QACH,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;aACnC,QAAQ,EAAE;aACV,QAAQ,CACP,kNAAkN,CACnN;KACJ,CAAC;IACF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAExC,MAAM,gBAAgB,GAAG;;6FAEgE,MAAM;;;;yEAI1B,CAAC;QAEtE,MAAM,WAAW,GAAG;sFAC8D,MAAM;;;6EAGf,CAAC;QAE1E,MAAM,eAAe,GAAG;;2EAE+C,CAAC;QAExE,IAAI,QAAgB,CAAC;QACrB,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1B,QAAQ,GAAG,gBAAgB,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,GAAG,WAAW,OAAO,eAAe,EAAE,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,GAAG,gBAAgB,OAAO,WAAW,OAAO,eAAe,EAAE,CAAC;QAC3E,CAAC;QAED,MAAM,OAAO,GAAG,oDAAoD,MAAM;;;;EAI5E,QAAQ;;;;;;gCAMsB,CAAC;QAE7B,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"crisis-briefing.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/crisis-briefing.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,2BAA2B,EAAE;IACzE,WAAW,EACT,yEAAyE;QACzE,+IAA+I;QAC/I,gDAAgD;QAChD,6HAA6H;IAC/H,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,mBAAmB,EAAE,CAAC;aACnB,MAAM,EAAE;aACR,QAAQ,CACP,+IAA+I,CAChJ;QACH,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;aACnC,QAAQ,EAAE;aACV,QAAQ,CACP,kNAAkN,CACnN;KACJ,CAAC;IACF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAExC,MAAM,gBAAgB,GAAG;;6FAEgE,MAAM;;;;yEAI1B,CAAC;QAEtE,MAAM,WAAW,GAAG;uBACD,MAAM;gFACmD,MAAM;sFACA,MAAM;;;6EAGf,CAAC;QAE1E,MAAM,eAAe,GAAG;uBACL,MAAM;oFACuD,MAAM;0FACA,MAAM;2EACrB,CAAC;QAExE,IAAI,QAAgB,CAAC;QACrB,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1B,QAAQ,GAAG,gBAAgB,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,GAAG,WAAW,OAAO,eAAe,EAAE,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,GAAG,gBAAgB,OAAO,WAAW,OAAO,eAAe,EAAE,CAAC;QAC3E,CAAC;QAED,MAAM,OAAO,GAAG,oDAAoD,MAAM;;;;EAI5E,QAAQ;;;;;;gCAMsB,CAAC;QAE7B,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/reliefweb-mcp-server",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "mcpName": "io.github.cyanheads/reliefweb-mcp-server",
5
5
  "description": "Search ReliefWeb humanitarian reports, disasters, jobs, training, and country profiles via MCP. STDIO or Streamable HTTP.",
6
6
  "type": "module",
@@ -50,8 +50,6 @@
50
50
  "crisis-data",
51
51
  "typescript",
52
52
  "bun",
53
- "stdio",
54
- "streamable-http",
55
53
  "ai-agent"
56
54
  ],
57
55
  "repository": {
package/server.json CHANGED
@@ -6,14 +6,14 @@
6
6
  "url": "https://github.com/cyanheads/reliefweb-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.1.2",
9
+ "version": "0.1.3",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "registryBaseUrl": "https://registry.npmjs.org",
14
14
  "identifier": "@cyanheads/reliefweb-mcp-server",
15
15
  "runtimeHint": "bun",
16
- "version": "0.1.2",
16
+ "version": "0.1.3",
17
17
  "packageArguments": [
18
18
  {
19
19
  "type": "positional",
@@ -48,7 +48,7 @@
48
48
  "registryBaseUrl": "https://registry.npmjs.org",
49
49
  "identifier": "@cyanheads/reliefweb-mcp-server",
50
50
  "runtimeHint": "bun",
51
- "version": "0.1.2",
51
+ "version": "0.1.3",
52
52
  "packageArguments": [
53
53
  {
54
54
  "type": "positional",