IFRC GO MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IFRC GO MCP Serverfind active drefs for Kenya"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
IFRC GO MCP Server
Read-only MCP server for IFRC GO data, secured with Microsoft Entra ID OAuth/JWT.
What this server does
Exposes some IFRC GO datasets as MCP tools.
Enforces bearer-token auth with Entra JWT validation.
Publishes OAuth metadata endpoints for MCP clients.
Applies request rate limiting.
Removes selected PII fields from responses before returning data.
Adds GO frontend URLs to records so callers can open source pages directly.
Related MCP server: powerbi-mcp-proxy
Main tools
get_agent_instructionsReturns the full data model and querying guidance from
agent-instructions.md.
get_server_infoReturns runtime configuration and upstream connectivity status.
ifrcgo_metaReturns live enum/choice metadata for entity fields via OPTIONS.
ifrcgo_readMain read tool for list/detail access across IFRC GO entities.
ifrcgo_get_country_planFinds and summarizes the best available planning document for a country.
ifrcgo_download_documentDownloads authenticated IFRC GO documents and extracts text (including PDFs).
Supported entities (via ifrcgo_read)
Reference:
region,country,district,disaster_typeEvents and reports:
event,field-report,situation_reportAppeals:
appeal,appeal_documentSurge and deployments:
surge_alert,eru,eru_owner,personnel,partner_deploymentProjects:
project,emergency-projectOther:
public-per-process-status,public-per-stats,ops-learning,public-local-unitsCountry detail:
country-plan,country-document,country-supporting-partner,delegation_office
See agent-instructions.md for field-level guidance and workflow examples.
Quick start (local)
1. Create and activate a virtual environment
Windows PowerShell:
python -m venv .venv
.\.venv\Scripts\Activate.ps12. Install dependencies
pip install -r requirements.txt3. Configure environment variables
Set these in your shell, profile, or launch config before starting the server.
Required for auth-gated operation:
ENTRA_TENANT_IDENTRA_AUDIENCEENTRA_CLIENT_IDMCP_SERVER_URLSTATE_SIGNING_SECRET
IFRC GO upstream auth:
Static token mode (supported by current
server.py):IFRCGO_API_TOKEN
Note: local.settings.json.template and deployment scripts include IFRCGO_USERNAME and IFRCGO_PASSWORD, but the current server process initializes IFRCGOClient with IFRCGO_API_TOKEN only.
Optional:
IFRCGO_API_BASE_URL(default:https://goadmin.ifrc.org/api/v2)ENTRA_REQUIRED_SCOPE(default:mcp.access)REQUIRED_GROUP_IDS(comma-separated)REQUIRED_APP_ROLES(comma-separated)MCP_RATE_LIMIT_REQUESTS(default:60)MCP_RATE_LIMIT_WINDOW_SECONDS(default:60)SCOPE_NAME(default:ifrcgo)HOST(default:0.0.0.0)PORT(default:8000)
4. Run the server
python server.pyHealth endpoint:
GET /health
OAuth metadata endpoints:
GET /.well-known/oauth-protected-resourceGET /.well-known/oauth-authorization-serverGET /.well-known/oauth-authorization-server/mcp
OAuth helper endpoints:
GET /oauth/authorizeGET /oauth/callbackPOST /oauth/tokenPOST /register
MCP transport:
Mounted at
/using streamable HTTP from FastMCP.MCP JSON-RPC calls are available at
/mcp.
Testing
Run unit tests:
pytest tests -q -m "not smoke" --ignore=tests/smokeRun smoke tests (live endpoint + valid token required):
$env:IFRCGO_MCP_URL = "https://<your-host>"
pytest tests/smoke -q -m smokeNotes:
Smoke tests require a valid Entra access token. The test fixture in
tests/conftest.pydefines how this is sourced (az_token).The smoke suite calls MCP methods on
${IFRCGO_MCP_URL}/mcp.
Deployment (Azure Container Apps)
This repo includes an automated deploy script:
Copy
local.settings.json.templatetolocal.settings.json.Fill in required values (subscription, RG, ACR, Entra, IFRC GO credentials, etc.).
Run:
bash infra/deploy.shOn Windows, run the deploy script from a Bash-compatible shell (for example WSL or Git Bash).
What the script handles:
Validates local settings.
Runs non-smoke tests before deploy.
Builds and pushes Docker image.
Creates/updates Container App and secrets.
Applies optional ingress IP allow-list.
Performs health check and optional smoke tests.
Security and privacy notes
All data tools are read-only.
OAuth/JWT validation is enforced unless Entra settings are missing.
If
REQUIRED_GROUP_IDSorREQUIRED_APP_ROLESare set, caller token must match at least one.Selected PII fields are stripped from
personnelandprojectresults.Keep
local.settings.jsonand credentials out of source control.
Repository layout
server.py: MCP server, auth middleware, tool definitions.ifrcgo_client.py: Async IFRC GO client, auth refresh, list/detail/options helpers, document parsing.agent-instructions.md: Data model and usage guidance surfaced to MCP agents.tests/: Unit and smoke tests.infra/deploy.sh: Azure deployment automation.scripts/: One-off data processing utilities and generated outputs.
Notes for MCP clients
Start sessions by calling
get_agent_instructions.Use
ifrcgo_metato resolve current enum values before filtering.Use
ifrcgo_readwithlimitandoffsetfor paging.Use detail mode with
resource_idwhen you need full single-record payloads.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Microsoft Dataverse API with safe-by-default configuration. Works with any Dataverse / Dynamics 365 environment.Last updated23267MIT
- Alicense-qualityCmaintenanceA self-hosted MCP server that proxies MCP clients to Power BI, using your own Entra tenant and Azure subscription. It enables DAX queries, workspace listing, and dataset management while preserving user-specific row-level security.Last updated2MIT
- Alicense-qualityBmaintenanceMCP server for safely exposing SQL Server database capabilities to LLM clients, with read-only mode, security features, and observability.Last updated28MIT
- Flicense-qualityCmaintenanceA local MCP server for read-only SQL Server / MS Fabric queries. It authenticates as the user via Entra ID and runs one server process per tenant.Last updated
Related MCP Connectors
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Read-only MCP server for wafergraph.com's semiconductor & AI supply-chain data: 30 tools, no auth.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jmargutt/GO-MCP-demo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server