Hosted MCP servers for US government data

Federal data your agents can rely on.

17 federal sources and 142 tools behind one MCP endpoint. We hold the upstream keys, absorb the rate limits and serve what we can from cache, so your agent keeps working when a government API does not.

Early access. Signup needs a code, and we will send you one.

Works with
POST https://port.harborgovcon.com/mcp
Authorization: Bearer YOUR_API_KEY

{
  "method": "tools/list"
}

200 OK

{
  "servers": 18,
  "tools": 142,
  "sample": [
    "entity_dossier",
    "award_by_piid",
    "agency_spend_velocity",
    "expiring_pipeline"
  ]
}
200 OK 142 tools 18 servers one key
142
MCP tools
17
Federal sources
11
Data domains
1
Key for all of it

Every source is a public US government API, proxied with its licence terms enforced at the gateway. One of the 18 servers is a first party account endpoint that never touches an upstream API.

Every federal API is its own project

Different keys, different auth, different pagination, different limits. Wiring them together is a month of work that is not your product.

Without HARBOR Port
With HARBOR Port
A separate key, signup and authentication scheme for every agency
One bearer key across 17 federal sources
Rate limits and 429 responses your agent has to handle itself
A fair share per tenant, with retries handled before the call reaches the agency
Raw payloads that consume your context window
142 purpose built tools that return what the task actually needs
No MCP surface, so you write the glue yourself
Streamable HTTP MCP that works with Claude Code, Cursor and VS Code today

Why it holds up

Upstream government APIs are slow, rate limited and occasionally down. We absorb that so your agent does not have to.

Speed

Served from cache

Repeated queries come back from our cache instead of the source. Your agent gets an answer in milliseconds, and popular federal data stays fast for every account.

cache backed142 tools
Stability

Fair under load

Per tenant limits and queued retries sit in front of every upstream call. One heavy account cannot starve the rest, and a slow agency does not become your timeout.

live statusper tenant limits
Control

One key, scoped per machine

Bearer authentication on every endpoint. Issue a key per machine, revoke one without touching the others, and read usage per key from your dashboard.

per key meteringrevocable

17 federal sources, one connection

Procurement, spending, regulatory, economic, energy, climate and health data. Same key, same authentication, same response shape. The full tool list for every source lives in the documentation.

See what teams do with it →
Economics

3 sources

Bureau of Economic Analysis9
Bureau of Labor Statistics8
US Census12
Browse tools →
Regulatory

2 sources

Federal Register8
Regulations.gov8
Browse tools →
Climate

NOAA Climate Data

8 tools
Browse tools →
Compliance

GAO Bid Protests

8 tools
Browse tools →
Energy

Energy Information Administration

10 tools
Browse tools →
Federal spending

USAspending

8 tools
Browse tools →
Funding

SBIR/STTR

11 tools
Browse tools →
Health

openFDA

10 tools
Browse tools →
Public safety

FBI Crime Data

8 tools
Browse tools →
Account

Account & Service Meta

4 tools
Browse tools →

Each source also has a focused endpoint at /servers/<slug>/mcp. Same key, fewer tools loaded at once.

Premium core

The procurement core: SAM.gov

Five servers and 30 tools covering the federal procurement lifecycle end to end, from a sources sought notice to the award that closes it, plus the exclusion check that belongs before any teaming decision.

ServerToolsEndpoint
SAM.gov Agency Hierarchy
Agency and sub-agency codes, the cross-API join key for every other federal dataset.
4 /servers/sam-federal-hierarchy/mcp
SAM.gov Contract Awards
Contract award data (CDAS), the FPDS replacement.
6 /servers/sam-contract-awards/mcp
SAM.gov Entity
Entity registration dossiers: the vendor side of the market.
6 /servers/sam-entity/mcp
SAM.gov Exclusions
Debarment and exclusion records, a compliance gate before any teaming decision.
5 /servers/sam-exclusions/mcp
SAM.gov Opportunities
The federal procurement firehose: pre-solicitations, solicitations, sources sought, awards.
9 /servers/sam-opportunities/mcp
SAM.gov is a premium source with a strict daily ceiling. SAM.gov limits how much any account may draw each day, so we ration it: included from Builder upward, or available as an add-on on any plan. If you expect a large SAM.gov volume, talk to us and we will size it with you.

Pricing

Start free. Move up when your agent goes to production. Prices in USD, per month, cancel any time.

Free

For evaluation and side projects.

$0
  • 60 calls / hour
  • 500 calls / rolling 24 h
  • 12 federal sources, SAM.gov excluded
  • 90 day history window
  • 1 API key
  • Community only
Request access

Team

For a team that needs headroom.

$149 / month
  • 5,000 calls / hour
  • 250,000 calls / rolling 24 h
  • All 17 sources including SAM.gov
  • Full history, no window
  • 10 API keys
  • Email, 24h
Request access

Enterprise

For volume, procurement and a named contact.

Custom
  • Volume and concurrency set to fit
  • All 17 sources including SAM.gov
  • Full history, no window
  • Custom API keys
  • Named contact
Talk to us
What your quota measures. Your plan sets how many tool calls you may make. It does not set how many calls a government source will accept, because those ceilings are external and set by someone else. Where a source publishes a hard daily ceiling we say so and stay under it, rather than selling throughput we cannot serve.
Included

Every plan includes

All 12 non SAM federal sources. Keys scoped per machine. A usage dashboard with per key metering. Cache backed responses wherever the licence allows. Licence conditions enforced before data leaves the gateway.

Add on

SAM.gov on any plan

Need SAM.gov without moving up a tier? The add-on grants the five SAM.gov servers on any account. SAM.gov carries a strict upstream ceiling, so talk to us if you expect heavy use.

Three steps to a working call

