This document defines the Model Context Protocol tools for the Edge Computing module, covering function deployment, node health monitoring, state synchronization, and cluster inventory.
- Latency Sensitivity: Edge operations are designed for low-latency environments. Tool responses should be fast.
- State Sync: Synchronization uses version-based conflict resolution (highest version wins).
- Node Lifecycle: Nodes must be registered before functions can be deployed to them.
Deploys a function to one or more edge nodes. Can target a specific node or broadcast to all nodes in the cluster.
edge_deploy_function
| Parameter Name | Type | Required | Description | Example Value |
|---|---|---|---|---|
function_id |
string |
Yes | Unique function identifier | "fn-process-img" |
function_name |
string |
Yes | Human-readable function name | "process-image" |
node_id |
string |
No | Target node (omit to deploy to all) | "edge-01" |
memory_mb |
integer |
No | Memory allocation in MB (default: 128) | 256 |
timeout_seconds |
integer |
No | Execution timeout (default: 30) | 60 |
environment |
object |
No | Environment variables for the function | {"MODEL": "yolo-v8"} |
| Field Name | Type | Description | Example Value |
|---|---|---|---|
status |
string |
"deployed" or "error" |
"deployed" |
function_id |
string |
Deployed function ID | "fn-process-img" |
deployed_to |
array[string] |
Node IDs where function was deployed | ["edge-01", "edge-02"] |
deploy_count |
integer |
Number of nodes | 2 |
- Node Not Found: Returns error if
node_idis specified but not registered. - No Nodes Available: Returns error if cluster has no registered nodes.
- Duplicate Deploy: Overwrites existing function with same ID on the node (not an error).
- Idempotent: Yes. Redeploying the same function overwrites the previous deployment.
{
"tool_name": "edge_deploy_function",
"arguments": {
"function_id": "fn-process-img",
"function_name": "process-image",
"node_id": "edge-01",
"memory_mb": 256,
"timeout_seconds": 60
}
}{
"tool_name": "edge_deploy_function",
"arguments": {
"function_id": "fn-health-check",
"function_name": "health-check"
}
}- Function Code: The MCP tool deploys function metadata; actual handler code must be pre-registered in the runtime.
- Environment Variables: May contain secrets; ensure transport encryption.
- Authorization: Restrict deployment to authorized operators.
Retrieves health and status information for one or all edge nodes, including last heartbeat, capabilities, and deployed functions.
edge_node_status
| Parameter Name | Type | Required | Description | Example Value |
|---|---|---|---|---|
node_id |
string |
No | Specific node (default: all nodes) | "edge-01" |
include_functions |
boolean |
No | Include deployed function list (default: false) | true |
| Field Name | Type | Description | Example Value |
|---|---|---|---|
nodes |
array[object] |
Node status list | See below |
total_nodes |
integer |
Total registered nodes | 5 |
online_count |
integer |
Nodes with ONLINE status | 4 |
Each node object:
| Field Name | Type | Description | Example Value |
|---|---|---|---|
id |
string |
Node ID | "edge-01" |
name |
string |
Node name | "warehouse-sensor" |
status |
string |
Current status | "online" |
location |
string |
Physical location | "Building A, Rack 3" |
last_heartbeat |
string |
ISO timestamp | "2026-02-05T10:00:00Z" |
capabilities |
array[string] |
Node capabilities | ["gpu", "camera"] |
functions |
array[object] |
Deployed functions (if requested) | [{"id": "fn-1", "name": "..."}] |
- Node Not Found: Returns empty
nodesarray ifnode_iddoes not match.
- Idempotent: Yes. Read-only query.
{
"tool_name": "edge_node_status",
"arguments": {
"node_id": "edge-01",
"include_functions": true
}
}- Read-only. Node locations, capabilities, and function lists may reveal infrastructure topology.
Triggers or queries state synchronization between edge nodes and the central cloud. Can push local changes, pull remote state, or report sync status.
edge_sync
| Parameter Name | Type | Required | Description | Example Value |
|---|---|---|---|---|
action |
string |
Yes | "push", "pull", "status", or "confirm" |
"push" |
node_id |
string |
No | Target node for sync | "edge-01" |
data |
object |
No | Data to sync (required for push) |
{"key": "value"} |
version |
integer |
No | Version number (required for confirm) |
5 |
| Field Name | Type | Description | Example Value |
|---|---|---|---|
status |
string |
"synced", "pending", "confirmed", or "error" |
"synced" |
version |
integer |
Current state version | 5 |
checksum |
string |
MD5 checksum of current state | "a1b2c3d4..." |
pending_changes |
integer |
Number of unsynced changes | 0 |
last_sync |
string |
ISO timestamp of last sync | "2026-02-05T10:00:00Z" |
- No Local State:
pullorstatuswith no existing state returns version 0. - Missing Data:
pushwithoutdatareturns error. - Version Conflict:
pullwith a version older than local is a no-op (returns current state).
- push: Not idempotent (increments version).
- pull: Idempotent (applies only if remote is newer).
- status: Idempotent (read-only).
- confirm: Idempotent (confirming already-confirmed changes is a no-op).
{
"tool_name": "edge_sync",
"arguments": {
"action": "push",
"node_id": "edge-01",
"data": {"sensor_readings": [22.5, 23.1, 21.8]}
}
}{
"tool_name": "edge_sync",
"arguments": {
"action": "status",
"node_id": "edge-01"
}
}- Data Integrity: Checksums verify state consistency. Validate checksums on both ends.
- Transport Security: Sync data may contain sensitive operational state; encrypt in transit.
- Version Ordering: Version-based resolution prevents stale writes but does not merge conflicts.
Lists all registered edge nodes in the cluster, optionally filtered by status. A lightweight alternative to edge_node_status for inventory queries.
edge_list_nodes
| Parameter Name | Type | Required | Description | Example Value |
|---|---|---|---|---|
status_filter |
string |
No | Filter by status: "online", "offline", "degraded", "syncing" |
"online" |
| Field Name | Type | Description | Example Value |
|---|---|---|---|
nodes |
array[object] |
Minimal node list | See below |
total |
integer |
Total matching nodes | 3 |
Each node object:
| Field Name | Type | Description | Example Value |
|---|---|---|---|
id |
string |
Node ID | "edge-01" |
name |
string |
Node name | "warehouse-sensor" |
status |
string |
Current status | "online" |
location |
string |
Physical location | "Building A" |
- Invalid Status: Returns error if
status_filteris not a validEdgeNodeStatusvalue. - Returns empty
nodesarray if no nodes match the filter.
- Idempotent: Yes. Read-only query.
{
"tool_name": "edge_list_nodes",
"arguments": {
"status_filter": "online"
}
}{
"tool_name": "edge_list_nodes",
"arguments": {}
}- Read-only. Minimal data exposure compared to
edge_node_status. - Node IDs and locations may still reveal infrastructure details.
- Parent: Project Overview
- API Specification: API_SPECIFICATION.md
- Home: Root README