IFRC GO Server
БесплатноНе проверенRead-only MCP server for IFRC GO data, secured with Microsoft Entra ID OAuth/JWT, exposing datasets as MCP tools with rate limiting and PII filtering.
Описание
Read-only MCP server for IFRC GO data, secured with Microsoft Entra ID OAuth/JWT, exposing datasets as MCP tools with rate limiting and PII filtering.
README
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.
Main tools
get_agent_instructions- Returns the full data model and querying guidance from
agent-instructions.md.
- Returns the full data model and querying guidance from
get_server_info- Returns runtime configuration and upstream connectivity status.
ifrcgo_meta- Returns live enum/choice metadata for entity fields via OPTIONS.
ifrcgo_read- Main read tool for list/detail access across IFRC GO entities.
ifrcgo_get_country_plan- Finds and summarizes the best available planning document for a country.
ifrcgo_download_document- Downloads authenticated IFRC GO documents and extracts text (including PDFs).
Supported entities (via ifrcgo_read)
- Reference:
region,country,district,disaster_type - Events and reports:
event,field-report,situation_report - Appeals:
appeal,appeal_document - Surge and deployments:
surge_alert,eru,eru_owner,personnel,partner_deployment - Projects:
project,emergency-project - Other:
public-per-process-status,public-per-stats,ops-learning,public-local-units - Country 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.ps1
2. Install dependencies
pip install -r requirements.txt
3. 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.py
Health 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/smoke
Run smoke tests (live endpoint + valid token required):
$env:IFRCGO_MCP_URL = "https://<your-host>"
pytest tests/smoke -q -m smoke
Notes:
- 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.sh
On 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.
Установка IFRC GO Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/jmargutt/GO-MCP-demoFAQ
IFRC GO Server MCP бесплатный?
Да, IFRC GO Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для IFRC GO Server?
Нет, IFRC GO Server работает без API-ключей и переменных окружения.
IFRC GO Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить IFRC GO Server в Claude Desktop, Claude Code или Cursor?
Открой IFRC GO Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare IFRC GO Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
