Skip to content

Hosted MCP

Dataplicity exposes a hosted Model Context Protocol server so agent tools such as Cursor can work with your fleet using the same organisation context you use in the app.

The public endpoint is https://mcp.dataplicity.com/mcp. Authentication uses organisation API keys. The organisation is always derived from the key, so tools never take an organisation argument and cannot reach another tenant's devices.

MCP URLhttps://mcp.dataplicity.com/mcp
Landing pagehttps://mcp.dataplicity.com/
TransportStreamable HTTP
AuthAuthorization: ApiKey <key> or X-API-Key: <key>
Org contextDerived from the API key

A short human guide also lives on the MCP host root. Use this documentation page for setup, scopes, and the full tool catalogue.

Why use it

Use Hosted MCP when an engineer wants an agent to:

  • list or search devices in the organisation fleet
  • inspect health, logs, timeline, telemetry, or monitors
  • check wormhole and remote-routing state
  • cancel a running fleet job
  • open remote access only when a human has explicitly asked for it

For stable backend automation, CI, and long-running services, prefer the Gateway HTTP API. MCP wraps the same operational surface for interactive agent sessions.

Create a key for MCP

  1. Open Integrations in the Dataplicity app.
  2. Select API and create a key with mcp:read for exploration.
  3. Add mcp:write only if the agent must mutate fleet state.
  4. Alternatively grant the underlying product scopes (developer:devices:read, fleet_jobs:read, monitors:read, incident_automation:read, and matching write scopes).
  5. Copy the plaintext key once and store it as DATAPLICITY_API_KEY in your secret manager or shell environment.

Prefer read-only keys until you need mutations. Write tools can rename devices, change wormhole flags, cancel fleet jobs, and open remote services.

The MCP provider on the same Integrations page shows the hosted endpoint and a copyable Cursor configuration. After you create a key under API, the dialog can also show that Cursor snippet.

Cursor configuration

Add a remote server to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

json
{
  "mcpServers": {
    "dataplicity": {
      "url": "https://mcp.dataplicity.com/mcp",
      "headers": {
        "Authorization": "ApiKey ${env:DATAPLICITY_API_KEY}"
      }
    }
  }
}

Reload Cursor MCP servers, then ask the agent to list devices or inspect offline members of the fleet.

Other MCP clients

Any client that supports remote Streamable HTTP MCP can use the same URL and headers. If a client does not accept the ApiKey scheme in Authorization, try:

http
X-API-Key: <your-organisation-api-key>

or a bare token in Authorization. The organisation still comes from the key.

Example prompts

Once the server is connected, useful starting prompts include:

  • "List offline devices in my Dataplicity fleet."
  • "Show health and recent logs for device <hash>."
  • "Which endpoint monitors are failing?"
  • "Summarise open fleet jobs and cancel job <id> if it is stuck."
  • "Is wormhole enabled on device <hash>, and what does the latest probe show?"

Start with inventory and diagnostics. Only ask the agent to open remote access when you intend to work on that specific device.

Tool catalogue

Limits are typically 1 to 200 items. Omit optional filters unless you need them.

Devices

ToolAccessPurpose
list_devicesreadSearch or filter fleet inventory (search, tag, online, limit)
get_devicereadFull device detail by device_hash
update_devicewriteOptional name, description, wormhole_enabled, wormhole_override
refresh_device_statusreadRe-resolve online/offline presence; optional device_hashes

Health, logs, and monitors

ToolAccessPurpose
get_device_healthreadClass monitoring plus disk-space history
list_logsreadRecent organisation log lines; optional device_hash and search
get_device_timelinereadLifecycle and operator events (Business or Enterprise)
get_device_telemetryreadRecent telemetry samples for a device
list_monitorsreadEndpoint and/or heartbeat monitors (kind optional)
get_monitorreadOne monitor by hash_id and kind

Fleet jobs and incidents

ToolAccessPurpose
list_fleet_jobsreadRecent fleet fan-out jobs
get_fleet_jobreadOne job, including per-device results
cancel_fleet_jobwriteStop further dispatch for a running job
list_incident_rulesreadIncident automation rules (feature-gated)
get_incident_insightreadCoverage gaps and noisy signals (feature-gated)

Creating a fleet job is not available over MCP. Use the Dataplicity app, Fleet jobs, or the Gateway API.

Wormhole and remote access

ToolAccessPurpose
list_wormhole_fleetreadWormhole exposure summaries across accessible devices
get_wormhole_statusreadURL, exposure, and probe state for one device
get_remote_hostreadCurrent router host for a device (no session opened)
open_remote_servicewriteOpen terminal, remote-file, or redirect-port on an online device

open_remote_service is privileged and audited. The device must be online. Prefer health, logs, and host diagnostics first.

What is not exposed

Interactive PTY streaming, arbitrary shell fan-out, and billing are intentionally unavailable through MCP.

Safety

  • Start with mcp:read until you need mutations.
  • Treat open_remote_service as privileged: it can open terminal, file, or port-forward access on a device.
  • Rotate keys after exposure; never commit plaintext keys to git.
  • MCP does not replace the Gateway HTTP API for production backend integrations that need a stable REST contract.