Integrations
MCP server
Connect Claude, ChatGPT, Codex, Cursor, VS Code and other clients to Skynet.
The Skynet MCP server lets an AI agent use Skynet for you. Claude, ChatGPT, Codex, Cursor and other MCP clients can check a run setup, start runs, watch them and stop them. You approve the connection one time in your browser. The agent sets a spending limit for each run.
Server URL
Every client uses the same URL:
https://mcp.skynetml.com/mcpThe server uses Streamable HTTP. Sign-in uses OAuth 2.1. You do not copy a token or an API key into the client.
Connect your client
Select your client. Follow its steps, then go to Approve the connection.
Last checked against each client's docs: 2026-11-01.
- Run this command in your terminal.
- In Claude Code, run /mcp, select skynet, and sign in to Skynet in the browser.
Add the server
claude mcp add --transport http skynet https://mcp.skynetml.com/mcpAdd it for every project
claude mcp add --transport http --scope user skynet https://mcp.skynetml.com/mcp- Open Customize, then Connectors.
- Select +, then Add custom connector.
- Enter the name Skynet and the URL https://mcp.skynetml.com/mcp, then select Add.
- Select Connect and sign in to Skynet.
- Open ChatGPT on the web, then open Plugins.
- Select +, then Add custom MCP server.
- Enter the URL https://mcp.skynetml.com/mcp, choose OAuth, and sign in to Skynet.
- In a chat, type @ and select Skynet.
- Add the server, then sign in.
- Or add the server to ~/.codex/config.toml yourself.
Add and sign in
codex mcp add skynet --url https://mcp.skynetml.com/mcp
codex mcp login skynet~/.codex/config.toml
[mcp_servers.skynet]
url = "https://mcp.skynetml.com/mcp"- Use the install link, or add the server to ~/.cursor/mcp.json.
- Cursor asks you to sign in to Skynet.
~/.cursor/mcp.json
{
"mcpServers": {
"skynet": {
"url": "https://mcp.skynetml.com/mcp"
}
}
}- Use the install link, the command line, or .vscode/mcp.json in your workspace.
- VS Code asks you to sign in to Skynet when the server starts.
Command line
code --add-mcp '{"name":"skynet","type":"http","url":"https://mcp.skynetml.com/mcp"}'.vscode/mcp.json
{
"servers": {
"skynet": {
"type": "http",
"url": "https://mcp.skynetml.com/mcp"
}
}
}- Add the server.
- In Gemini CLI, run /mcp auth skynet and sign in.
Add the server
gemini mcp add --transport http skynet https://mcp.skynetml.com/mcpsettings.json
{
"mcpServers": {
"skynet": {
"httpUrl": "https://mcp.skynetml.com/mcp"
}
}
}- Add the server to mcp_config.json.
mcp_config.json
{
"mcpServers": {
"skynet": {
"serverUrl": "https://mcp.skynetml.com/mcp"
}
}
}- Any client that supports remote MCP servers over Streamable HTTP with OAuth can connect. Give it the server URL. Do not give it an API key.
Server URL
https://mcp.skynetml.com/mcpApprove the connection
The first time the agent calls Skynet, your browser opens a Skynet page.
- Sign in to Skynet, if you are not signed in.
- Read the page. It shows the agent name, the site it returns to, and your account.
- Read what the agent can do:
- See your optimization runs and their results.
- Start and stop optimization runs, paid from your balance.
- Click Allow to connect. Click Deny to stop.
After you click Allow, the browser returns to the agent. The agent can now call the tools below.
Tools
| Tool | What it does | Access |
|---|---|---|
check_run | Checks a run setup without running it or charging you. Suggests a spending limit. | Read |
start_run | Starts a run with a spending limit. | Write |
get_run | Returns the status, the spending and, when the run ends, the result. | Read |
list_runs | Lists your runs, newest first. Can filter by status. | Read |
stop_run | Stops a run. A second call returns an error that says the run already ended. | Write |
Read access uses the runs:read scope. Write access uses the runs:write scope.
No tool adds funds, changes your balance or changes billing settings.
How an agent runs an optimization
- The agent calls
check_runwith the run setup. Skynet runs the static checks and returns:- The result of each check.
- The lowest spending limit the run can start with.
- A suggested spending limit. It is at least $5.00.
- The models that have no known price.
- The amount you can spend now.
- The agent calls
start_runwith a spending limit (max_cost_cents, from 1 to 1,000,000 US cents). It can also send anidempotency_key, so that a retry does not start a second run. - If the setup check is still running,
start_runreturnsin_progressandretry_after_seconds. The agent callsstart_runagain with the same input after that time. - The agent calls
get_rununtil the run ends. The final statuses aresuccess,failed,cancelledandstopped.
The run stops when it reaches its spending limit. Read Billing for how Skynet charges a run.
Security
- Each client gets its own grant. The client never sees your password.
- Sign-in uses PKCE (S256). The client registers itself with dynamic client registration or a client ID metadata document.
- Access tokens expire after 1 hour. The client renews them with a refresh token.
- A refresh token expires after 30 days without use. A grant lasts at most 90 days. Then you approve the connection again.
- Each refresh token works only one time. If someone uses an old refresh token again, Skynet ends the grant.
- The agent can only see and change your own runs.
Read Security for how Skynet protects your account and data.
Disconnect
To disconnect an agent, remove the Skynet server from the client. Most clients then revoke their tokens. If a client does not revoke them, its refresh token expires after 30 days without use.
Troubleshooting
| Problem | What to do |
|---|---|
| The connection fails right away | Check the server URL. It must be exactly https://mcp.skynetml.com/mcp. |
| "This agent can't connect" | Start the connection again from the client. |
| "Too many attempts" | Wait some minutes, then try again. |
| The client does not open a browser | Update the client. It must support remote MCP servers with OAuth. |
start_run fails with a balance error | Add funds in Skynet, or start the run with a lower spending limit. |
| The tools stop working after some weeks | The grant expired. Remove the server and connect again. |
For direct HTTP access without an agent, read API.