Platform Ecosystem — Engineering Plan
Global Risk · Food Security · Natural Resource Management
02

Gateway & Integration Architecture

Two internal documents independently describe the same mechanism — the SERVIR Global Platform Technical Integration Guide and SIG-NAL's GeoAI Strategy — which means GeoAI capabilities don't need their own integration architecture. A model, an alert feed, and a classifier all become available the same way.

The wrap-once pattern

Step 1

MCP-wrap the capability

Resources for the context it provides, tools for the actions/analysis it performs. Owner, data currency, and known limitations stated up front, per the Integration Guide's checklist.

Step 2

Define the domain agent

Encodes domain expertise (the science a specialist would apply) and workflow expertise (the sequence that specialist actually follows) — not just a thin wrapper on the model.

Step 3

Register with the gateway

Identity, policy, routing, and audit handled once, centrally — any other domain's agent can now call it via Agent2Agent instead of re-implementing it.

Step 4

Consume from anywhere

LLM/agent applications reach it via MCP; dashboards and backend services reach the same capability via curated APIs — one capability, two access modes.

Gateway components

ComponentFunctionStatus
IdentityAuthenticates callers — hub staff, partner engineers, agents acting on their behalf — before any capability is reachable.To spec
PolicyPer-capability access rules; the EUDR compliance module and wildlife-trafficking case data need stricter control than open monitoring feeds.To spec
RoutingDirects an MCP or API call to the correct capability instance, including regionally-calibrated hub overrides of a global default.To spec
AuditRecords what was called, by whom, against which data version — the human-approval-checkpoint trail the GeoAI Strategy requires.To spec
Agent2Agent registryWhere every domain agent (Flood Risk, Field & Crop-Type, Land Cover & Change, …) is discoverable by every other agent.To spec

What already exists at the consolidation point

github.com/SERVIR-AI/global-platform is not a scaffold — it's a live, actively-developed MCP server (LangGraph + FastMCP, 183 commits, 3 contributors, EPL-2.0) already answering natural-language disaster-risk questions for Southeast Asia across flood, flash flood, drought, fire, landslide, cyclone, storm, tsunami, and earthquake, and already pulling in Food Security data (GEOGLAM, ENSO/IOD). It mints every answer as a replayable, litestream-backed receipt, gated by a groundedness check before publishing — real precedent for the human-approval checkpoint this whole gateway needs, not a pattern to invent from scratch.

What it does not have yet: the gateway itself (identity/policy/routing/audit) or Agent2Agent federation — one LangGraph pipeline inside one FastAPI service, not a hub for every platform's agents. Positioning: this plan's gateway wraps and federates what's already running there, rather than competing with it.

Blocking dependency (Decision #12). David is reaching out to SERVIR-AI/global-platform's three active maintainers directly — not yet done as of this plan. No agent build in §04–06 should start before that conversation happens, to avoid duplicating a Global Risk / Food Security MCP server that already exists.

Migrating the scattered state into SERVIR-AI

David named the org's actual GitHub footprint directly: github.com/SERVIR-AI is confirmed as “the master one that everything will end up in and where people are building things” (Decision #14). Four hub-level orgs hold the current, more scattered build activity — that inventory is now complete and carried in full below — 259 public repositories, each with a triage call (Decision #14's residual, closed). The count moved from 230 to 231 on 9 September 2026 when Platform-Inventory itself was made public, taking SERVIR-AI from one repo to two — caught by the automated sweep, which is the intended behaviour — and to 259 on 16 September 2026 when github.com/geoglows was inventoried for the first time. GEOGloWS is named as the riverine-flood forecasting backbone throughout this plan; its 28 repositories had never been read, and until geoglows was added to scripts/sweep.py the authoritative record disagreed with the plan by exactly that many. The authoritative count is data/servir-repos.json in that repo, refreshed weekly; the figure quoted in this prose is a reading, not the record, and will drift between sweeps.

OrgRead asMigration action
github.com/SERVIR-AIConfirmed consolidation targetDestination Gateway and agent registry live here.
github.com/SERVIR-AI/global-platformExisting MCP server, SE Asia-scopedWrap & federate Extend with gateway + A2A rather than replace.
github.com/SERVIR-AmazoniaHub-level repos (Amazon-region tools — CoMiMo/RAMI-adjacent, TerraOnTrack, VegMapper, TerraBio)Inventoried 38 repos — 6 wrap, 14 Tethys duplicates to consolidate.
github.com/Servir-MekongHub-level repos (HydraFloods and Mekong regional tools)Inventoried 44 repos — deepest hydrology bench.
github.com/SERVIRSEAHub-level repos (Southeast Asia — RiskMap-adjacent)Inventoried 7 repos — two foundation-model experiments.
github.com/SERVIRGeneral/legacy orgInventoried 132 repos — the bulk of the archaeology.
github.com/geoglowsPartner-tool org — GEOGloWS River Forecast System, the riverine-flood backbone named in §04, §05 and §07Partner — wrap, do not migrate 28 repos, BSD/MIT, live software. Reach an integration agreement; the code stays where it is.

