# Introducing deep.navy

5 October 2026 · deep.navy · 4 min read

deep.navy is a data terminal for agents. You add one URL to your MCP client, `https://mcp.deep.navy/mcp`, with your API key as a bearer token, and your agent can call 17 tools across six toolsets: the web, news, SEC EDGAR, geospatial data, public profiles and monitors. Every result says where it came from. It is free while in preview, and no card is needed to create a key.

Update, October 7, 2026: company identity, US weather, World Bank indicators, EIA energy data and tenant-key management are now available. See the [current documentation](/docs), [Platform API](/docs/platform) and [energy guide](/docs/energy). The counts and examples below describe the original release.

This post shows what your agent gets back. Every example below is a real call made on production on 5 October 2026, trimmed so it stays readable.

## Connect it in one command

Claude Code takes the endpoint as one command. Keep the key in an environment variable rather than in the command:

```bash
claude mcp add --scope user --transport http deepnavy https://mcp.deep.navy/mcp --header "Authorization: Bearer $DEEPNAVY_KEY"
```

User scope makes deep.navy available in every project; `--scope project` writes a shareable `.mcp.json` for a team repo instead.

Cursor reads the same URL and header from `mcp.json`, and Claude Desktop reaches it through the `mcp-remote` bridge; the docs have the snippets for each. Every toolset is also served on its own endpoint, so an agent that only needs filings can be given `https://mcp.deep.navy/edgar` and nothing else. You switch tools on and off per account in the dashboard, and `/mcp` serves exactly the tools you enabled.

## News that knows where it happened

`news_search` is keyword search over news articles, with filters for recency, publication date and domain. Its `near` filter finds articles by place. Each article carries location signals assigned when it was indexed, and each signal keeps the evidence for it: the page's schema.org markup, the dateline the story opens with, or the outlet's place of publication on Wikidata. Nothing is guessed from body text.

Asked for this week's articles mentioning "contract" that were filed from California, `news_search` returned a BioSpace press release, and this is why it matched:

```json
{
	"basis": "BASIS_DATELINE",
	"name": "San Diego",
	"ruleId": "geo.news.v1/dateline",
	"evidence": "SAN DIEGO-"
}
```

The story opens with the dateline `SAN DIEGO-`, and San Diego is in California, so the article matched by administrative containment. Your agent can show that reason to a person, or check it by opening the article with `web_fetch`.

## Filings by section, numbers by fact

`edgar_search` finds 10-K, 10-Q and 8-K filings by keywords, ticker, form type and filing date. `edgar_fetch` returns one filing as markdown, or one section of it such as Item 1A, with the accession number and the sec.gov URL it came from. With a `facts` query it returns XBRL financial facts under the company's own tags instead. Asked for Apple's `NetIncomeLoss` for calendar 2025, it returned this:

```json
{
	"concept": "NetIncomeLoss",
	"unit": "USD",
	"value": 112010000000,
	"fiscalYear": "2025",
	"form": "10-K",
	"accession": "0000320193-25-000079",
	"frame": "CY2025"
}
```

The accession number points to the 10-K the figure was reported in, so the number can be traced to its filing.

## Satellite, weather and places, as STAC

`geo_search` searches earth-observation catalogs by place, time and filters and returns a STAC 1.1 ItemCollection that pystac, QGIS and any STAC client read as it is. The datasets are Sentinel-2 Level-2A, NOAA GOES-18 and GOES-19 imagery and fire detection, HRRR forecasts and ISD station observations, and `geo_places` resolves a name to an Overture Maps place and, on request, its boundary.

Asked for the clearest Sentinel-2 scene over Los Angeles since 20 September, it returned item `S2C_T11SLT_20261004T184227_L2A`, captured on 4 October with `eo:cloud_cover` at 0.0038 percent. Every asset in it is marked `public`, so the files download from the AWS Open Data bucket with no account.

## Any page, with its history

`web_fetch` returns any URL as main-content markdown, plain text or the original HTML, from the index when a stored copy is fresh enough and live otherwise, and it tells your agent which one it got. Every fetch is stored, and a new version is written only when the main content changes. `web_versions` lists a page's versions and `web_diff` returns the unified diff between any two: on the Hacker News front page, versions 1 and 2 were four minutes apart, and the diff shows the points and comment counts that moved.

## People and monitors, in beta

`people_search` searches public profile pages that people publish about themselves, starting from about 125,000 people Wikidata lists with an official website and an English Wikipedia article. A result carries only what the page publishes about its subject, never an email address or a phone number, and names the rule that decided the page is a profile.

A monitor is a `news_search`, `edgar_search` or `geo_search` request saved with a trigger and a webhook. Realtime monitors deliver each new match within about a minute of it being indexed, and interval monitors deliver a digest every hour, six hours, day or seven days. Every delivery is signed with HMAC-SHA256 in a `Deepnavy-Signature` header, so your service can check it came from deep.navy. Your agent can create its own monitors with `monitor_create`.

## Try it

Create a key, add the URL to your client, and ask your agent for a filing, a scene or the news near a place. Everything is free while in preview. The [docs](/docs) list every argument and every field, [features](/features) shows a real call for each toolset, and [pricing](/pricing) has the plans that apply once billing starts.

---

This is the Markdown copy of https://deep.navy/blog/introducing-deep-navy.
