Search and map the Pentagon UAP/UFO releases plus curated official archives from 12 nations.
An MCP server (and a live map) for the Pentagon's declassified UAP files.
On July 10, 2026, the U.S. Department of War published PURSUE Release 04 on war.gov/UFO. uap-pulse now bundles all four releases: 334 U.S. records, plus 16 curated official-government cases from 12 nations — 350 records total, spanning 1944–2026.
Official sources only. U.S. PURSUE records are public domain under 17 U.S.C. § 105. The international layer links to official national archives; rights remain with each originating source. No scraped civilian databases. Not affiliated with or endorsed by any government.
🗺️ Live map: https://uap-pulse.vercel.app · 📦 npm: uap-pulse
Your agent can search all 350 records by release, location, agency, era, or type — and pull the direct official source link for each.
Claude Desktop / any MCP client — add to your config:
{
"mcpServers": {
"uap-pulse": { "command": "npx", "args": ["-y", "uap-pulse"] }
}
}
That's it — no API key, no auth, no cost. The data ships with the package.
Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:
npx -y uap-pulse --http
# GET http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp (sessionless)
Env: UAP_PULSE_HOST, UAP_PULSE_PORT, UAP_PULSE_TRANSPORT=http.
| Tool | What it does |
|---|---|
search_sightings | Search by release (1–4), free text, agency, type, year range, or location. |
search_nearby | Incidents within a radius (km) of a lat/lng, sorted by distance. |
get_sighting | Full record for one file id (e.g. pursue-042) + the war.gov link. |
full_text_search | Relevance-ranked search across titles, locations, and descriptions. |
notable_cases | Curated historically significant groups with source records. |
hotspots | The locations with the most declassified records. |
stats | Totals + breakdowns by release, agency, file type, and era. |
timeline | Records per decade (or year), 1944 → 2026. |
timeline_data | Per-period records with coordinates for maps and animation. |
Example — "What UAP files mention the Moon?" → search_sightings({ location: "Moon" }) → NASA Gemini/Apollo records with their war.gov links.
Latest release — search_sightings({ release: 4, limit: 100 }) → all 40 files released on July 10, including the 1949 Los Alamos conference transcript, Project Sign records, new sensor videos, and STS-80 images.
A 3D globe of every geolocatable record — points pulse where the sightings cluster, colored by agency, filterable by era (WWII Foo Fighters → the Navy Era). Click a hotspot to read the files and open them on war.gov. Off-world records (Moon, orbit) get their own panel.
Run it locally:
cd site && python3 -m http.server 8080 # then open http://localhost:8080
Or deploy the site/ folder to Vercel (static, no build step).
war.gov CSV is mirrored locally for reproducible builds; coordinates are representative centroids for named locations, maintained in scripts/build_data.py.Rebuild the dataset: npm run data (or python3 scripts/build_data.py).
npm install
npm run build # tsc -> dist/
npm start # run the MCP server over stdio
Code: MIT © David Mosiah (@delx369). Data: U.S. public domain.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y uap-pulseMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-davidmosiah-uap-pulse": {
"command": "npx",
"args": [
"-y",
"uap-pulse"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceio.github.davidmosiah/uap-pulse works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.