Vendor-agnostic by design (Decision #10)

MCP and Agent2Agent are open protocols, not one vendor's product. Every domain agent built under this plan must stay callable by whichever LLM backend a given hub or partner actually has access to — Claude, GPT-class models, Gemini, or an open-weight model run on SIG's own SOCRATES cluster. Google.org's funding of AgriNexus does not imply a Google-only model stack; this is settled policy, confirmed, not an assumption to revisit per platform.

What is being built right now in SERVIR-AI

Three repositories in the consolidation org are where the current build is actually being organised. They are named here by David; two are private and could not be read from outside, so this plan records what they are for and flags what it needs.

RepositoryRoleStateWhat this plan needs from it
SERVIR-AI/global-platformThe working prototype of the gateway pattern — a live disaster-risk agent for Southeast AsiaPublic · active EPL-2.0, 228 commits, updated Sept 2026Read directly. Detailed below — it is the closest thing to a reference implementation this plan has.
SERVIR-AI/geoai-hub"Where we are organizing things" — the organising hub for the GeoAI buildPrivate — 404 to unauthenticated accessIts structure should define how §04–06's agents are organised. Needs access, or a README paste, before this plan can align to it rather than guess.
SERVIR-AI/impact-trackerWhere impact reporting is being organisedPrivate — 404 to unauthenticated accessThe natural home for the use-case evidence in §04–06 and the service inventory in §09. Also overlaps the retired AgriSERV impact-comparison service — worth checking before either is rebuilt.

global-platform, in detail — the reference implementation

This is not a scaffold. It is an active build with tests, checked-in end-to-end example payloads, a Dockerfile and GCP deploy config, and near-daily commits. Read closely, it already implements four of the six seams §04 specifies — which makes it the thing to extend rather than the thing to compete with.

Pipeline question → route → resolve → fetch → operate → finalize

A LangGraph pipeline inside one FastAPI service. The resolve step is the interesting one: when a question is ambiguous between exposure, precomputed risk and recomputed risk, it asks the user to choose rather than guessing, and resumes via a thread_id. That is the human-approval checkpoint from §04's E4 already built, not a design note.

Data model Four layers, two of them built

L1 precomputed risk IMPLEMENTED L2 recomputed from reclassed layers IMPLEMENTED L3 on-the-fly reclassification PLANNED L4 upstream-provider fetch PLANNED

This maps almost exactly onto §04's two-clock engine (E2). L1 and L2 are the near-real-time and recomputed paths; L4 — fetching from an upstream provider on demand — is what federating other hubs' capabilities through the gateway would need. The roadmap gap in this repo and the build order in this plan are the same gap.

Surface One service, three mounts

/mcp MCP transport → agent-to-agent consumption /api REST → dashboards and services / React + OpenLayers web app POST /api/chat 9 hazards x 4 OSM asset types x severity 1-5 Nominatim place resolution or drawn AOI verbose trace; human-in-the-loop choices GET /api/raster/{place}/{hazard}.tif POST /api/tiffs bring-your-own hazard GeoTIFF, verification gate auth: GRP_API_TOKEN bearer; LLM keys optional

Two things stand out. The dual mount is §04's E6 access layer already implemented — MCP for agents, REST for dashboards, off one capability. And POST /api/tiffs with a verification gate is a working version of the hub-override mechanism Decision #18 is still trying to govern: a partner can bring their own hazard layer, and the system checks it before use.

Grounding "Every number is computed from real data, never generated by the model"

The repo's own framing, and the discipline §04's E5 asks for. It also ships .claude/skills/ containing trace-emit and trace-visualize skills — execution tracing for debugging agent decisions, which is the audit trail the gateway needs in §02.

One hint worth following: LLM keys are optional and unlock a food-security corpus alongside the disaster-risk path. This repo may already straddle two of the three platforms, which would make it a cross-platform prototype rather than a Global Risk one.

What this changes about Decision #12. The blocker was framed as "contact the maintainers before building, to avoid duplicating an MCP server that already exists." Having read the repo, the risk is sharper than duplication: this build has already made design decisions that §04's seams describe abstractly — the resolve-and-ask pattern, the L1–L4 layering, the dual MCP/REST mount, the verification gate on uploaded layers. The conversation should be about adopting those decisions, not just avoiding overlap.

The GitHub migration inventory

Decision #14 confirmed github.com/SERVIR-AI as the consolidation target and left the migration mapping as its residual — the first engineering task in the roadmap. That inventory is below: every public repository across the seven organizations, with a triage call on each. It was compiled from the public GitHub organization listings on 2 September 2026; the REST API is unavailable from this environment, so the listings are the source, and private repositories do not appear.

259
public repos across 7 orgs
16 Sep 2026 sweep
53
Wrap as MCP
18
Migrate
75
Review
22
Capacity material
90
Archive
The headline finding. Of 259 repositories, only 53 carry a platform capability worth wrapping as an MCP server. The rest split into recent work that should move to SERVIR-AI as-is, capacity-building material that belongs in a training archive rather than a platform gateway, and a long tail of dormant single-purpose code. The migration is therefore much smaller than the repo count suggests — but the triage has to happen before Decision #9's first three agents start, because two of those three (Flood Risk, Land Cover & Change) are wrapping code that lives in a hub org today.

github.com/SERVIR-AI — 1 repos

The confirmed consolidation target (Decision #14). One repo today — and it is the only repo of all 259 with an MCP endpoint.

RepositoryWhat it isLanguageLast updatedTriage call
global-platformAI-assisted geospatial platform for environmental decision support (source-available, non-commercial)PythonSep 2, 2026Wrap as MCP

1 wrap as mcp

github.com/SERVIR — 132 repos

The general / legacy org and by far the largest. Fifteen years of service code, six repos already archived upstream, and the great majority dormant.

RepositoryWhat it isLanguageLast updatedTriage call
flood_mapping_intercomparisonFlood Mapping IntercomparisonJupyter NotebookJun 9, 2026Wrap as MCP
ClimateSERV2ClimateSERV allows development practitioners, scientists/researchers, and government decision-makers to visualize and download historical rainfall data, vegetat…JavaScriptJun 1, 2026Wrap as MCP
hiwat_model_viewer—JavaScriptApr 8, 2026Wrap as MCP
RX_firesRX_firesJupyter NotebookDec 18, 2025Wrap as MCP
AppTemplate2022—CSSSep 26, 2025Capacity material
GuyanaMangrovesWebApp—CSSSep 26, 2025Wrap as MCP
WaterWatchDjango—CSSSep 26, 2025Migrate
SCAP_Web—JavaScriptSep 24, 2025Migrate
servir-acesAgricultural Classification and Estimation ServiceJupyter NotebookSep 4, 2025Wrap as MCP
fierpyPython implementation of the Forecasting Inundation Extents using REOFPythonSep 2, 2025Wrap as MCP
WENDOU—Jupyter NotebookSep 2, 2025Wrap as MCP
DssatWeb—PythonJul 9, 2025Wrap as MCP
SMAP_ETLSMAP_ETLPythonJun 17, 2025Wrap as MCP
dssat_service—PythonMar 26, 2025Wrap as MCP
may-the-lidar-be-with-you—HTMLMar 17, 2025Migrate
dssat_service_scriptsCalibration and operational scripts for the DSSAT serviceJupyter NotebookMar 17, 2025Migrate
galamsey—JavaScriptFeb 11, 2025Wrap as MCP
mekong-swat-django—JavaScriptFeb 7, 2025Migrate
SAMSThis application is a management system built to easily manage a multitude of applications through a common interface. SAMS lets you register any application an…CSSFeb 7, 2025Migrate
.github——Feb 7, 2025Migrate
guyana-mangrove-app—TypeScriptFeb 7, 2025Wrap as MCP
Cerro-Cantil-ProtoservicesCerro Cantil ProtoservicesCSSFeb 7, 2025Migrate
ml_crop_yield_trainingMaterials for ML crop yield training.—Jan 27, 2025Wrap as MCP
tkms—JavaScriptJan 22, 2025Migrate
ag_scenario_assessmentManagement scenario assessment for the Resilience project in ZimbabweJupyter NotebookJan 21, 2025Migrate
bhutan_crop_monitoring—CSSOct 25, 2024Review
ClimateSERVpyThis is a package to access the ClimateSERV APIPythonSep 9, 2024Wrap as MCP
READMEThis is a template README file to be used in your SERVIR repos—Aug 7, 2024Capacity material
GitHub-DemoSERVIR demoPythonJul 2, 2024Capacity material
IISLoggerReads and extracts specified filters from IIS Log filesPythonJun 18, 2024Review
curriculum_development_initiativeSERVIR and ITC's joint Curriculum Development InitiativeJupyter NotebookMay 23, 2024Capacity material
request_locatorRequest Locator is a Django application designed to provide location information based on IP addresses.PythonMay 3, 2024Review
AQX_Downscaling_Viewer—JavaScriptFeb 17, 2024Review
ForestConservationTargetingToolForest Conservation Targeting Tool (Developed by A. Blackman et al)PHPNov 22, 2023Review
ag-classification-estimationAgricultural Classification and Estimation Service (Bhutan rice map)JavaScriptOct 12, 2023Review
ee-tfEarth Engine Tensor Flow Scripts—Sep 12, 2023Review
ESAfrica-Tethysapp-rdst—JavaScriptAug 17, 2023Review
ESAfrica-Tethys_forecast_viewer—PythonAug 17, 2023Review
ESAfrica-StreamFlowMonitor—HTMLAug 17, 2023Review
ForestConservationEvaluationToolForest Conservation Estimation ToolJavaScriptAug 1, 2023Review
ESAfrica-rheas-viewer-and-dashboards-bensonVisualization of maize yield prediction using RHEAS DSSAT coupled modelsHTMLJul 28, 2023Review
ESAfrica-rheas-viewer-and-dashboards-ronorheas-viewer-dashboard—Jul 28, 2023Review
ESAfrica-flood_simulatorflood simulatorJavaScriptJul 26, 2023Review
ESAfrica-esafisEastern and Southern Africa Fire Information SystemJavaScriptJul 26, 2023Review
ESAfrica-coralreefCoral Bleaching and Depletion trends in East AfricaHTMLJul 26, 2023Review
ESAfrica-biodiversity-viewerVisualization of digitized museums species and specimensHTMLJul 26, 2023Review
Service-Tracker—ASP.NETJun 14, 2023Review
airquality-hkh-cp-web—VueMay 30, 2023Review
airquality-hkh-cp-mobile—DartMay 30, 2023Review
airquality-hkh-cp-admin—JavaScriptMay 30, 2023Review
SCAP——Apr 21, 2023Review
ESAfrica-coastalecoCoastal and Marine Ecosystem Resources Visualization ToolJavaScriptApr 17, 2023Review
ESAfrica-landcoverviewerGHG land cover viewerJavaScriptApr 17, 2023Review
ESAfrica-vulnerabilitytoolMalawi Vulnerability ToolJavaScriptApr 17, 2023Review
ESAfrica-ewx-viewerEarly Warning Explorer -data.rcmrd.org/ewx-viewerJavaScriptApr 11, 2023Review
aq_downscaleDownscaling Air Quality (PM2.5) data from ~25km to ~5km—Apr 4, 2023Review
ESAfrica-Invasive_Species_Mapper_System_AndroidField data collection for invasive speciesJavaApr 4, 2023Review
SERVIR_Template_CLIThis installer will help you get the SERVIR app template installed quickly and ready to modify.PythonMar 8, 2023Capacity material
RHEAS_SCO—PythonJan 24, 2023Review
Bangladesh-Extreme-Weather-Alert—PythonJan 18, 2023Review
esa-waterquality——Jan 6, 2023Review
esa-floodforecastingviewer——Jan 6, 2023Review
esa-streamflow——Jan 6, 2023Review
esa-invasivespecies——Jan 6, 2023Review
esa_rdst——Jan 6, 2023Review
gee-gateway—PythonSep 28, 2022Archive
HIWAT—JavaScriptJul 12, 2022Wrap as MCP
bewa_delivery—JavaScriptJun 24, 2022Archive
LULC_InventoryLand use Land cover InventoryJavaScriptJun 23, 2022Archive
ClimateSERV-2.0-ServerClimateSERV 2.0 ServerPythonJun 22, 2022Archive
Rheas-Viewer-Option2Merged VIC and DSSATJavaScriptJun 17, 2022Archive
WaterWatch—PythonMay 3, 2022Archive
rendviData processing code for for the Rapid Enhanced Normalized Difference Vegetation Index (reNDVI) using Google Earth EngineJupyter NotebookApr 12, 2022Wrap as MCP
fier-cliCommand line interface for running the Forecasting of Inundation Extents using REOF processJuliaFeb 28, 2022Archive
SWAT2.0—JavaScriptAug 11, 2021Archive
ClimateSERV-UI—JavaScriptJun 28, 2021Archive
ast3-flood-colabThis repo hosts submodules and glue code for SERVIR AST3 work on flood—Jun 3, 2021Archive
FierDashboardDashboard web app to visualize results from FIER processHTMLApr 30, 2021Archive
GRACEGRACE Tethys App Master RepositoryJavaScriptApr 15, 2021Archive
AltEx2.0This is an updated web application for storing, querying, and acessing altimetry-based water level estimates globallyPythonFeb 10, 2021Archive
ClimateSERV-2.0-Client-AdminClimateSERV 2.0 Admin—Jan 6, 2021Archive
aqx-india—JavaScriptNov 3, 2020Archive
FIEREE.jlRepository to replicate Forecasting of Inundation Extent using REOF with Earth EngineJuliaNov 2, 2020Archive
WaterQualityTethysApp—JavaScriptOct 17, 2020Archive
spt_bias_correctionPackage for online, large-scale bias corrections of the Streamflow Prediction Tool outputs—Sep 15, 2020Archive
AltExAltimetry Explorer Tethys AppPythonJul 28, 2020Archive
tethysapp-streamflow_prediction_toolWeb app for displaying streamflow predictions using a GIS based interface (Forked from: https://github.com/CI-WATER/tethysapp-erfp_tool).JavaScriptJun 19, 2020Archive
RHEASRegional Hydrologic Extremes Assessment SystemPythonMay 11, 2020Wrap as MCP
ServiceCatalogURLsTethys app for validating SERVIR Service Catalog URLsPythonMar 21, 2020Archive
water-resources—JavaScriptMar 5, 2020Archive
ForestStandHeightSAR Handbook materials - Chapter 4Jupyter NotebookJan 8, 2020Archive
MapViewerhttp://mapviewer.servirglobal.net/JavaScriptAug 14, 2019Archive
RHEAS-Viewer2.0—JavaScriptJul 28, 2019Archive
gee-scripts—JavaScriptJul 24, 2019Archive
LandchangeLearner—PythonJul 11, 2019Archive
ClimateSERVhttps://climateserv.servirglobal.net/JavaScriptJul 3, 2019Archive
HydroViewer—JavaScriptApr 26, 2019Archive
IMERG_30Min_ETLAutomated Extraction, Transformation, and Loading of the latest 30 Minute IMERG PrecipitationPythonJan 10, 2019Archive
DARWIN-Viewer—PythonNov 5, 2018Archive
BiasCorrectionPrecipitationBias Correction for Satellite Precipitation ObservationsRNov 2, 2018Archive
IMERG_Accumulations_ETLAutomated Extraction, Transformation, and Loading of the latest 1, 3, and 7 Day IMERG PrecipitationPythonAug 27, 2018Archive
IMERG_ETLIMERG_ETLPythonAug 24, 2018Archive
tethysapp-water_watch—PythonJul 6, 2018Archive
RLCMSRegional land cover monitoring system—Jul 2, 2018Wrap as MCP
SWAT_viewerSWAT output viewer applicationPythonJun 29, 2018Archive
SMA_Africa—JavaScriptJun 7, 2018Archive
water-quality-geeWater quality scripts for Google Earth EngineJavaScriptMay 29, 2018Archive
MapSERVFor Viewing Google Earth Engine Map Token/IDJavaScriptMay 24, 2018Archive
RHEAS-ViewerView VIC and DSSAT output from a RHEAS databaseJavaScriptMay 1, 2018Archive
BLDAS—PythonApr 13, 2018Archive
BLDAS_Explorer—JavaScriptApr 11, 2018Archive
GEFSViewer—JavaScriptMar 7, 2018Archive
TethysTemplate—JavaScriptJan 9, 2018Capacity material
CropObserver—PythonDec 18, 2017Archive
StreamViewerStream AnimationsPythonOct 18, 2017Archive
FIRE_ETLFIRE_ETLPythonMar 29, 2017Archive
ISERV_ETLISERV_ETLPythonMar 29, 2017Archive
TRMM_ETLTRMM_ETLPythonMar 29, 2017Archive
CREST_ETLCREST_ETLPythonMar 29, 2017Archive
OceanProducts_ETLOceanProducts_ETLPythonMar 29, 2017Archive
VIC_ETLVIC ETLPythonMar 28, 2017Archive
Virtual-Rain—JavaScriptOct 13, 2016Archive
scoScience——Oct 6, 2016Archive
SERVIR-Github-DemoThis is a demo of github and how to use itHTMLApr 12, 2016Capacity material
HubDataSetDisplay—JavaScriptOct 9, 2014Archive
Fire-SMSTriggerProcesses incoming fire data from NASA and uses geofencing to trigger SMS messages from FrontlineSMS.C#Jul 29, 2014Archive
ReferenceNode_ETLScripts to access and compile near real time NASA satellite data into ArcGIS Server time-enabled map servicesPythonJul 21, 2014Archive
TRMM-GPToolsScripts for calculating TRMM composites from custom time paramatersPythonJul 17, 2014Archive
TRMM-ExplorerGeneral purpose browser for TRMM data with the ability to create custom time composites.JavaScriptJul 17, 2014Archive
Fire-Explorer—JavaScriptJul 17, 2014Archive
Landcover-Explorer—JavaScriptJul 17, 2014Archive
ClipNShipExample of clipping, zipping and shipping SERVIR sourced vector and raster data.JavaScriptJul 17, 2014Archive

19 wrap as mcp · 10 migrate · 35 review · 7 capacity material · 61 archive

github.com/Servir-Mekong — 44 repos

The deepest hydrology and land-cover bench in the ecosystem. hydra-floods and rlcms are the two assets the platform plan leans on hardest.

RepositoryWhat it isLanguageLast updatedTriage call
gem-toolgem toolJavaScriptOct 29, 2025Migrate
rainstorm-tracker—JavaScriptSep 23, 2025Migrate
hydra-floodsHYDrologic Remote sensing Analysis for Floods Python packagePythonJul 18, 2025Wrap as MCP
landcoverPortalsimple example of landcover portalJavaScriptOct 2, 2024Wrap as MCP
JRCFloodToolDjangoHistorical Flood Analysis ToolPythonApr 5, 2024Review
Drought-And-Crop-YieldREGIONAL DROUGHT AND CROP YIELD INFORMATION SYSTEM (RDCYIS)JavaScriptFeb 12, 2024Wrap as MCP
hydrafloodstool—HTMLFeb 6, 2024Review
rat_mekong—JavaScriptDec 11, 2023Wrap as MCP
CambodiaME_DashboardA dashboard to monitor, evaluate and report landscape improvements in CambodiaJavaScriptJun 26, 2023Review
AirQualityAir Quality Study for Mekong RegionJavaScriptJun 9, 2023Review
SARFDversion 2 of the forest alert system using an EfficientNetPythonMar 22, 2023Wrap as MCP
ecodash—PythonMar 2, 2023Review
vrsgs—HTMLFeb 27, 2023Review
hydrafloodviewer—HTMLJan 12, 2023Review
sentinel-1-pipelineSentinel 1 pipeline using SNAP GPT 7.0PythonDec 8, 2022Archive
Virtual-Rain—PythonNov 22, 2022Archive
surface-water-map-unet—PythonSep 13, 2022Archive
lhasa—HTMLSep 7, 2022Wrap as MCP
SurfaceWaterToolA web application for the water detection algorithm using Google Earth Engine and App Engine.PythonSep 5, 2022Archive
GPM-BICOBias Correction Tool for GPM precipitation dataPythonJul 12, 2022Archive
gae-gee-demoA simple web application demonstrating how to combine the Google Maps API with the Google Earth API.PythonNov 24, 2021Capacity material
ST-CORASpatiotemporal Object-based Rainfall AnalysisPythonOct 7, 2021Archive
data-driven-optical-sar-data-fusionRepository to host the processing workflow for the paperJupyter NotebookJul 7, 2021Archive
landcoverPackagepip package to import land cover toolPythonJun 22, 2021Archive
GPL_forest_alert_model—PythonApr 26, 2021Wrap as MCP
tensorflowBucketrepo for tensorflow modelsPythonFeb 4, 2021Archive
ClimateSERV_CHIRPS-GEFSAutomatic extraction of CHIRPS-GEFS rainfall forecast data using ClimateSERVPythonNov 9, 2020Archive
rlcmsHosting repository for the RLCMS methodology and code using GEE—Oct 23, 2020Wrap as MCP
LandCoverMonitoring—PythonSep 29, 2020Archive
Servir-Mekong.github.ioLanding page for SERVIR-Mekong repo documentsPythonAug 11, 2020Archive
tensorFlowModelsRepository to store ee Tensorflow modelsPythonFeb 3, 2020Archive
tethysapp-hydraviewerHYDrologic Remote sensing Analysis Viewer ApplicationHTMLOct 9, 2019Archive
Jupyter-gee—Jupyter NotebookFeb 1, 2019Archive
bumpBasic Utility Mapping Preprocessor - bumping the newest imagery into Earth EnginePythonAug 22, 2018Archive
MODIS_toolsPython scripts for NRT and historic modis flood monitoring toolsPythonApr 3, 2018Archive
Jupyter-MachineLearningGeneric ML libraryJupyter NotebookMar 19, 2018Archive
Jupyter-arcpySetting Up Jupyter notebooks for ArcGIS—Mar 17, 2018Archive
harmonicTrend—PythonNov 9, 2017Archive
PythonLandCoverToolpython implementation of the landcover toolPythonOct 4, 2017Archive
JRCFloodTool—JavaScriptAug 30, 2017Archive
CarbonMonitor—PythonMar 17, 2017Archive
GIT-Mekong-InfoGeneral Information Related to Geospatial Information Technology of SERVIR-Mekong Team—Sep 2, 2016Archive
Eco-Dashboardbiophysical earth engine appPythonAug 25, 2016Archive
Dam_InundationThis ARCGIS tool calculates potential dam Inundation extents—Jul 21, 2016Archive

8 wrap as mcp · 2 migrate · 7 review · 1 capacity material · 26 archive

github.com/SERVIR-Amazonia — 38 repos

Newest activity of any hub org. Also carries an obvious consolidation target: fourteen Tethys/GEOGloWS repos are roughly three codebases forked once per country.

RepositoryWhat it isLanguageLast updatedTriage call
comimoWeb application repository for illegal gold mining monitoring application.JavaScriptJul 28, 2026Wrap as MCP
VegMapperLand cover classification using remote sensing observationsJupyter NotebookMar 2, 2026Wrap as MCP
MANGLEEUn repositorio para los scripts de la herramienta MANGLEE para monitoreo de manglares en Ecuador.Jupyter NotebookJul 14, 2025Wrap as MCP
caribbean-trainingsGeneral github-pages template for the 2022-23 Caribbean workshops and beyond!HTMLJan 24, 2025Capacity material
barbados-trainingA repository for the 2022-23 Barbados geospatial capacity building training series website.HTMLJan 24, 2025Capacity material
colombia-trainingRepo for the Colombia training sessions -- in progressHTMLJan 24, 2025Capacity material
republica-dominicana-tallerA repository for the 2022-23 Dominican Republic geospatial capacity building training series website.Jupyter NotebookJan 24, 2025Capacity material
trinidad-and-tobago-trainingA repository for the 2022-23 Trinidad and Tobago geospatial capacity building training series website.HTMLJan 24, 2025Capacity material
guyana-trainingA repository for the 2022-23 Guyana geospatial capacity building training series website.HTMLJan 24, 2025Capacity material
Peru-tensorflow-trainingA GitHub repository for the TensorFlow Training held in Peru (August 8th-11th)Jupyter NotebookJan 8, 2025Capacity material
imbaburaMapeo de coberturas y usos de la tierra Imbabura 2019—Sep 12, 2024Review
geoglows_database_ecuador—PythonJul 19, 2024Review
gedi-inspectLPDAAC vs GEE GEDI data inspection for AST PintoJupyter NotebookJun 7, 2024Review
tethysapp-historical_validation_tool_ecuador—JavaScriptMay 7, 2024Review
tethysapp-national_water_level_forecast_ecuador—JavaScriptMay 7, 2024Review
tethysapp-hydroviewer_ecuador—JavaScriptApr 25, 2024Review
fire-forecasting-colombiaFire Forecasting in the Colombian AmazonJavaScriptApr 4, 2024Review
suriname-trainingA repository for the 2023 Suriname geospatial capacity building training series website.HTMLJan 9, 2024Capacity material
colombia-tethys-appsSet of applications developed for Colombia through the Tethys Platform tool.JavaScriptDec 27, 2023Review
sinchi—RDec 18, 2023Review
sinchi-cobertura—RDec 14, 2023Review
rami-peruUn repositorio para los scripts de la herramienta RAMI para monitoreo de minería en la Amazonía peruana.JavaScriptOct 31, 2023Wrap as MCP
Spectral_Signature_Perennial_Crops——Sep 11, 2023Review
tethysapp-national_water_level_forecast_brazil—JavaScriptAug 28, 2023Review
tethysapp-historical_validation_tool_brazil—JavaScriptAug 25, 2023Review
geoglows_database_brazil—PythonAug 25, 2023Review
ACCA-Selective-Logging-DLA series of python notebooks describing a workflow to develop a deep learning model with very high resolution images from SkySat (0.5 m).Jupyter NotebookAug 4, 2023Review
Mapping_Perennial_CropsIt is a routine developed to map perennial crops on Google Earth EngineJavaScriptAug 4, 2023Review
republica-dominicanaGEE repository of scripts being used in the Dominican Republic training sessions.—Aug 4, 2023Capacity material
training-documentation-examplejust to screenshoot the step by step. will be deletedHTMLAug 3, 2023Capacity material
tethysapp-sonics_hydroviewer—PythonJul 24, 2023Review
tethysapp-sonics_geoglows—PythonJul 23, 2023Review
tethysapp-hydroviewer_peru—JavaScriptJul 22, 2023Review
tethysapp-historical_validation_tool_peru—JavaScriptJul 22, 2023Review
geoglows_database_peru—PythonJul 22, 2023Review
tethysapp-national_water_level_forecast_peru—JavaScriptJul 22, 2023Review
servir-amazonia-mlNotebook tutorials demonstrating advanced techniques for use of deep learning with TensorFlow and earth observation dataJupyter NotebookDec 9, 2021Capacity material
sentinel-1-pipeline—PythonMar 24, 2020Archive

4 wrap as mcp · 22 review · 11 capacity material · 1 archive

github.com/SERVIRSEA — 7 repos

Small and modern — includes two foundation-model experiments (Claynge on Clay, cashew on a CNN) that are directly relevant to the GeoAI stack in §03.

RepositoryWhat it isLanguageLast updatedTriage call
airquality_backend—JavaScriptFeb 24, 2025Wrap as MCP
ClayngeCLAY for change detectionJupyter NotebookNov 5, 2024Wrap as MCP
mrc_ffgs—HTMLSep 2, 2024Wrap as MCP
cambodia_supporting_scripts—Jupyter NotebookJul 2, 2024Review
sentinel-tree-coverImage segmentations of trees outside forestJupyter NotebookJun 18, 2024Wrap as MCP
cashewCashew mapping in Cambodia using Convolutional neural networkPythonMay 5, 2024Wrap as MCP
mrcdash—JavaScriptDec 20, 2023Review

5 wrap as mcp · 2 review

github.com/pyregence — 8 repos

Partner-tool org, named by David (Decision #16). Actively developed in Clojure through September 2026 — the wildfire capability in §04 is real, current software.

RepositoryWhat it isLanguageLast updatedTriage call
pyregenceThe main web portal for the Pyregence project.ClojureSep 2, 2026Wrap as MCP
geosyncAutomatically add raster and vector layers to a running GeoServer instance.ClojureSep 1, 2026Wrap as MCP
pyretechnicsFire-behavior library — Rothermel surface, crown, spotting, and the ELMFIRE level-set spread algorithm. On PyPI (pip install pyretechnics), 15 releases, EPL-2.0. Authors incl. D. Saah (SIG).Python / Cython (GitHub reads it as HTML — org-mode export)Aug 10, 2026Wrap as MCP
geoserverOfficial GeoServer repositoryJavaJul 15, 2026Migrate
ul-wildfire-risk-modeling-exercise—Jupyter NotebookMay 21, 2026Migrate
WesterlingFireModelsCode for most of the sub-projects for the Fire Modeling from the Westerling lab.RDec 22, 2025Migrate
gridfire—ClojureMay 22, 2024Wrap as MCP
WBSEWildfire Burn Severity and Emission InventoryJupyter NotebookApr 25, 2022Archive

4 wrap as mcp · 3 migrate · 1 archive

github.com/geoglows — 28 repos

Partner-tool org. GEOGloWS is named as the riverine-flood forecasting backbone throughout this plan — §04's flood row, §05's irrigation-water-availability signal, §07's shared streamflow row, and the Malawi and IDEAM use cases — but its code had never been inventoried, so the plan was depending on software it had not read. It is the most actively developed org in this register: eleven repos pushed in the last month, against roughly six across the two largest hub orgs all year. Licensing is permissive throughout, verified by cloning: geoglows is on PyPI and conda-forge at 2.2.0 (BSD-3-Clause-Clear), geoglows-rest-api is MIT and already a running Flask service, river-route is BSD and on PyPI. That lowers the technical barrier to wrapping — it does not define the institutional relationship. GEOGloWS is a partner with its own governance (confirmed by David, 14 September 2026), and §04's flood row stays Partner. What the inventory changes is that the partnership turns out to be better provisioned than the label implied: integration here is an agreement to reach, not a capability to build.

RepositoryWhat it isLanguageLast updatedTriage call
tdxhydro-postprocessing—PythonSep 12, 2026Wrap as MCP
webapp-fews4allMulti-Model Global Flood Early Warning SystemJavaScriptSep 10, 2026Review
webapp-rfs-v3—JavaScriptSep 8, 2026Review
apps.geoglows—HTMLSep 4, 2026Review
rfs-v2-hydroviewer—JavaScriptSep 4, 2026Review
webapp-grace-groundwater— (GRACE groundwater front-end — see the overlap note below)JavaScriptSep 4, 2026Review
geoglows.orgMain geoglows.org pageAstroSep 1, 2026Review
geoglows-authGeoglows auth Ts libraryTypeScriptSep 1, 2026Migrate
webapp-rfs-hydrography—JavaScriptAug 31, 2026Review
webapp-rfs-hydrosos—JavaScriptAug 28, 2026Review
aquiferx—Jupyter NotebookJul 15, 2026Wrap as MCP
training.geoglows.org——Jul 7, 2026Capacity material
hydroserver-opsA GitHub repo used to manage HydroServer deploymentsHCLJun 27, 2026Migrate
geoglows_ecflow—PythonJun 24, 2026Wrap as MCP
rfs-v2-retrospective-update—PythonApr 23, 2026Wrap as MCP
river-routeHydrologic river routing of gridded runoff depths or catchment volumes on vector stream networksPythonApr 17, 2026Wrap as MCP
geoglows-rest-apiA flask app for the GEOGLOWS River Forecast System web data servicePythonApr 13, 2026Wrap as MCP
ggst_backend— (GRACE Groundwater Subsetting Tool backend — see the overlap note below)Jupyter NotebookApr 7, 2026Wrap as MCP
pygeoglowsA python package of tools coming from the GEOGLOWS initiativePythonDec 2, 2025Wrap as MCP
forecast-gameThe serious game for RFS forecastsHTMLJul 19, 2025Capacity material
hydrosos_maps—PythonMay 20, 2025Wrap as MCP
basininflow—PythonNov 23, 2024Wrap as MCP
toc.geoglows.docs——Oct 10, 2024Capacity material
geoglows-hydroviewerA web app for interacting with all components of the GEOGloWS ECMWF Streamflow ModelHTMLOct 1, 2024Review
model-workflows—PythonMar 22, 2024Wrap as MCP
RAPIDpyRAPIDpy is a python interface for RAPID that assists to prepare inputs, runs the RAPID program, and provides post-processing utilitiesPythonMar 15, 2024Wrap as MCP
rapid-docker—DockerfileDec 7, 2023Migrate
old-training.geoglows.orgsource for the training.geoglows.org websitePythonNov 6, 2022Archive

12 wrap as mcp · 3 migrate · 9 review · 3 capacity material · 1 archive

GRACE groundwater is claimed three times over. geoglows/ggst_backend and geoglows/webapp-grace-groundwater are the backend and front-end of the GRACE Groundwater Subsetting Tool. The same capability is already claimed by DRIP — Drought Resilience Impact Platform in §09 ("satellite-linked groundwater sensors plus drought forecasting", Kenya/Ethiopia, in development), by the GRACE-FO drought products row in §10, and by the archived SERVIR/GRACE ("GRACE Tethys App Master Repository") in the inventory above — four groundwater efforts against one NASA mission. aquiferx is a fifth, adjacent. This needs one owner before any of it is wrapped: the §07 sharing table currently carries GEOGloWS only as a streamflow signal, and groundwater does not appear in §05 or §07 at all, which is how the duplication stayed invisible.
Three findings to carry into the migration, beyond the counts. Only about six repositories across the two largest hub orgs show 2025–26 activity, so most of this is reference code rather than running software — the migration is an archaeology exercise as much as a move. sentinel-1-pipeline exists independently in both SERVIR-Amazonia and Servir-Mekong, with the Mekong copy already archived — the clearest single example of the duplication the consolidation is meant to end. And two repos need provenance checked before they are treated as first-party code: pyregence/geoserver ("Official GeoServer repository") and SERVIRSEA/sentinel-tree-cover are almost certainly upstream-derived, though GitHub rendered no fork label for either.
← Previous01 · How to Build This Next →03 · GeoAI Strategy Alignment