DEV Community

Cover image for EmberAI: Algolia MCP Server Challenge
devin nicholson
devin nicholson

Posted on

EmberAI: Algolia MCP Server Challenge

Algolia MCP Server Challenge: Backend Data Optimization

This is a submission for the Algolia MCP Server Challenge

What I Built

An open‑source, AI‑powered mapping dashboard for tracking wildfires and shelter locations in real time.

EmberAI combines lightning‑fast search with meaningful AI insights to equip communities, first responders, and volunteers with the information they need to act quickly during fire emergencies.

🚀 Key Features
Geo‑Aware Search with Algolia MCP

Unified proxy for multiple indices (fires, shelters, aqi).
Instant insideBoundingBox filtering for map viewport queries.
High‑performance faceting (e.g. severity:4+, state:CA).
AI Enrichment via n8n Workflows

Fire Severity Classification: Automated LLM calls convert raw satellite data into a 1–5 urgency score and one‑sentence summary.
Shelter Capacity Forecasting: Time‑series API + LLM or ARIMA predicts near‑future capacity risks (boolean flag).
Modular workflows in n8n, no additional server code required.
Real‑Time Data Ingestion

MODIS / VIIRS fire data from NASA FIRMS (7‑day CSV feeds).
FEMA shelter locations via open data API.
Optional Air Quality Index (AQI) from AirNow.
Secure, batch indexing into Algolia with a Python pipeline (update_indices.py).
Interactive Map UI

React + Leaflet front‑end with colored circle markers: scale up severity from green→purple.
Popups display date, confidence, AI summary, and capacity forecasts.
Search bar for date, confidence, and full‑text queries.
Responsive design for desktop and tablet use.

Demo

EmberAI

An open‑source, AI‑powered mapping dashboard for tracking wildfires and shelter locations in real time.

EmberAI combines lightning‑fast search with meaningful AI insights to equip communities, first responders, and volunteers with the information they need to act quickly during fire emergencies.


🚀 Key Features

  • Geo‑Aware Search with Algolia MCP

    • Unified proxy for multiple indices (fires, shelters, aqi).
    • Instant insideBoundingBox filtering for map viewport queries.
    • High‑performance faceting (e.g. severity:4+, state:CA).
  • AI Enrichment via n8n Workflows

    • Fire Severity Classification: Automated LLM calls convert raw satellite data into a 1–5 urgency score and one‑sentence summary.
    • Shelter Capacity Forecasting: Time‑series API + LLM or ARIMA predicts near‑future capacity risks (boolean flag).
    • Modular workflows in n8n, no additional server code required.
  • Real‑Time Data Ingestion

    • MODIS / VIIRS fire data from NASA FIRMS (7‑day CSV feeds).
    • FEMA shelter locations via open data API.
    • Optional Air Quality Index (AQI)

https://drive.google.com/file/d/15_zrdsIvDyFeaNjLbLJrZVluVqevZm6C/view?usp=sharing

How I Utilized the Algolia MCP Server

Unified proxy for multiple indices (fires, shelters, aqi).
Instant insideBoundingBox filtering for map viewport queries.
High‑performance faceting (e.g. severity:4+, state:CA).

Key Takeaways

Over the past few weeks I built EmberAI end‑to‑end. I started with a Python pipeline to pull in 7‑day fire data from NASA FIRMS and shelter locations from FEMA, then batch‑indexing everything into Algolia through the MCP proxy. I ran into CORS and scaling issues when trying to serve search requests directly, so I introduced Algolia’s MCP Server to unify multiple indices and handle geo‑filtered queries in under 100 ms.

Including AI enrichment in n8n was both powerful and tricky. I had to batch millions of fire records into a single webhook call to avoid hours‑long loops, and design LLM prompts that reliably output a 1–5 severity score plus a concise human summary. Integrating these Webhook→HTTP Request→partialUpdateObject steps taught me how to version workflows as code and keep everything reproducible.

On the UI side, I used React and Leaflet to visualize severity colored markers alongside shelter capacity forecasts, and refined the UX. I had fun UI issues where I needed to keep moving the search bar out of the way of map controls. Also spent time ensuring every marker displays fallback values if AI enrichment isn’t yet available. Throughout the project I learned the importance of batching over per‑record requests, the flexibility of n8n for no server AI workflows, and how Algolia MCP can turn large, fast‑moving datasets into a truly interactive, life‑saving search experience.

Team Submissions: Devin Nicholson

Top comments (0)