How to delegate coding tasks from Claude or ChatGPT
Delegate coding tasks from claude.ai or ChatGPT: add a hosted agent as a remote MCP server, start a task in the chat, and get the pull request back there.
You probably have a chat open right now. When it suggests a fix for a bug, you still copy the fix into an editor, run the tests and open the pull request yourself.
You can delegate coding tasks from Claude or ChatGPT to a hosted coding agent instead. The agent sits behind the chat as a remote MCP server, and when you describe the task, the chat calls its start_task tool. The agent checks out your repository in its own sandbox, and the answer and the pull request come back into the conversation. You don't need an editor or a ticket, and because claude.ai and ChatGPT sign in to MCP servers with OAuth, you don't paste a token either.
We build Sinatra, so the setup below uses it. The MCP server page has the short version. On ChatGPT, starting a task needs a Business, Enterprise or Edu workspace, and Plus and Pro users have Codex cloud built in. Anthropic and OpenAI both have a first-party way to do something similar, and for a lot of readers one of those is the better choice, so there's a section on them further down.
Product details checked October 2026 against Anthropic's, OpenAI's, Cognition's and GitHub's own docs, linked below. These pages change often; check them for current specifics.
Remote coding agents vs. local delegate MCP servers
Search for "delegate coding tasks MCP" and much of what comes back is a local MCP server, a small process on your laptop that lets one agent pass a subtask to another agent on the same machine. That's useful inside an editor session, and it's a different thing from what this post covers.
A remote coding agent is a hosted service with an MCP endpoint. The chat app talks to it over HTTPS, the work happens in a sandbox on the vendor's machines, and nothing runs on your computer, so you can close the laptop after you send the task. You get a branch and a pull request on GitHub, and your local working tree is left alone. If you've read what a background coding agent is, this is the same idea with a chat window as the front door.
What you need first
You need a Sinatra workspace with at least one GitHub repository connected. Sign in at app.sinatra.dev with GitHub or an email link, install the GitHub App on the account that owns the code, and enable the repositories it may work in. The agent can only open pull requests on repositories you've connected.
You also need model access. Sinatra has no model of its own to sell you, so every task runs on a Claude or ChatGPT subscription a member connects in Settings, or on a workspace Anthropic or OpenRouter API key. Sinatra never bills for model usage. If you're reading this in claude.ai on a Claude subscription, you can connect that same subscription in Sinatra and the agent will run on it.
Your chat plan also has to allow a custom MCP server. Every Claude plan does, with limits. ChatGPT is narrower, and the ChatGPT section below has the details.
Add Sinatra to claude.ai or Claude Desktop as a connector
Anthropic's custom connector guide says remote MCP connectors are available "for users on Free, Pro, Max, Team, and Enterprise plans." Free users are limited to one custom connector. On Team and Enterprise, only Owners (and, on Enterprise, people with a role that allows it) can add one, so a member asks an Owner, who adds it under Organization settings, then Connectors.
On an individual plan, go to Customize, then Connectors, click + Add and choose Add custom connector. Name it Sinatra, enter https://api.sinatra.dev/v1/mcp as the URL, click Continue, keep the sign-in settings Claude detects, and click Add. When you connect it, a Sinatra page opens in your browser, names the app asking for access, and asks you to approve it.
Per Anthropic's connectors overview, a connector you add in claude.ai is available "in your conversations on the web, desktop, and mobile," so Sinatra shows up in Claude Desktop without a second setup.
Add Sinatra to ChatGPT as a custom MCP server
Check your ChatGPT plan before you start. OpenAI's help article on custom MCP servers says "Custom MCP server connections and full MCP support are available for ChatGPT Business and Enterprise/Edu customers on ChatGPT web," and that "Pro users can connect custom MCP servers with read/fetch permissions." Starting a task is a write, so this path is for ChatGPT Business, Enterprise and Edu workspaces, on the web. In a Business workspace, OpenAI says only admins and owners can create and publish plugins for custom MCP servers. On Enterprise and Edu, an admin can let selected members create these connections, but only admins and owners publish them for the workspace.
ChatGPT adds MCP servers as plugins. Open the Plugins page (chatgpt.com/plugins), click + and choose Add custom MCP server. Name it Sinatra, enter https://api.sinatra.dev/v1/mcp as the server URL, and choose OAuth for authentication. ChatGPT finds Sinatra's sign-in settings by itself, so keep the registration method it picks. Tick I understand and want to continue, click Create as a plugin, then Continue to Sinatra, and approve ChatGPT on the Sinatra page that opens. To use it, mention @Sinatra in a chat or click Try in chat. For write actions such as starting a task, OpenAI says ChatGPT "may ask for confirmation depending on app permissions, the action's context, and the action's potential impact."
Delegate your first coding task
Write the request the way you'd write it to a teammate, and name the repository if you have more than one connected:
Ask Sinatra to fix the flaky retry test in acme/web. It fails about one run in ten on CI with a timeout in
retry.test.ts. Open a PR when it passes.
The chat app turns that into tool calls. It usually calls whoami first, which returns who you are and the workspaces you belong to, then start_task with your workspace, the prompt and the repository. If you leave the repository out, the agent picks one of the workspace's connected repositories based on what you asked, so name it whenever two repos could own the code.
From there it's a normal Sinatra task. It gets its own sandbox, the agent reads the code, makes the change, and opens a draft pull request. Sinatra then runs the repository's test command if one is configured, with up to two attempts to fix failures, and reviews its own diff before trying to mark the PR ready for review. The task also shows up in the dashboard next to tasks from Linear, GitHub and Slack.
If the request is too vague to act on, the agent asks a question instead of guessing. The question arrives as a message in the task's conversation, and the chat can read it to you.
Following up on a task, and stopping it
The MCP server has seven tools. Besides whoami and start_task there are list_tasks and get_task for status and the PR link, get_messages to read the task's conversation, follow_up to reply, and stop_task to stop the current turn. You don't have to name them. "Check on the Sinatra task" or "tell Sinatra to also update the docs" is enough for the chat to pick the right one.
The conversation holds the agent's answer for each turn, or its question when it needs you, plus Sinatra's own notices such as an error or a refusal. Progress updates aren't in it. You'll see that a PR opened, with the link and a summary of what changed, but not a running commentary. Any member of the workspace can read the same conversation on the task's page in the dashboard and reply there.
Limits of delegating from a chat
You can't steer a running turn from the chat. A follow_up sent while the agent is working doesn't change the current turn. It waits and runs as the next turn. On Linear, GitHub and Slack a message sent mid-run reaches the running agent, so if you expect to change direction halfway through, start the task from one of those instead.
You also can't watch it work. The chat can check back for the answer, but it has nothing to show you in between.
These tasks count against the workspace's plan like any other task. 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.
follow_up only replies to tasks that started from the CLI, MCP or API. A task that began on a Linear issue, a GitHub issue or a Slack thread keeps its conversation there. get_task and stop_task work on any task in the workspace.
When Claude Code on the web, Codex cloud or Devin is the better call
If you're on a Claude plan and your code is on GitHub, look at Anthropic's own option before you add anything. Claude Code cloud sessions are "available on Pro, Max, and Team plans, and for Enterprise users with premium seats or Chat + Claude Code seats." You start one at claude.ai/code, from the Code tab in the Claude mobile app, or by picking Cloud in the desktop app, and when it finishes you create the PR from claude.ai/code. Anthropic says it "counts toward your plan's usage limits" with "no separate charge for the cloud VM." There's no third party in the loop, and you watch the session as it runs. Our Claude Code comparison goes through the trade in detail.
ChatGPT users have Codex cloud built in. Per OpenAI's cloud docs, you choose Work in, then Cloud, on the web or desktop app, pick an environment, and later "commit or open a pull request when ready." OpenAI's pricing page lists Codex on the web from Plus up, and says cloud chats share the plan's usage allowance with local messages. If you're on Plus or Pro, Codex cloud is the built-in way to delegate from ChatGPT. The Codex cloud pricing post and the Codex comparison cover what it costs.
Devin has had an MCP server for longer, and its docs say it lets tools "create sessions, manage playbooks and knowledge, set up schedules, and more." It authenticates with a Devin API key rather than an OAuth sign-in, and the setup guides cover Devin Desktop, Cursor and Claude Code. If your team already runs Devin, that's the server to connect. See the Devin comparison.
And if what you want is Copilot doing the work, GitHub's remote MCP server has a create_pull_request_with_copilot tool. GitHub's docs say Copilot then starts a session and opens a draft pull request, and tools that use the cloud agent need a paid Copilot license.
A task started from the chat lands on the same dashboard as your Linear, GitHub and Slack tasks, where any member of the workspace can read it and reply. The model bill goes to whichever Claude or ChatGPT subscription or API key you connected. For a small team the cheapest honest path is the subscriptions you already pay for, plus $20 a month for the whole workspace.
Revoking access
A connected app acts as you in every workspace you belong to, with your role in each. That's the same reach a personal access token has. It stays signed in for up to 90 days, or until it goes 30 days without connecting, and then asks you to sign in again.
To cut one off, open the CLI & API page in the Sinatra dashboard and click Disconnect next to it under Connected apps. Its next call is refused. Removing the connector in claude.ai, or deleting the plugin in ChatGPT, doesn't revoke Sinatra's access on its own, so do both if you're cleaning up.
Common questions
Do I need Claude Code or Cursor for this?
No. claude.ai, Claude Desktop and ChatGPT connect to the same MCP server with an OAuth sign-in. Claude Code and Cursor work too, and the sinatra CLI does the same thing from a terminal.
Does this work on the free Claude plan?
Anthropic allows one custom connector on Claude's Free plan, so yes, if Sinatra is your one. You still need model access on the Sinatra side: a subscription connected in Settings or a workspace API key.
Can I use it from ChatGPT Plus or Pro?
OpenAI's help center says full MCP support, which starting a task needs, is for ChatGPT Business and Enterprise/Edu on the web, and that Pro can connect custom MCP servers with read/fetch permissions. It doesn't mention Plus. On those plans, Codex cloud inside ChatGPT is the built-in alternative.
Can I send a correction while it's running?
You can send it, but it runs as the next turn rather than reaching the agent mid-run. For mid-run steering, start the work from a Linear issue, a GitHub issue with the Sinatra label, or a Slack thread.
What does it cost?
On Sinatra's side, Pro is $20 a month for the whole workspace and Free needs no card. Your model provider bills its own usage, the same as if you'd done the work in the chat yourself.
If you want to try it on something real, start free, connect a repository and your subscription, and add Sinatra as a connector. The MCP server page has the overview. The MCP setup docs also cover Claude Code, Cursor and other clients, and the Claude Code and Linear post shows the same server from inside a coding session.