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.
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.
- 01Use a global config for yourself, or a project .cursor/mcp.json for a shared repository (keep the token out of version control).
- 02Create a read-only token for development. Add mcp:write only if you are testing watchlist or decision flows.
- 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.
- 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.
- 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>" } } } } - 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/).
| Tool | Scope | What it returns |
|---|---|---|
| search_opportunities | mcp:read | Normalized, deduplicated notices filtered by query, source, type, country, CPV, value and dates, with official source links and English titles where translated |
| match_opportunities | mcp:read | Notices ranked against your company profile, each with its 0–100 score, reasons, unknowns and blockers |
| ask_opportunity | mcp:ai | A grounded answer about one notice, with sources and a document coverage note; facts are kept apart from inferences |
| get_brief | mcp:read | The cited brief: each claim with the document span it cites and the verbatim quote, plus a stale flag |
| get_document_coverage | mcp:read | Documents registered for a notice, their parse status and an explicit limitations list |
| list_pursuits / get_pursuit | mcp:read | The notices your team is working on, with stage, owner, next action and deadline |
| list_changes / get_change | mcp:read | Material amendments on followed notices, with original and updated clause text side by side |
| list_market_signals / get_market_signal | mcp:read | Early signals: prior information notices, market consultations, stated contract end dates, programme plans |
| list_sources | mcp:read | Every indexed source: coverage, freshness, counts, open incidents and known limitations |
| record_decision | mcp:write | Records 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 ]01Why 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.
02Should 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.
03Where 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.
04Do 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.
05Which 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.