Hand tasks to a cloud coding agent over MCP
Sinatra is a remote MCP server. Add it to Claude Code, Cursor, claude.ai or ChatGPT, ask for a task in plain words, and a hosted agent does the work in its own sandbox and comes back with an answer or a pull request. You keep working in the session you were already in.
What you get in your client
The server is https://api.sinatra.dev/v1/mcp, over Streamable HTTP. It gives your client seven tools: start a task, send a follow-up, read the conversation, look up one task or list them, stop a running turn, and check who you're signed in as. So you can say "ask Sinatra to fix the flaky retry test in acme/web" mid-session, carry on, and ask later what it came back with.
A task started this way is a full Sinatra task. It gets a sandbox, can open a pull request, shows up on the dashboard, and counts against your plan like a Linear ticket or a labeled GitHub issue. Leave out the repository and the agent picks one from the repositories you've connected.
The clients that sign in
Claude Code, Cursor, claude.ai and ChatGPT sign in with your Sinatra account over OAuth: the client opens a Sinatra page in your browser, you approve it, and there is no token to create or paste. Claude Desktop uses the same connectors as claude.ai. On Team and Enterprise, an owner adds the connector and members then connect it from Customize, then Connectors.
ChatGPT adds Sinatra as a custom MCP server from its Plugins page. Starting a task needs full MCP with write actions, which OpenAI's help center lists for ChatGPT Business, Enterprise and Edu workspaces, on the web. On Business, an admin or owner adds it. Any other client that takes a server URL and headers can connect with a personal access token instead.
A signed-in app acts as you in every workspace you belong to, with your role in each. Connected apps are listed on the dashboard's CLI & API page, where Disconnect cuts one off at once. Removing the connector inside claude.ai or ChatGPT doesn't revoke it, so use Disconnect as well.
Limits worth knowing first
The conversation holds the agent's answers and questions, not its progress, and there is no streaming: your client polls for new messages. A message you send while a turn is running doesn't reach the agent mid-run. It waits and runs as the next turn. Tasks from Linear, GitHub and Slack behave differently, because there a mid-run message reaches the running agent.
The agent works on a fresh checkout of what you've pushed, never on your machine, so it doesn't see uncommitted changes. Each person can have up to 5 tasks from the CLI, MCP or API starting, running or queued at a time in a workspace. There is no editor plugin: the MCP server, the CLI and the HTTP API are the whole ticketless surface.
Where other tools already do this
You may not need a second agent for this. Claude Code starts its own cloud sessions with claude --cloud, Cursor runs Cloud Agents from the editor, and Copilot's cloud agent and Devin also take tasks over an API or MCP. If one of those already covers you, keep it. Sinatra is worth adding when you want the same hosted task to start from a Linear ticket, a GitHub label or a Slack thread too, on your own subscription or key. The Claude Code and Cursor comparisons go into the details.
Setting it up
Sign in at app.sinatra.dev, install the GitHub App on the repositories Sinatra can work in, and add a Claude or ChatGPT subscription or an API key.
In Claude Code, run claude mcp add --transport http --scope user sinatra https://api.sinatra.dev/v1/mcp. In Cursor, add the URL to mcp.json. In claude.ai, add a custom connector under Customize, then Connectors. In ChatGPT, open the Plugins page, click +, add a custom MCP server, choose OAuth, and create it as a plugin.
Your client opens a Sinatra page in the browser. Approve it once.
Something small and real, naming the repository. The exact steps for each client are in the MCP server docs.
What it costs
The MCP server is on every plan. Free is 1 task at a time, plus 1 queued, with no daily limit and no card. Pro is $20 a month for the whole workspace: 3 tasks at a time, plus 10 queued, any number of people. Bring your own Claude or ChatGPT subscription, or an API key. Sinatra never bills for model usage. That's between you and your provider.
Common questions
Does the task run on my machine?
No. The MCP server hands the task to Sinatra's hosted agent, which works in its own sandbox on a fresh checkout of your GitHub repository. It sees what you've pushed, not uncommitted changes in your editor. Your session keeps going while it works.
Which ChatGPT plans can start a task?
Starting a task needs a custom MCP server with write actions, which OpenAI's help center lists for ChatGPT Business, Enterprise and Edu workspaces, on the web. On Business, an admin or owner adds it from the Plugins page. Our docs have the current steps.
Do I need a token?
Not in Claude Code, Cursor, claude.ai, Claude Desktop or ChatGPT: you sign in with your Sinatra account in the browser and approve the app. Other MCP clients that take a server URL and headers can use a personal access token from the dashboard's CLI & API page instead.
Can I follow a Linear or GitHub task from my MCP client?
You can look it up, list it and stop it. Replies on a task that started in Linear, GitHub or Slack still go where it started, because that's where its conversation lives. The follow_up tool works on tasks started from the CLI, MCP or API.
Is there a limit?
Separately, each person can have up to 5 CLI, MCP and API tasks running or queued at a time in a workspace; your plan's limit still applies (on Free, 1 task at a time, plus 1 queued). All MCP calls share one budget of 120 requests a minute per token or connected app.
Scripting it instead? The CLI and HTTP API start the same tasks. Tasks also start from Slack, a Linear assignment or the Sinatra label on a GitHub issue.