DarkNOC Vodacom demo
A demo-ready incident workbench where operators build a ticket package from map evidence, then hand the same grounded context to Codex, Claude, Cursor, Pilot, or content agents through clean MCP URLs.
Try The Live NOC
Open the incident map, create or select a ticket, draw the area, and collect evidence from overlays, wizards, panels, and raster picks.
Connect Admin MCP
Give Codex, Claude, Cursor, or Pilot a clean URL for package readiness, missing context, ticket exports, and operational handoff.
Capture Visual Proof
Use browser WebMCP to snapshot map moments, record guided clips, attach evidence, and preserve source/caveat metadata.
Demo data noticeshow
Vodacom South Africa is used only as a South Africa demo label. DarkNOC is not affiliated with, endorsed by, or representing Vodacom South Africa or any mobile network operator. This demonstration uses publicly available and crowdsourced radio site information, including OpenCelliD, together with synthetic operational data generated for demonstration purposes. No operator-confidential, customer-confidential, or employer-confidential data is used. Content must separate simulator output, public-source context, and agent interpretation.
Drive The Visible GUI
Agents can switch mode, open panels, toggle overlays, focus a point, and frame bounds before capture.
Capture Map Evidence
Agents can take PNG snapshots, start/stop browser-approved WebM clips, and list recent visual moments.
Build GIF Capture Plans
Agents can produce a GIF-like frame plan from browser-captured visual moments.
Attach To Ticket
Visual moments and reports can be written back only through browser confirmation against the active ticket.
One MCP Endpoint
Admin and content work use the same serverless MCP URL. The difference is the prompt or tool you call, not a different URL. This matches the deployed-project model: one country/domain, one endpoint, many workflows.
http://localhost:3001/api/mcp
https://za.darknoc.net/api/mcp
http://localhost:3001/mcp.json
Operations MCP Workflow
Use the single project MCP URL for ticket package inspection, package readiness, missing context, simulator health, Pilot handoff, and normal NOC analysis.
Prompt results come back to Codex, Claude, Cursor, or curl as result.messages[0].content.text. Tool calls return result.structuredContent.
Network Storytelling Workflow
Use the same MCP URL and network_storyboard_prompt for evidence-backed public/demo stories with map snapshots, guided clips, and no-affiliation caveats grounded in a completed ticket.
Prompt results return in the MCP client as a ready storyboard. story_export_html_package returns a self-contained HTML story package.
Cursor Config
Put this in the project MCP config. The country/project is selected by the deployed domain and environment; no profile or deployment query string is needed.
{
"mcpServers": {
"darknoc": {
"url": "http://localhost:3001/api/mcp"
}
}
}Where The Input Comes From
- 1. Create or select a ticket in the app. The ticket is the source of truth for incident, polygon/area, panel captures, raster picks, affected sites, notes, and agent reports.
- 2. Populate the ticket from the map. Collect coverage, demand/headroom, population, POIs, alarms, sites, remediation, and wizard outputs before asking content agents to write.
- 3. Give MCP the ticket context. Use
ticket=...andincidentId=...for a specific case, or pass acontextobject in tool/prompt arguments. The market deployment is locked by the project/domain. - 4. Use browser WebMCP for pixels. Serverless MCP can read structured ticket data; the live browser bridge captures map screenshots, short clips, raster-pick moments, and visual evidence.
First Prompt For Admin MCP
Use the darknoc MCP. Read darknoc://agent-workbench/workspace-guide and darknoc://agent-workbench/auth-policy. Call agent_validate_context_package first. If blocked, call ticket_get_missing_context and ticket_get_handoff_path. Then call agent_prepare_prompt with targetAgent="codex" or "claude". Use ticket_get_package as the source of truth. Do not invent missing panel/raster evidence.
curl -X POST 'http://localhost:3001/api/mcp' \
-H 'content-type: application/json' \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"prompts/get",
"params":{
"name":"incident_context_audit",
"arguments":{
"context":{"ticket":{"id":"tkt_demo","title":"Demo incident","workflowType":"incident_response","state":"building","contributionCount":5}}
}
}
}'
Result path: result.messages[0].content.textDeployment Model
Treat each market as its own product deployment. The domain and env choose the country, operator label, data sources, disclaimer, and enabled deployment. The MCP URLs stay clean because the project already knows its market.
curl 'http://localhost:3001/api/mcp/deployment-readiness'