Skip to main content
Glama

πŸ›Έ 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.

Related MCP server: Gods Eye Geospatial MCP

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.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).


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.

Available Tools

9 tools
get_sightingA

Get the full record for one UAP file by id (e.g. 'pursue-042'), including the full description and the direct war.gov source link.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesrecord id, e.g. 'pursue-042'

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It mentions what is included (full description, source link) but does not disclose side effects, error handling, or permissions. This is adequate but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence of 18 words, front-loading the core action and providing an example. Every word adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-ID tool with one parameter and no output schema, the description covers the key inclusions (full description, source link). The sibling list provides context. Minor omission: does not explain return format or error states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the 'id' parameter as 'record id, e.g. 'pursue-042''. The description adds the same example without providing new semantic meaning beyond the schema. With 100% schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'get', the resource 'full record for one UAP file', and specifies the identifier format with an example. It distinguishes itself from siblings like full_text_search by being a direct retrieval by ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a specific ID and need the full record, but it does not provide explicit guidance on when to avoid this tool or suggest alternatives. Sibling tools are listed separately but not contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hotspotsB

Rank the incident locations by how many declassified records mention them (the UAP hotspots).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the ranking function but does not disclose output format, pagination, authentication needs, or any side effects. Minimal behavioral context beyond purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single 15-word sentence, concise but lacking structure. It is front-loaded with the purpose, but every word could be expanded to include more useful detail without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is incomplete. It does not explain what the ranking output contains, how results are sorted, or how 'declassified records' are counted. The tool is simple but needs more context for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the 'limit' parameter. The schema provides defaults and bounds, but the description adds no additional meaning or usage context for the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool ranks incident locations by the number of declassified records mentioning them, using verb 'rank' and specific metric. It distinguishes from siblings like search functions and stats by focusing on location ranking based on mention frequency.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. Usage is implied but not compared to alternatives such as search_sightings or stats. The description assumes the agent will infer context from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notable_casesA

Return curated, historically significant cases from the release (Foo Fighters, Gemini 7, Apollo, Maury Island, the 1963 presidential memo, the FBI case file, the Navy era) β€” each with the matching records and why it matters.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNooptional: just one case group

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It implies a read-only operation but does not explicitly state side effects, permissions, or return behavior. More detail would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the tool's purpose and content without extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description hints at the return value (cases with records and importance). For a tool returning predefined cases, this is mostly complete, though specifying the structure would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter is already well-defined with an enum. The description adds context by listing the values in parentheses, but does not significantly enhance understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns curated, historically significant cases with matching records and why they matter. It lists specific cases, making the purpose distinct from siblings like full_text_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies using this for predefined notable cases, but does not explicitly guide when to use it versus alternatives (e.g., full_text_search for broad search). No mention of when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_nearbyA

Find declassified UAP incidents within a radius (km) of a latitude/longitude. Sorted by distance. Off-world records (Moon, orbit) are excluded.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
latitudeYes
longitudeYes
radius_kmNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It reveals key behaviors: distance-sorted results and exclusion of off-world records. However, it doesn't explicitly state that the operation is read-only or describe any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with key info. Could be slightly more structured (e.g., listing parameters) but no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no output schema and no annotations, the description covers purpose and key behaviors but lacks details on pagination, return format, or how results are presented. Adequate but could do more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It adds context for latitude, longitude, and radius_km (radius in km) but does not explain limit or the meaning of radius_km's constraints (default, min, max). No details on required vs optional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds declassified UAP incidents near a lat/lon, sorted by distance, and excludes off-world records. This distinguishes it from siblings like hotspots or notable_cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use (spatial search for incidents) but does not explicitly mention when to prefer alternatives like search_sightings or full_text_search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_sightingsC

