CURSOR / MCP.JSON ]

Defense Explorer for Cursor

Give Cursor’s agent live defence procurement data while you build: pipeline dashboards, CRM syncs, weekly capture reports. It can inspect real records and shapes, then you ship the job against the REST API.

UPDATED 15 SEP 2026

In short

Paste a four-line config into mcp.json with a dx_mcp_ token, and Cursor’s agent can query tenders, matches and pursuits while it writes your integration code.

  1. 01Use a global config for yourself, or a project .cursor/mcp.json for a shared repository (keep the token out of version control).
  2. 02Create a read-only token for development. Add mcp:write only if you are testing watchlist or decision flows.
  3. 03Production jobs should call the REST API with a dx_api_ key; MCP is for the agent in the editor.

Connect in two minutes

03 STEPS ]

Cursor reads MCP servers from JSON config. Its settings UI can also open the file for you.

  1. STEP 01

    Create a token

    In Defense Explorer, open Integrations and create an MCP token with mcp:read (and mcp:ai if you want grounded answers). Copy it now: it is shown once, stored only as a hash, and expires.

  2. STEP 02

    Add the server to mcp.json

    Put this in ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in one project. If the project file is committed, reference the token from your environment or keep the file ignored.

    {
      "mcpServers": {
        "defense-explorer": {
          "url": "https://api.defenseexplorer.com/mcp",
          "headers": {
            "Authorization": "Bearer dx_mcp_<token>"
          }
        }
      }
    }
  3. STEP 03

    Enable and test

    Open Cursor’s MCP settings, check that defense-explorer shows as connected with its tools listed, then ask the agent “Call list_sources and show me the fields each source returns.”

Tools Cursor gets

CORE TOOLS ]

Useful while building. The [full list](/integrations/mcp/) is on the server page, and the equivalent REST endpoints are in the [API reference](/docs/api/).

ToolScopeWhat it returns
search_opportunitiesmcp:readNormalized, deduplicated notices filtered by query, source, type, country, CPV, value and dates, with official source links and English titles where translated
match_opportunitiesmcp:readNotices ranked against your company profile, each with its 0–100 score, reasons, unknowns and blockers
ask_opportunitymcp:aiA grounded answer about one notice, with sources and a document coverage note; facts are kept apart from inferences
get_briefmcp:readThe cited brief: each claim with the document span it cites and the verbatim quote, plus a stale flag
get_document_coveragemcp:readDocuments registered for a notice, their parse status and an explicit limitations list
list_pursuits / get_pursuitmcp:readThe notices your team is working on, with stage, owner, next action and deadline
list_changes / get_changemcp:readMaterial amendments on followed notices, with original and updated clause text side by side
list_market_signals / get_market_signalmcp:readEarly signals: prior information notices, market consultations, stated contract end dates, programme plans
list_sourcesmcp:readEvery indexed source: coverage, freshness, counts, open incidents and known limitations
record_decisionmcp:writeRecords a pursue, hold or decline decision a person has made, with their rationale, to the audit trail

Things to build

06 TASKS ]

Prompts for Cursor’s agent that use live data to get the code right.

  • 01match_opportunities

    “Pull five strong matches and write a TypeScript type for the match object.”

    The agent sees real score, level, reasons, unknowns and blockers, then writes types that match. Cross-check against the OpenAPI document before shipping.

  • 02match_opportunities

    “Write a nightly job that upserts matches over 70 into HubSpot deals.”

    Prototype the mapping with MCP, then run the job on the REST API with a dx_api_ key. The opportunity id is stable, so re-runs are idempotent.

  • 03list_changes

    “Build a Slack message for this week’s material amendments on our pursuits.”

    Uses real change events to design the message: which clause changed, before and after, and which pursuit it affects.

  • 04list_pursuits

    “Generate a weekly capture report from our pursuits and their next actions.”

    Stage, owner, next action and deadline per pursuit, grouped the way your capture meeting runs.

  • 05summarize_market_signals

    “Chart early signals by horizon and country for our CPV codes.”

    One call returns counts by kind, confidence, country, source and horizon, ready for a dashboard.

  • 06list_sources

    “Check which sources are degraded before the job runs.”

    Lets the job skip or warn when a source has an open incident, instead of reporting an empty day as “no new tenders”.

Token hygiene

SECURITY ]

Treat a dx_mcp_ token like a password. It carries your company membership and the scopes you chose. Do not commit it; revoke it in Integrations if it leaks, and create one token per developer so revocation does not break a colleague.

A read-only token cannot record a decision or acknowledge a change under any circumstances, so it is the safe default for an agent that edits code.

Safety and permissions

WHAT IT WILL NOT DO ]

An intelligence and workflow surface, not an autonomous procurement agent.

The server reads public procurement records and your workspace’s own data under the same company membership and permissions as the web app. Another workspace’s id returns “not found”, never “forbidden”, so ids cannot be probed. Access stops as soon as a membership ends or a token is revoked or expires.

Writes are deliberately narrow and all need mcp:write: saving or removing a watchlist item, recording a bid decision a person has already made, and acknowledging that an amendment was seen. An assistant cannot move a pursuit through stages on its own, approve evidence, edit a requirement or create an export.

It cannot submit bids, contact buyers, draft proposal text, access classified material, change billing or make arbitrary network requests. Raw source snapshots are never returned directly, because source pages and documents are untrusted input; ask_opportunity is the controlled path for reading indexed tender text.

Guard rails the tools make visible

A claim with status unknown or conflict is not a supported fact. Document coverage limitations matter: “no such clause” and “no such clause in the parts we could read” are different answers. Only an approved evidence item inside its validity dates can satisfy a requirement. Market signals are inferred demand, not open calls, and an estimated window is labelled as an estimate.

Coverage is defence-relevant, not complete national procurement, so list_sources should be checked before an assistant says a notice does not exist.

Other tender tools with MCP

HONEST CONTEXT ]

MCP is becoming standard in this category. What differs is the data and the tools behind it.

Defense Explorer is not the only tender tool with an MCP connection. Tenderlake offers an MCP-based analyst for mainstream assistants, and Stotles added an MCP connector on its paid plans in August 2026. If you are comparing, see Defense Explorer vs Tenderlake and Defense Explorer vs Stotles.

What is specific here: notices classified for defence relevance and clearance evidence with the reason shown; NATO/NSPA and national European sources alongside TED; briefs that cite the page and quote the text; a qualification matrix tied to reviewed company evidence; amendment impact; and write tools limited to recording what a person decided.

Questions

05 ANSWERS ]
01

Why use a token in Cursor rather than OAuth?

A header in mcp.json is the simplest way to connect a remote server in Cursor, and it works the same on every machine. If your Cursor version completes MCP OAuth for remote servers, the URL alone works too.

02

Should production code call the MCP server?

No. Use the REST API for services and scheduled jobs: bearer dx_api_ keys, pagination, stable error codes and an OpenAPI 3.1 document. MCP is for assistants and agents working with a person.

03

Where is the JSON config documented?

The example on this page matches the client configuration in our MCP documentation: the server URL plus an Authorization header carrying the dx_mcp_ token.

04

Do tokens expire?

Yes. Tokens expire and can be revoked at any time in Integrations. Access also stops if your company membership is no longer active.

05

Which plan includes MCP and the API?

The Team plan. See pricing.

Build bid tools on real defence tender data.

Start a Team trial, create a token, and connect Cursor today.