Skyline MCP
Let the AI in Claude Code, Cursor or Codex hand real work to your Skyline bots: coding, web research, reading or collecting data, anything that takes more than a couple of turns. The bot works on it (on your computer or in the Skyline cloud) while your editor keeps going, and you pick up the result whenever you like.
It uses your Skyline API key and can do exactly what your Skyline account can do — nothing more.
1. Get a key
In the Skyline web app open Settings → Keys, create a key and copy it (it starts with lgn_ and is shown only once).
2. Add Skyline to your tool
Replace <k> with your key and <url> with your Skyline API address (default https://config.staging.apisky.net).
Claude Code
claude mcp add skyline --env SKYLINE_API_KEY=<k> --env SKYLINE_API_URL=<url> -- npx -y @apisky/skyline-mcp
Cursor — .cursor/mcp.json
{"mcpServers":{"skyline":{"command":"npx","args":["-y","@apisky/skyline-mcp"],"env":{"SKYLINE_API_KEY":"<k>","SKYLINE_API_URL":"<url>"}}}}
Codex — ~/.codex/config.toml
[mcp_servers.skyline]
command = "npx"
args = ["-y","@apisky/skyline-mcp"]
env = { SKYLINE_API_KEY = "<k>", SKYLINE_API_URL = "<url>" }
3. One-time bot setup
- To send code, install the Skyline GitHub App on the repo (Skyline web app → Settings → GitHub).
- Job copies always run in ACT mode, so they can work without waiting for approval. Risky commands can still ask for approval in Skyline.
How it works
Installing this server tells your AI that you want Skyline to do the real work, so it hands over anything bigger than a couple of turns.
There are two job tools:
skyline_assignstarts a job: the task, pluscwd(the project folder) when it touches code or local files, andfilesfor local files the bot needs. It returns ajobIdwithin seconds and your editor keeps going. Jobs can run for hours or days.- To send more instructions, call
skyline_assignwith thejobIdand a newtask. - To stop a job, call
skyline_assignwith thejobIdandcancel: true. - To give a job its own new cloud machine, pass
projects: uploaded folders ({ "uploadId": "..." }) or GitHub repos ({ "repo": "owner/name", "ref": "main" }), up to 10.[]gives an empty scratch folder. The machine is deleted a few hours after the job ends. This needs Skyline with machine-per-bot support; older servers keep using the shared machine. - To run a job on a workspace you already have, pass
workspace(an id or exact name).projects,workspaceandcwdcannot be combined. - To give a new job part of the main bot's memory, pass
memory:{ "sections": ["Task", "Insights"], "artifacts": ["art_..."] }(up to 20 each). Skyline copies those sections into the job's bot before it starts and tells it which artifacts to read; the answer'smemorySeededsays what was copied. Works withprojects,workspace,cwdor none of them, on local and cloud jobs. New jobs only; this needs Skyline with memory attachment support (older servers say so).
- To send more instructions, call
skyline_resultsanswers instantly. With ajobIdyou get the job's state, and once it is finished you get the bot's full report: the result from its done card plus everything it attached, never shortened. For cloud code jobs you also get the full diff of its branch. With nojobIdit lists your recent jobs (jobs started from this machine in the last 30 days) and the bots you can assign, each with its model and price (USD per 1M tokens, input / output). Only the bot name, model and price are shared; bot prompts and settings stay private. Ifskyline_assigngets a bot name that does not exist, or has to ask which bot to use, its error message includes the same list.skyline_workspaceslists your workspaces (cloud machines, each bot's own machine, job machines and VS Code windows) with their folders.skyline_movemoves a main bot to another workspace, the same as the workspace chip in the Skyline web app. Passnullor"own"to send it back to its own cloud machine. A busy bot cannot move, and job machines cannot be picked.- While a job is still running or waiting, the answer includes
memory: the bot's working notes, so you can see how far it has got. - On a finished job, pass
memory: trueto get its full memory as well as the report.
- While a job is still running or waiting, the answer includes
skyline_skyasks sky, the Skyline assistant for your account, in plain words: what needs you, approvals (one, several or all), workspaces (list, create, delete), tasks, bot status, a bot's story, past work and your preferences. sky acts right away; risky approvals and workspace deletes wait a short undo window (undoMsin the reply) and come back with anundoTokenyou can pass toskyline_skyto cancel them. For bigger asks sky may start helpers and answer right away withpending: trueand arequestId; callskyline_skywith thatrequestId(instead oftext) to read the result when it is ready, or addstop: trueto stop it. Skyline keeps the conversation for you, so every ask continues it;instanceIdis only an optional hint. This needs Skyline with sky set up.
Where a job runs
- On your computer: when Skyline is open in VS Code on that folder, the job runs in that window and works on your files directly.
- In the Skyline cloud: everywhere else.
- Code: a snapshot of your local code, including uncommitted changes, is pushed to a branch
skyline/mcp-<job>. Your working tree is never changed; merge the branch when you're happy. - Files: the listed files are read and sent with the task. Text is sent as is; images and documents (PDF, Word, PowerPoint, Excel) are converted to text first. Folders are not supported yet.
- Code: a snapshot of your local code, including uncommitted changes, is pushed to a branch
- Secrets such as
.env*,*.pem,*.key, SSH keys and cloud credentials are never sent. - VS Code windows opened on a multi-root
.code-workspacefile are matched through their folders. - Each job runs in its own copy of the bot, so your main bot stays free for you to chat with. Copies are listed under the bot's Instances in Skyline, grouped by task. Marking the task done there closes its copy; reopening the task brings it back.
- Skyline never moves your main bot to another window or to the cloud for a job.
- For work that will take days, the cloud is the safer place. A job on your computer stops if the laptop sleeps or the VS Code window is closed.
Follow-up instructions for a job go to that job's copy, so they share its conversation and run one after another. New jobs get their own copy and can run at the same time.
Environment
| Variable | Required | Meaning |
|---|---|---|
SKYLINE_API_KEY | yes | Your lgn_… key |
SKYLINE_API_URL | no | API address (default https://config.staging.apisky.net) |
SKYLINE_MCP_HOME | no | Where the local job list lives (default ~/.skyline-mcp) |
If a key is turned off in Skyline, every tool stops working within a minute.
Development
npm ci && npm run typecheck && npm run build && npm test