Search the declassified PURSUE UAP records by free text, agency, file type, year range, or location. Returns matching records (brief form).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoPDF document, VID video, IMG image, AUD audio, or DOC (international official record)
limitNo
queryNofree text matched against title, description and location
agencyNoexact agency name, e.g. 'Department of War', 'FBI', 'NASA', 'Department of State', 'Central Intelligence Agency', 'Department of Energy', 'Office of the Director of National Intelligence'
locationNosubstring match on the incident location, e.g. 'Iraq', 'Moon'
year_endNo
year_startNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry full behavioral transparency. It only states 'Returns matching records (brief form)', omitting details about whether the operation is read-only, destructive, any authentication needs, rate limits, or pagination. The phrase 'brief form' is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the core purpose and search dimensions. Every word serves a purpose; no fluff or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the description is insufficient. It omits critical details like the 'limit' parameter behavior, result format details, and handling of empty results. An agent would lack enough context to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description covers 5 of 7 parameters (query, agency, type, location, year range) but omits 'limit' and does not explicitly name 'year_start' and 'year_end' (though implied by 'year range'). The schema already provides descriptions for most parameters, so the description adds marginal value. A 3 is appropriate given schema coverage >50%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a search over 'declassified PURSUE UAP records' with specific searchable dimensions (free text, agency, file type, year range, location). The verb 'Search' and resource are clear, but it does not differentiate from the sibling 'full_text_search', which may have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'full_text_search', 'get_sighting', or 'stats'. There are no examples or context for appropriate use cases, making it harder for an agent to choose correctly among similar siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

statsB

Summary statistics for the PURSUE release: totals and breakdowns by agency, file type, and era.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It states the tool provides summary statistics but does not disclose behavioral traits such as data freshness, caching, or whether it aggregates live data. Minimal transparency beyond basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no extraneous information. Conciseness is good, but the term 'breakdowns' is vague and could be more specific about what is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description is adequate but minimal. It lacks details about the output format (e.g., JSON structure) or scope (e.g., time range). For a simple stats tool, more context would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100% (empty properties). The description adds no parameter info because none exist. Baseline of 4 is appropriate for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides summary statistics for the PURSUE release with breakdowns by agency, file type, and era. However, it does not differentiate from siblings like timeline or hotspots, which might also offer aggregated data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies it is for overall statistics, but lacks context about when other tools are more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

timelineA

Count declassified UAP records per decade (or per year), to see how sightings cluster over time (1944–2026).

ParametersJSON Schema
NameRequiredDescriptionDefault
granularityNodecade

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the aggregation behavior (counting records per time period), but lacks details on side effects, authentication, or data source. For a read-only aggregation, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that front-loads the action (Count) and resource, with no superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description is largely complete. It could mention the output format (e.g., counts per period) but the current level is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the granularity parameter's purpose (per decade or per year), adding meaning beyond the schema enum. However, it does not mention the default value or the specific time range covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool counts declassified UAP records by decade or year, with a specific time range (1944–2026). However, it does not differentiate from sibling tools like 'timeline_data', though the verb 'count' and aggregation focus help.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (to see clustering over time), but there are no explicit when-to-use or when-not-to-use guidelines, nor mention of alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

timeline_dataB

Per-period records WITH coordinates β€” for building animated timelines / maps that play through 1944β†’2026.

ParametersJSON Schema
NameRequiredDescriptionDefault
granularityNodecade

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavioral traits. Only states what is returned; no mention of read-only nature, permissions, side effects, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence front-loads key purpose and output format (coordinates, timeline range). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with one parameter, but lacks return format details, coordinate type, and any limits. Could specify output structure or examples.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage. Description adds no extra meaning to the 'granularity' parameter beyond the enum values; default and choice implications are not explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns per-period records with coordinates for animated timelines/maps, and distinguishes from sibling 'timeline' which likely lacks coordinate data. Verb 'get' is implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied for building animated timelines/maps but no explicit when to use vs alternatives or when not to use. Sibling list provides context but no direct guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clear distinct purposes, but full_text_search and search_sightings both support searching with different scopes, which could cause slight confusion. Descriptions help differentiate them.

Naming Consistency3/5

Naming conventions are mixed: some use verb_noun (get_sighting, search_nearby), some are single nouns (hotspots, stats, timeline), and notable_cases is adjective_noun. Inconsistent but readable.

Tool Count4/5

With 9 tools, the set is well-scoped for exploring declassified UAP records. Not too many or too few for the apparent purpose.

Completeness4/5

Covers major exploration needs: text search, filtered search, nearby search, detailed records, stats, hotspots, notable cases, and timeline data. Minor gaps like export or more advanced filtering but sufficient.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI to search and retrieve detailed information from U.S. government datasets, including GAO reports, oversight recommendations, congressional bills, and more, with OData filtering and faceted search.
    2
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server providing access to U.S. government primary-source records, fact-checks, news search, and trackers, with cross-referenced entity data and source links.
    4
    66
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic and keyword search across AI work sessions, learnings, reflections, failures, research, and relationships stored in PAI's MEMORY directory.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidmosiah/uap-pulse'

If you have feedback or need assistance with the MCP directory API, please join our Discord server