reliefweb-mcp-server

elijah-tynes/reliefweb-mcp-server

3.1

If you are the rightful owner of reliefweb-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The ModelContextProtocol (MCP) server for ReliefWeb is designed to enhance the delivery and accessibility of humanitarian information services.

ReliefWeb MCP Server

A Model Context Protocol (MCP) server for the ReliefWeb humanitarian information service.

Provided by the United Nations Office for the Coordination of Humanitarian Affairs (OCHA), ReliefWeb delivers fast, reliable updates from 4,000+ sources - including NGOs, governments and research centers to the humanitarian community. This MCP server seeks to enable natural language access via AI agents to critical humanitarian data such as disaster reports, job/volunteer opportunities, training programs, and resource updates - allowing users to quickly find, filter, and utilize up-to-date information essential for ongoing humanitarian efforts.

Available Tools

  • GetReports

    • Retrieves update and situation reports curated from ReliefWeb
    • Optional inputs:
      • keywords (string[]): Keywords to narrow down the report search (default: all)
      • numResults (int): Number of reports to return (default: 20)
        You can also set the environment variable REPORTS_REQUEST_SIZE to override this
    • Returns: String collection of ReliefWeb reports sorted by recency
  • GetDisasters

    • Retrieves ReliefWeb information related to disasters
    • Optional inputs:
      • keywords (string[]): Keywords to narrow down the disasters search (default: all)
      • numResults (int): Number of disasters to return (default: 20)
        You can also set the environment variable DISASTERS_REQUEST_SIZE to override this
    • Returns: String collection of disasters sorted by recency
  • GetJobs

    • Retrieves humanitarian jobs and volunteer opportunities
    • Optional inputs:
      • keywords (string[]): Keywords to narrow down the jobs search (default: all)
      • numResults (int): Number of jobs to return (default: 20)
        You can also set the environment variable JOBS_REQUEST_SIZE to override this
    • Returns: String collection of jobs sorted by recency
  • GetTrainings

    • Retrieves training opportunities and courses for useful and necessary humanitarian skills
    • Optional inputs:
      • keywords (string[]): Keywords to narrow down the trainings search (default: all)
      • numResults (int): Number of trainings to return (default: 20)
        You can also set the environment variable TRAININGS_REQUEST_SIZE to override this
    • Returns: String collection of trainings sorted by recency
  • GetBlogs

    • Retrieves blog posts about ideas to grow and improve ReliefWeb
    • Optional inputs:
      • keywords (string[]): Keywords to narrow down the blogs search (default: all)
      • numResults (int): Number of blogs to return (default: 20)
        You can also set the environment variable BLOGS_REQUEST_SIZE to override this
    • Returns: String collection of blogs sorted by recency
  • GetResources

    • Retrieves static information about the ReliefWeb site and humanitarian resources
    • Optional inputs:
      • keywords (string[]): Keywords to narrow down the resources search (default: all)
      • numResults (int): Number of resources to return (default: 20)
        You can also set the environment variable RESOURCES_REQUEST_SIZE to override this
    • Returns: String collection of resources sorted by recency

Prerequisites

Getting Started

Usage With Claude Desktop

Add the following to your claude_desktop_config.json, which can be found by navigating to Claude Desktop > Settings > Developer > Edit Config:

{
  "mcpServers": {
    "reliefweb": {
      "command": "npx",
      "args": [
        "-y",
        "@elijahtynes/reliefweb-mcp-server"
      ],
      "env": {
        "REPORTS_REQUEST_SIZE": "[Replace with number for reports query size (Optional)]",
        "DISASTERS_REQUEST_SIZE": "[Replace with number for disasters query size (Optional)]",
        "JOBS_REQUEST_SIZE": "[Replace with number for jobs query size (Optional)]",
        "TRAININGS_REQUEST_SIZE": "[Replace with number for trainings query size (Optional)]",
        "BLOGS_REQUEST_SIZE": "[Replace with number for blogs query size (Optional)]",
        "RESOURCES_REQUEST_SIZE": "[Replace with number for resources query size (Optional)]"
      }
    }
  }
}

