Model Context Protocol (MCP) server for the Latitude.sh API
The Latitude.sh MCP Server exposes your Latitude.sh REST API as an AI-ready interface, allowing developer tools and assistants to list, create, and manage your infrastructure resources programmatically.
Use natural language to:
- 🔎 List and inspect servers, projects, and SSH keys
- ⚙️ Create or delete bare-metal instances
- 📡 Manage networking and automation directly from chat-based IDEs
🪶 Prerequisite: You’ll need a Latitude.sh API Key.
DXT (Desktop Extension)
Install the MCP server as a Desktop Extension using the pre-built mcp-server.dxt file:
Simply drag and drop the mcp-server.dxt file onto Claude Desktop to install the extension.
The DXT package includes the MCP server and all necessary configuration. Once installed, the server will be available without additional setup.
[!NOTE] DXT (Desktop Extensions) provide a streamlined way to package and distribute MCP servers. Learn more about Desktop Extensions.
Cursor
- Open Cursor Settings
- Select Tools and Integrations
- Select New MCP Server
- Paste the following JSON into the MCP Server Configuration:
{
"mcpServers": {
"Latitudesh": {
"command": "npx",
"args": [
"latitudesh",
"start",
"--bearer",
"<YOUR_API_KEY>"
]
}
}
}Note: Replace YOUR_LATITUDE_API_TOKEN with your actual Latitude.sh bearer token.
Claude Code CLI
claude mcp add latitudesh npx latitudesh start -- --bearer YOUR_LATITUDE_API_TOKENNote: Replace YOUR_LATITUDE_API_TOKEN with your actual Latitude.sh bearer token.
Codex
Add the MCP server with the Codex CLI:
codex mcp add Latitudesh -- npx latitudesh start --bearer YOUR_LATITUDE_API_TOKENOr add it directly to ~/.codex/config.toml:
[mcp_servers.Latitudesh]
command = "npx"
args = ["latitudesh", "start", "--bearer", "YOUR_LATITUDE_API_TOKEN"]Verify it is configured:
codex mcp listNote: Replace YOUR_LATITUDE_API_TOKEN with your actual Latitude.sh bearer token.
Windsurf
Refer to Official Windsurf documentation for latest information
- Open Windsurf Settings
- Select Cascade on left side menu
- Click on
Manage MCPs. (To Manage MCPs you should be signed in with a Windsurf Account) - Click on
View raw configto open up the mcp configuration file. - If the configuration file is empty paste the full json
{
"mcpServers": {
"Latitudesh": {
"command": "npx",
"args": [
"latitudesh",
"start",
"--bearer",
"<YOUR_API_KEY>"
]
}
}
}VS Code
Refer to Official VS Code documentation for latest information
- Open Command Palette
- Search and open
MCP: Open User Configuration. This should open mcp.json file - If the configuration file is empty paste the full json
{
"mcpServers": {
"Latitudesh": {
"command": "npx",
"args": [
"latitudesh",
"start",
"--bearer",
"<YOUR_API_KEY>"
]
}
}
}Claude Desktop
Claude Desktop doesn't yet support SSE/remote MCP servers.You need to do the following
- Open claude Desktop
- Open left hand side pane, then click on your Username
- Go to
Settings - Go to
Developertab (on the left hand side) - Click on
Edit ConfigPaste the following config in the configuration
{
"mcpServers": {
"Latitudesh": {
"command": "npx",
"args": [
"latitudesh",
"start",
"--bearer",
"<YOUR_API_KEY>"
]
}
}
}Note: Replace YOUR_LATITUDE_API_TOKEN with your actual Latitude.sh bearer token.
VS Code
Refer to Official VS Code documentation for latest information
- Open Command Palette (
Cmd+Shift+P/Ctrl+Shift+P) - Search and open
MCP: Open User Configurationto open the mcp.json file - Add the configuration:
{
"servers": {
"Latitudesh": {
"type": "stdio",
"command": "npx",
"args": [
"latitudesh",
"start",
"--bearer",
"YOUR_LATITUDE_API_TOKEN"
]
}
}
}- Save the file and restart VS Code
- Open Copilot Chat (
Cmd+Alt+I/Ctrl+Alt+I) and enable Agent mode - The Latitudesh tools will be available automatically
Note: Replace YOUR_LATITUDE_API_TOKEN with your actual Latitude.sh bearer token.
Tips for using with VS Code:
- Be explicit in your prompts: "List my servers from Latitude.sh" instead of just "list servers"
- Mention "Latitude.sh" or "MCP" to avoid Copilot searching local files
Claude Desktop
- Open Claude Desktop
- Click on your Username in the left sidebar
- Go to
Settings→Developertab - Click
Edit Config - Add the configuration:
{
"mcpServers": {
"Latitudesh": {
"command": "npx",
"args": [
"latitudesh",
"start",
"--bearer",
"YOUR_LATITUDE_API_TOKEN"
]
}
}
}- Save and restart Claude Desktop
Note: Replace YOUR_LATITUDE_API_TOKEN with your actual Latitude.sh bearer token.
Standalone CLI Usage
To start the MCP server directly:
npx latitudesh start --bearer YOUR_LATITUDE_API_TOKENOptional flags:
--server-index <0|1>- Select server (0=https://api.latitude.sh, 1=http://api.latitude.sh) [default: 0]--latitude-api-key <key>- API key for URL templating--log-level <level>- Log level (debug|warning|info|error) [default: info]
For a full list of server arguments:
npx latitudesh --helpRun locally without a published npm package:
- Clone this repository
- Run
npm install - Run
npm run build - Run
node ./bin/mcp-server.js start --bearer <YOUR_API_KEY>
To use this local version with MCP Clients, you'll need to add the following config:
{
"mcpServers": {
"Latitudesh": {
"command": "node",
"args": [
"/absolute/path/to/latitudesh-mcp/bin/mcp-server.js",
"start",
"--bearer",
"<YOUR_API_KEY>"
]
}
}
}Use the official MCP Inspector:
npx @modelcontextprotocol/inspector node ./bin/mcp-server.js start --bearer <YOUR_API_KEY>This opens an interactive UI at http://localhost:6274.
While we welcome contributions, most of this code is auto-generated. Manual edits to generated files will be overwritten on regeneration.
If you'd like to suggest improvements:
- Open an Issue or PR with your proof of concept
- We'll review and include it in future releases when possible
Latitude.sh API: The Latitude.sh API is a RESTful API to manage your Latitude.sh account. It allows you to perform the same actions as the Latitude.sh dashboard.
Deployed at https://mcp.latitude.sh
Claude Desktop
Install the MCP server as a Desktop Extension using the pre-built mcp-server.mcpb file:
Simply drag and drop the mcp-server.mcpb file onto Claude Desktop to install the extension.
The MCP bundle package includes the MCP server and all necessary configuration. Once installed, the server will be available without additional setup.
[!NOTE] MCP bundles provide a streamlined way to package and distribute MCP servers. Learn more about Desktop Extensions.
Cursor
Or manually:
- Open Cursor Settings
- Select Tools and Integrations
- Select New MCP Server
- If the configuration file is empty paste the following JSON into the MCP Server Configuration:
{
"command": "npx",
"args": [
"latitudesh",
"start",
"--server-index",
"0",
"--latitude-api-key",
"<insert your api key here>",
"--bearer",
""
]
}Claude Code CLI
claude mcp add Latitudesh -- npx -y latitudesh start --server-index 0 --latitude-api-key <insert your api key here> --bearer Gemini
gemini mcp add Latitudesh -- npx -y latitudesh start --server-index 0 --latitude-api-key <insert your api key here> --bearer Windsurf
Refer to Official Windsurf documentation for latest information
- Open Windsurf Settings
- Select Cascade on left side menu
- Click on
Manage MCPs. (To Manage MCPs you should be signed in with a Windsurf Account) - Click on
View raw configto open up the mcp configuration file. - If the configuration file is empty paste the full json
{
"command": "npx",
"args": [
"latitudesh",
"start",
"--server-index",
"0",
"--latitude-api-key",
"<insert your api key here>",
"--bearer",
""
]
}VS Code
Or manually:
Refer to Official VS Code documentation for latest information
- Open Command Palette
- Search and open
MCP: Open User Configuration. This should open mcp.json file - If the configuration file is empty paste the full json
{
"command": "npx",
"args": [
"latitudesh",
"start",
"--server-index",
"0",
"--latitude-api-key",
"<insert your api key here>",
"--bearer",
""
]
}Stdio installation via npm
To start the MCP server, run:npx latitudesh start --server-index 0 --latitude-api-key <insert your api key here> --bearer For a full list of server arguments, run:
npx latitudesh --help
MCP servers with many tools can bloat LLM context windows, leading to increased token usage and tool confusion. Dynamic mode solves this by exposing only a small set of meta-tools that let agents progressively discover and invoke tools on demand.
To enable dynamic mode, pass the --mode dynamic flag when starting your server:
In dynamic mode, the server registers only the following meta-tools instead of every individual tool:
list_tools: Lists all available tools with their names and descriptions.describe_tool_input: Returns the input schema for one or more tools by name.execute_tool: Executes a tool by name with its arguments.
This approach significantly reduces the number of tokens sent to the LLM on each request, which is especially useful for servers with a large number of tools.
{ "mcpServers": { "Latitudesh": { "command": "npx", "args": ["latitudesh", "start", "--mode", "dynamic"], // ... other server arguments } } }