MCP server
MopokeHQ is a remote Model Context Protocol (MCP) server. Connect your AI assistant or coding agent to it, and the assistant can read your organisation’s fix list, look up advisories and scanner findings, and, with a read-and-write key, acknowledge, record decisions and request upgrade merge requests on your behalf.
| Endpoint | https://app.mopokehq.com/mcp |
| Transport | Streamable HTTP (JSON-RPC 2.0 over POST) |
| Authentication | Authorization: Bearer mpk_api_..., an API key |
Create a key
Section titled “Create a key”In MopokeHQ, Settings, Integrations, API keys, create a key. The same keys work for the public API.
- A read key lets the assistant look.
- A read and write key also lets it acknowledge P1s, record “not affected” decisions and request upgrade merge requests.
A key acts as you: it can never do more than you can, every change it makes is recorded in the evidence log under your name, and it stops working if you leave the organisation. Start with a read key; give an assistant write access only when you want it to act.
Keep the key out of files you share or commit.
Add it to your assistant
Section titled “Add it to your assistant”Any MCP client that supports remote servers over HTTP works: give it the endpoint and an Authorization header with your key. The Integrations page shows the same snippets with your details filled in. Replace YOUR_API_KEY with your key in the examples below.
Cursor
Section titled “Cursor”In ~/.cursor/mcp.json, or .cursor/mcp.json in a project you do not commit:
{ "mcpServers": { "mopokehq": { "url": "https://app.mopokehq.com/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } }}Clients that only run local servers
Section titled “Clients that only run local servers”Some clients can only start a local command. For those, use the mcp-remote bridge, pinned to a version. Most such clients take a JSON configuration like this:
{ "mcpServers": { "mopokehq": { "command": "npx", "args": ["-y", "[email protected]", "https://app.mopokehq.com/mcp", "--header", "Authorization:${MOPOKE_AUTH}"], "env": { "MOPOKE_AUTH": "Bearer YOUR_API_KEY" } } }}The key goes through an environment variable, and there is no space after Authorization: in the arguments, because some clients split arguments on spaces.
Check it works
Section titled “Check it works”Ask the assistant “What’s on my MopokeHQ Now list?”. It should call list_now_actions and answer with your actions in order.
| Tool | Key | What it does |
|---|---|---|
list_now_actions |
read | The fix list in order, optionally one tier (Now, This week, Later), with each action’s key, priority, due time and advisories |
get_response |
read | One advisory: priority and why, due date, Lilly’s note, every exposure. Takes a response id, an advisory id or a CVE id. |
search |
read | Actions, advisories and repositories by name, package or id |
list_findings |
read | Scanner findings (secrets, code, containers, infrastructure as code, licences), most serious first, then new before baseline, then newest. Filters: kind, severity, status (open by default), project, rule id, path prefix and origin (new or baseline). Pages of up to 50. |
acknowledge |
read and write | Take advisories on, which stops the P1 escalation |
mark_not_affected |
read and write | Record a “not affected” decision with a VEX justification. A P1 needs an owner or admin. |
request_upgrade_mr |
read and write | Ask for upgrade merge requests for a Now action. They are opened by the scheduled mopoke act job in your pipeline, on GitLab today. |
Lilly’s notes appear in results only while your organisation has AI switched on (see Lilly).
Each result is a short text for the assistant plus the same facts as structured JSON. list_findings pages like the public API: pass next_cursor back as cursor with the same filters; it is empty on the last page.
When a request is refused for a reason the assistant can act on (a read key calling a write tool, an unknown id, a decision the rules refuse), the tool returns an error result that says why. Write tools run the same rules as the web app: what you cannot do in MopokeHQ, the assistant cannot do with your key.
A typical workflow
Section titled “A typical workflow”With a read-and-write key in a coding agent working in your repository:
- “List the Now actions for this repository.” The agent calls
list_now_actionsorsearch. - “Fix the first one.” The agent reads the advisory with
get_response, upgrades the package in your code, runs the tests and opens a merge or pull request through your usual tools. - Once the fix is deployed and MopokeHQ sees the fixed version live, the advisory closes on its own (see Priorities).
Protocol details
Section titled “Protocol details”- Supported protocol versions: 2026-07-28 (current), and 2025-11-25, 2025-06-18 and 2025-03-26. Older clients open with
initialize; current ones can callserver/discover. - Methods:
initialize,server/discover,ping,tools/list,tools/call. Notifications are accepted with202. - No sessions and no standalone stream:
GETandDELETEanswer405. Batched requests are refused. - A browser
Originother than MopokeHQ’s own is refused. Clients that send noOriginare fine. - Rate limits are the API key’s: 120 requests a minute, with bursts of 60.