Usage with Cursor

Navigate to Cursor > Settings > Cursor Settings > MCP > Add a New MCP Server and add the following content to the file:

{
  "mcpServers": {
    "reliefweb": {
      "command": "npx",
      "args": ["-y", "@elijahtynes/reliefweb-mcp-server"],
      "env": {
        "REPORTS_REQUEST_SIZE": "[Replace with number for reports query size (Optional)]",
        "DISASTERS_REQUEST_SIZE": "[Replace with number for disasters query size (Optional)]",
        "JOBS_REQUEST_SIZE": "[Replace with number for jobs query size (Optional)]",
        "TRAININGS_REQUEST_SIZE": "[Replace with number for trainings query size (Optional)]",
        "BLOGS_REQUEST_SIZE": "[Replace with number for blogs query size (Optional)]",
        "RESOURCES_REQUEST_SIZE": "[Replace with number for resources query size (Optional)]"
      }
    }
  }
}

Usage With VS Code

Add the following content to your User Settings (JSON) file in VS Code, which can be found at Ctrl + Shift + P > Preferences: Open Settings (JSON):

Note: The content can instead be added to a file named .vscode/mcp.json in your workspace, allowing you to share the configuration with others

{
  "mcp": {
    "servers": {
      "reliefweb": {
        "command": "npx",
        "args": [
          "-y",
          "@elijahtynes/reliefweb-mcp-server"
        ],
        "env": {
          "REPORTS_REQUEST_SIZE": "[Replace with number for reports query size (Optional)]",
          "DISASTERS_REQUEST_SIZE": "[Replace with number for disasters query size (Optional)]",
          "JOBS_REQUEST_SIZE": "[Replace with number for jobs query size (Optional)]",
          "TRAININGS_REQUEST_SIZE": "[Replace with number for trainings query size (Optional)]",
          "BLOGS_REQUEST_SIZE": "[Replace with number for blogs query size (Optional)]",
          "RESOURCES_REQUEST_SIZE": "[Replace with number for resources query size (Optional)]"
        }
      }
    }
  }
}

Code Samples

ModelContextProtocol C#

using ModelContextProtocol.Client;

// Create STDIO transport using ReliefWeb MCP
var clientTransport = new StdioClientTransport(new StdioClientTransportOptions
{
    Name = "ReliefWebMCP",
    Command = "npx",
    Arguments = ["-y", "@elijahtynes/reliefweb-mcp-server"]
});

// Create client with transport
var mcpClient = await McpClientFactory.CreateAsync(clientTransport);

// Retrieve the list of tools available on the ReliefWebMCP server
var tools = await mcpClient.ListToolsAsync().ConfigureAwait(false);

foreach (var tool in tools)
{
    Console.WriteLine($"{tool.Name}");
}
GetDisasters
GetTrainings
GetBlogs
GetReports
GetJobs
GetResources

Semantic_Kernel MCP Python

from semantic_kernel import Kernel
from semantic_kernel.connectors.mcp import MCPStdioPlugin

# Create kernel
kernel = Kernel()

# Create ReliefWeb MCP plugin over STDIO
async with MCPStdioPlugin(
    name="ReliefWebMCP",
    command="npx",
    args=["-y", "@elijahtynes/reliefweb-mcp-server"]
) as reliefweb_plugin:
    
    # Add ReliefWeb MCP tools to kernel plugins
    kernel.add_plugin(reliefweb_plugin)

    # Retrieve MCP tools
    reliefweb_tools = kernel.plugins["ReliefWebMCP"]

    for tool in reliefweb_tools:
        print(tool.name)
GetBlogs
GetDisasters
GetJobs
GetReports
GetResources
GetTrainings