Appearance
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 URL | https://mcp.dataplicity.com/mcp |
| Landing page | https://mcp.dataplicity.com/ |
| Transport | Streamable HTTP |
| Auth | Authorization: ApiKey <key> or X-API-Key: <key> |
| Org context | Derived 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
- Open Integrations in the Dataplicity app.
- Select API and create a key with
mcp:readfor exploration. - Add
mcp:writeonly if the agent must mutate fleet state. - Alternatively grant the underlying product scopes (
developer:devices:read,fleet_jobs:read,monitors:read,incident_automation:read, and matching write scopes). - Copy the plaintext key once and store it as
DATAPLICITY_API_KEYin 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
| Tool | Access | Purpose |
|---|---|---|
list_devices | read | Search or filter fleet inventory (search, tag, online, limit) |
get_device | read | Full device detail by device_hash |
update_device | write | Optional name, description, wormhole_enabled, wormhole_override |
refresh_device_status | read | Re-resolve online/offline presence; optional device_hashes |
Health, logs, and monitors
| Tool | Access | Purpose |
|---|---|---|
get_device_health | read | Class monitoring plus disk-space history |
list_logs | read | Recent organisation log lines; optional device_hash and search |
get_device_timeline | read | Lifecycle and operator events (Business or Enterprise) |
get_device_telemetry | read | Recent telemetry samples for a device |
list_monitors | read | Endpoint and/or heartbeat monitors (kind optional) |
get_monitor | read | One monitor by hash_id and kind |
Fleet jobs and incidents
| Tool | Access | Purpose |
|---|---|---|
list_fleet_jobs | read | Recent fleet fan-out jobs |
get_fleet_job | read | One job, including per-device results |
cancel_fleet_job | write | Stop further dispatch for a running job |
list_incident_rules | read | Incident automation rules (feature-gated) |
get_incident_insight | read | Coverage 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
| Tool | Access | Purpose |
|---|---|---|
list_wormhole_fleet | read | Wormhole exposure summaries across accessible devices |
get_wormhole_status | read | URL, exposure, and probe state for one device |
get_remote_host | read | Current router host for a device (no session opened) |
open_remote_service | write | Open 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:readuntil you need mutations. - Treat
open_remote_serviceas 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.