npm uap-pulsestdioMITupdated 10d ago
An MCP server (and a live map) for the Pentagon's declassified UAP files.
What can you do with uap pulse?
πΈ uap-pulse
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
Use it as an MCP server
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.
HTTP (v2 stateless)
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.
Tools
| 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.
The live map
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).
Data
- Source: war.gov/UFO β PURSUE Releases 1β4 (2026-05-08 through 2026-07-10).
- License of the data: Public domain (U.S. federal government work, 17 U.S.C. Β§ 105).
- Coverage: 350 records Β· 275 geolocated Β· 20 off-world Β· 1944β2026. U.S. records by agency: War (171), FBI (87), NASA (40), CIA (21), State (7), DOE (5), ODNI (1), Intelligence Community Agency (1), U.S. Government (1).
- The official
war.govCSV is mirrored locally for reproducible builds; coordinates are representative centroids for named locations, maintained inscripts/build_data.py.
Rebuild the dataset: npm run data (or python3 scripts/build_data.py).
Develop
npm install
npm run build # tsc -> dist/
npm start # run the MCP server over stdio
License
Code: MIT Β© David Mosiah (@delx369). Data: U.S. public domain.
Install
Add uap pulse to your client. Pick the one you use.
claude mcp add uap-pulse -- npx -y uap-pulsecodex mcp add uap-pulse -- npx -y uap-pulseamp mcp add uap-pulse -- npx -y uap-pulse{
"mcpServers": {
"uap-pulse": {
"command": "npx",
"args": [
"-y",
"uap-pulse"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"uap-pulse": {
"command": "npx",
"args": [
"-y",
"uap-pulse"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"uap-pulse","command":"npx","args":["-y","uap-pulse"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"uap-pulse": {
"command": "npx",
"args": [
"-y",
"uap-pulse"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"uap-pulse": {
"command": "npx",
"args": [
"-y",
"uap-pulse"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"uap-pulse": {
"command": "npx",
"args": [
"-y",
"uap-pulse"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"uap-pulse": {
"type": "local",
"command": "npx",
"args": [
"-y",
"uap-pulse"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"uap-pulse": {
"command": {
"path": "npx",
"args": [
"-y",
"uap-pulse"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y uap-pulseRun `goose configure`, choose **Add Extension β Command-line Extension**, and paste this command.
6 tools
uap pulse exposes 6 tools to a connected agent.
- 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.
- timeline_data
- Per-period records with coordinates for maps and animation.
Score
81 / 100
Excellent
- Documentation25/25
- Maintenance25/25
- Trust13/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 3 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 6 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint β no local install
Version history
| Versions | Published |
|---|---|
| 0.4.0Latest | Jul 13, 2026 |
| 0.3.3 | Jul 3, 2026 |
| 0.3.2 | Jul 3, 2026 |