# Media Intelligence Human-led media intelligence MVP hosted on Arrowstack, exposed through its own MCP. ## MVP scope - Ingest four open NZ public sources: - GeoNet earthquake GeoJSON - NZ Parliament evidence/submissions Atom feed - Stats NZ information releases - data.govt.nz CKAN catalogue - Normalize and hash incoming items. - Retain source provenance/evidence. - Surface candidate opportunities using deterministic scoring. - Human triage via MCP. - No drafting, journalist database, email distribution, or autonomous publication. ## MCP Endpoint: `/api/mcp` Tools: - `sources_list` - `sources_status` - `sources_sync` - `opportunities_list` - `opportunity_get` - `opportunity_mark` - `evidence_get` - `evidence_search` The MCP is a separate application boundary from the Arrowstack control-plane MCP. ## Environment - `DATABASE_URL` — injected by Arrowstack tenant DB provisioning. - `PUBLIC_URL` — public origin, e.g. `https://media.arrowstack.dev`. - `KEYCLOAK_ISSUER` — Keycloak realm issuer. - `KEYCLOAK_CLIENT_ID` — dedicated MCP OAuth client. - `AUTH_DISABLED=true` — local/bootstrap only; do not use for public production. - `WATCH_TERMS` — optional comma-separated relevance terms. - `OPPORTUNITY_MIN_SCORE` — default 1. - `SYNC_INTERVAL_MINUTES` — default 15, minimum 5. ## Human gate The MVP cannot draft or distribute a media release. The only state-changing media action is human triage of an opportunity.