The same path on every source. One key, one handshake, one tool call shape from exploration to production.

Your agent

Sends one MCP request with a bearer key. No per agency signup.

HARBOR Port

Checks quota, serves from cache where the licence allows, retries fairly.

The agency API

Sees a well formed request inside its limits. Your agent gets the answer.

Get a key

Create an account and we issue your first key immediately. No card, no sales call.

Point your client

One command, or one block of JSON, depending on what you already use.

claude mcp add --transport http \
  harbor-port https://port.harborgovcon.com/mcp \
  --header "Authorization: Bearer $HARBOR_KEY"

Call tools

Start at the aggregate endpoint, or aim at a single source when you know the dataset you need.

Connect in one line

Grab a key from your dashboard, then paste one of these. Replace $HARBOR_KEY with the real thing.

Claude Code
claude mcp add --transport http harbor-port \
  https://port.harborgovcon.com/mcp \
  --header "Authorization: Bearer $HARBOR_KEY"
Cursor ~/.cursor/mcp.json
{
  "mcpServers": {
    "harbor-port": {
      "url": "https://port.harborgovcon.com/servers/usaspending/mcp",
      "headers": { "Authorization": "Bearer \${env:HARBOR_KEY}" }
    }
  }
}
VS Code .vscode/mcp.json
{
  "inputs": [{ "type": "promptString", "id": "harbor-key", "description": "HARBOR Port API key", "password": true }],
  "servers": {
    "harbor-port": {
      "type": "http",
      "url": "https://port.harborgovcon.com/servers/usaspending/mcp",
      "headers": { "Authorization": "Bearer \${input:harbor-key}" }
    }
  }
}
Raw JSON-RPC bash
# MCP is session based. Initialize first and keep the session id, or every
# later request is rejected with "Missing session ID".
SID=$(curl -sD - -o /dev/null https://port.harborgovcon.com/servers/usaspending/mcp \
  -H "Authorization: Bearer $HARBOR_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}' \
  | tr -d '\r' | awk -F': ' 'tolower($1)=="mcp-session-id"{print $2}')

curl -s https://port.harborgovcon.com/servers/usaspending/mcp \
  -H "Authorization: Bearer $HARBOR_KEY" \
  -H "Mcp-Session-Id: $SID" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

curl -s https://port.harborgovcon.com/servers/usaspending/mcp \
  -H "Authorization: Bearer $HARBOR_KEY" \
  -H "Mcp-Session-Id: $SID" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"resolve_recipient_id","arguments":{"name":"accenture"}}}'
One endpoint or many. The aggregate endpoint at /mcp exposes all 142 tools, which is the fastest way to explore. Once you know which dataset you need, point at that single source at /servers/<slug>/mcp. A shorter tool list is measurably more reliable for tool selection and costs less context. Both work with the same key.

Paste this into your agent

No SDK and no client config. Give your agent the endpoint and a key and it speaks MCP for itself. This is the prompt we run against production before a deploy.

Agent prompt Claude Code, Cursor, Codex, any agent
You have access to HARBOR Port, a hosted MCP gateway for US government data.
It speaks MCP Streamable HTTP. Connect and answer one question with live data.

Endpoint: https://port.harborgovcon.com/mcp
Auth:     Authorization: Bearer YOUR_API_KEY
If I have not given you a key, ask me for one and stop.

Every request is a POST with:
  Content-Type: application/json
  Accept: application/json, text/event-stream

Do the handshake on one session:

1. initialize
   {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"agent","version":"1"}}}
   Keep the Mcp-Session-Id response header. Every later request needs it.

2. notifications/initialized (no id)
   {"jsonrpc":"2.0","method":"notifications/initialized"}

3. Verify the key before asking anything. Call harbor_meta_ping and show me the
   result. It must return pong. If it does not, stop and tell me the key is wrong.
   Then call harbor_meta_list_servers and tell me how many servers there are.

4. Answer this with the usaspending tools, not a web search:
   In NAICS 541512, who won the most federal contract dollars in fiscal year 2025,
   and is that market concentrated or fragmented?
   Call usaspending_naics_market_share with {"naics":"541512","fy":2025,"top_n":5}

Show me every request you sent and the figures that came back. If a call fails,
print the error instead of guessing.

Works with any agent that can make an HTTP request. Keys come from the signup flow. Prefer a native client, or want the per-source endpoint instead? The snippets above register the same gateway.

Questions worth asking

What happens when I hit my quota?

Calls beyond your rolling 24 hour limit return a tool error naming the limit, and nothing is charged as overage. The hourly cap exists to stop a runaway loop. The daily cap is the budget you bought.

Is this official government data?

No. Every source proxies a public US government API. HARBOR Port is not affiliated with, endorsed by or acting for any agency, and attribution notices travel with the data.

Which sources can you cache?

It depends on each source licence, and the answer is enforced per source rather than applied as one policy. Where terms permit caching we serve from cache. Where they do not, the request passes through live and we retain nothing.

Why is SAM.gov a premium source?

SAM.gov is the deepest procurement dataset we carry, and it caps how much any account may draw each day. We price and ration it accordingly: included from Builder upward, or available as an add-on on any plan. If you expect a large volume, talk to us and we will size it.

Can I use this commercially?

Yes, subject to each source terms. The licence conditions are enforced at the gateway before data leaves it, per source.

What about uptime?

We publish live status rather than a number we have not measured. Support response times are stated on each paid plan, and a formal availability commitment comes once there is a measured history behind it.

How do I cancel?

From the billing portal, at any time. Access continues to the end of the paid period, then your keys stop.

Do you offer annual billing or invoicing?

For Team and Enterprise, yes. Get in touch and we will set it up.

One key. 17 federal sources. Start free.

HARBOR Port is in early access. Ask for a code and we will send one. Your first key is issued immediately after that.