Back to list
5dlabs

latitude-sh

by 5dlabs

Cognitive Task Orchestrator - GitOps on Bare Metal or Cloud for AI Agents

2🍴 1📅 Jan 25, 2026

SKILL.md


name: latitude-sh description: Latitude.sh bare metal infrastructure management via API, MCP server, or CLI. Use when provisioning servers, managing VLANs, checking plans/regions, or automating bare metal deployments. agents: [bolt, rex] triggers: [latitude, bare metal, server provisioning, vlan, datacenter, mia2]

Latitude.sh Infrastructure

Manage bare metal servers on Latitude.sh via direct API, MCP server, or CLI.

Access Methods

MethodUse CaseLocation
Rust API ClientProgrammatic access from Metal/GPU cratescrates/metal/src/providers/latitude/
MCP ServerAI agent workflows (natural language)npx latitudesh start
CLI (lsh)Interactive debuggingbrew install latitudesh/tools/lsh

Rust API Client (Primary)

The platform's native Latitude client lives in crates/metal/src/providers/latitude/.

Usage

use metal::providers::latitude::Latitude;

let client = Latitude::new(api_key, project_id)?;

// Create server
let server = client.create_server(CreateServerRequest {
    hostname: "node-1".to_string(),
    plan: "c2-small-x86".to_string(),
    region: "MIA2".to_string(),
    os: "ubuntu_22_04".to_string(),
    ssh_keys: vec!["key-id".to_string()],
}).await?;

// Wait for ready
let server = client.wait_ready(&server.id, 600).await?;

// Reinstall with iPXE (for Talos)
client.reinstall_ipxe(&server.id, ReinstallIpxeRequest {
    hostname: "node-1".to_string(),
    ipxe_url: "https://example.com/talos.ipxe".to_string(),
}).await?;

Available Operations

OperationMethod
Create servercreate_server()
Get serverget_server(id)
List serverslist_servers()
Wait for readywait_ready(id, timeout)
Reinstall iPXEreinstall_ipxe(id, req)
Delete serverdelete_server(id)
List planslist_plans()
List regionslist_regions()
Create VLANcreate_virtual_network(site, desc)
Assign to VLANassign_server_to_vlan(vlan_id, server_id)
Delete VLANdelete_virtual_network(vlan_id)

Lessons Learned (Baked Into Client)

  • Stuck server detection: Servers can get stuck in "off"/"deploying" state. Client detects after 10 minutes.
  • Post-ready buffer: 15-second delay after "on" status before operations (API lag).
  • Reinstall retries: Automatic retry on "SERVER_BEING_PROVISIONED" errors (up to 6 attempts).

MCP Server (AI Agents)

For natural language infrastructure management in Cursor, Claude, or VS Code.

Installation

# Cursor: Settings → Tools and Integrations → New MCP Server
{
  "mcpServers": {
    "latitudesh": {
      "command": "npx",
      "args": ["latitudesh", "start", "--bearer", "YOUR_API_TOKEN"]
    }
  }
}

# Claude Code CLI
claude mcp add latitudesh npx latitudesh start -- --bearer YOUR_API_TOKEN

Capabilities

  • List and inspect servers, projects, SSH keys
  • Create or delete bare-metal instances
  • Manage networking and automation

Example Prompts

"List all my Latitude servers"
"Create a c2-small-x86 server in MIA2 named test-node"
"What GPU plans are available in Dallas?"
"Delete server srv_xxx"

CLI (lsh)

For interactive exploration and debugging.

Installation

brew install latitudesh/tools/lsh
# or
curl -fsSL https://cli.latitude.sh/install.sh | sh

Usage

lsh login API_KEY
lsh servers list
lsh servers create --hostname test --plan c2-small-x86 --site MIA2 --os ubuntu_22_04
lsh servers get srv_xxx
lsh servers delete srv_xxx
lsh plans list --json

API Reference

Base URL: https://api.latitude.sh

Authentication

Authorization: Bearer <API_KEY>

Key Endpoints

EndpointMethodDescription
/serversGETList servers
/serversPOSTCreate server
/servers/{id}GETGet server
/servers/{id}DELETEDelete server
/servers/{id}/reinstallPOSTReinstall server
/plansGETList plans
/regionsGETList regions
/virtual_networksGET/POSTVLANs

JSON:API Format

All requests use JSON:API specification:

{
  "data": {
    "type": "servers",
    "attributes": {
      "hostname": "node-1",
      "plan": "c2-small-x86",
      "site": "MIA2"
    }
  }
}

Common Patterns

Provision Talos Cluster Node

// 1. Create server with any OS
let server = client.create_server(req).await?;

// 2. Wait for ready
let server = client.wait_ready(&server.id, 600).await?;

// 3. Reinstall with Talos iPXE
client.reinstall_ipxe(&server.id, ReinstallIpxeRequest {
    hostname: server.hostname.clone(),
    ipxe_url: talos_ipxe_url,
}).await?;

// 4. Wait for reinstall to complete
let server = client.wait_ready(&server.id, 600).await?;

Check Plan Availability

let plans = client.list_plans().await?;
for plan in plans {
    if let Some(regions) = &plan.attributes.regions {
        for region in regions {
            if region.stock_level.as_deref() == Some("high") {
                println!("{}: available in {:?}", 
                    plan.attributes.slug.as_deref().unwrap_or("unknown"),
                    region.locations.as_ref().and_then(|l| l.in_stock.as_ref())
                );
            }
        }
    }
}

Environment Variables

VariableDescription
LATITUDE_API_KEYAPI key from dashboard
LATITUDE_PROJECT_IDProject ID for operations

Resources

Score

Total Score

65/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon