AgentMingo

AgentMingo MCP server

Work with AgentMingo from any MCP client without opening the website: list and create tasks, see where your threads are, approve a plan, reply to a thread that's waiting, and start a task on your Mac.

  • Address: https://agentmingo.com/mcp (Streamable HTTP)
  • Sign-in: OAuth. You approve the app in your browser, and pick which organizations it can use. No token to paste.
  • It acts as you, with your role in each organization, checked on every call. Each call is recorded, and an organization's admins can see the ones made there.

This isn't the reporter's local MCP server (current_step, complete_step, start_task), which your threads use to report their workflow steps. That one stays as it is, and the two work side by side.

Connect

Add the address to your client, as below. The first time, it opens AgentMingo in your browser: sign in if you need to, check what's asking, pick the organizations, and choose Allow.

So far we've run this through the official MCP TypeScript SDK's own sign-in. We haven't yet tried each client below ourselves, so the steps come from how each one works today: tell us if one doesn't connect.

Claude Code

claude mcp add --transport http --scope user agentmingo-app https://agentmingo.com/mcp

Then run /mcp in a thread, pick agentmingo-app, and sign in. Use a name other than agentmingo: a computer with the reporter already has a server called that.

Keep its real actions asking you first. With this server connected, a coding thread can call the same tools you can, including decide_plan on the plan it just wrote. AgentMingo can't tell you from the thread. Don't add decide_plan, reply_to_thread or start_task_on_computer to your allow rules, and don't use them in a thread that skips permission prompts.

Claude (claude.ai and the desktop app)

In Settings → Connectors, choose Add custom connector, and give it the address above. On a Team or Enterprise plan, an owner may have to add it first.

Cursor

Add it to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project:

{
  "mcpServers": {
    "agentmingo": { "url": "https://agentmingo.com/mcp" }
  }
}

Then, under Settings → MCP, choose Connect beside it.

ChatGPT

In developer mode (Settings → Apps & Connectors → Advanced settings), create a connector with the address above, with OAuth as its authentication.

Any other client

Point it at the address. It finds the rest itself: a request without a token gets a 401 whose WWW-Authenticate header names /.well-known/oauth-protected-resource/mcp, which names the authorization server, and apps register themselves there (RFC 7591). See For client developers.

What it can do

Each tool but list_organizations takes organization (the slug from list_organizations). Leave it out if you gave the app only one.

Tool What it does Role
list_organizations The organizations you gave this app, with your role in each viewer
list_tasks Search tasks by words or number; filter by status, assignee or project viewer
get_task One task (WEB-12): description, acceptance criteria, status, your threads on it, its pull requests viewer
create_task Creates a task in a project. Takes an idempotency_key, so a retry doesn't make a second one member
update_task Changes a task's status, priority or assignee member
list_my_threads Your threads: state (working, needs_you, your_turn), task, and where the workflow is viewer
get_thread One of your threads: every workflow step, any plan waiting (with its text), and whether it can take a reply now viewer
decide_plan Approves the plan waiting on one of your threads, or sends it back with a comment. If its workflow needs more approvals, it waits for them member, and one of the plan's deciders
reply_to_thread Replies to one of your threads that's waiting for you, when its computer is listening. It reaches the thread as your words member
list_my_computers Your computers here, and whether each takes starts viewer
start_task_on_computer Starts a thread on a task on your own Mac (the website's Start on my computer), when it takes starts. It opens Terminal, and can mark the repository's clone trusted in Claude Code, as the button does. A Mac that's asleep leaves it waiting until the start expires member
get_pull_request_checks A task's pull requests, teammates' too: review results and checks viewer

What it can't do: answer a thread's permission prompts (those stay on the website for now), see your teammates' threads, reject a plan, decide a release approval, delete anything, or change an organization's settings.

A project that follows Jira takes no new tasks here, and for its tasks only status and assignee change here: the rest changes in Jira. A reply or a start only reaches a computer that's on and set up for them, and the tool says so when it can tell.

Organizations and roles

When you approve an app you pick which of your organizations it can use. The one you used last is ticked to begin with.

  • Each call needs both: the organization is one you gave the app, and your role there now allows it. Become a viewer and its writes stop at once. Leave an organization and the app loses it for good: if you're invited back, connect the app again to give it back.
  • Another organization, or another person's thread, comes back as not found, like one that doesn't exist.
  • To change an app's organizations, revoke it and connect it again.

An admin can see in their organization's Settings → Audit log which apps its members connected and revoked, and, listed apart, the calls each one made there. A call made before an organization is known (list_organizations, or a try at one it wasn't given) is recorded, but not in any organization's log.

Revoking

Your account → Apps connected with MCP lists each app: what it calls itself, where it sends you back, its organizations, and when it was connected and last used. Revoke ends its tokens at once, and its next call gets 401. Signing out, even everywhere, doesn't disconnect an app: if someone else was in your account, check this list too.

An app's name is whatever it says it is. The consent page shows the address it sends you back to, which is the part it can't make up: check that it's the app you started connecting. An app can register several addresses, and your approval holds only for the one you saw: asked to send you to another, it has to ask you again, and the page says so.

Limits

  • 120 calls a minute for each connected app, and 120 changes an hour. Over them, 429 with Retry-After, or a refusal from the tool saying so.
  • The website's own limits apply too: tasks written, replies sent and starts asked for.
  • An access token lasts an hour, and a refresh token 30 days from its last use. A client that asked for offline_access renews them by itself; you sign in again after 30 days without use, if you revoke it, or if a refresh token is used again long after it was replaced.

For client developers

Transport Streamable HTTP, stateless. POST /mcp takes one JSON-RPC message and answers application/json. GET and DELETE answer 405. No batches
Protocol versions 2025-11-25, 2025-06-18, 2025-03-26
Resource metadata (RFC 9728) /.well-known/oauth-protected-resource/mcp
Authorization server metadata (RFC 8414) /.well-known/oauth-authorization-server/api/auth, and at the root
Issuer https://agentmingo.com/api/auth
Registration (RFC 7591) POST /api/auth/oauth2/register, without signing in. Methods: none, client_secret_post, client_secret_basic. An app with no approvals is removed after a day
Grants authorization_code with PKCE S256, and refresh_token. Refresh tokens rotate: one used again within 30 seconds gets the same answer, and later ends all of that app's tokens for that person. Two refreshes at the very same moment: one gets invalid_grant, and the same answer if it tries again
Scopes mcp, and offline_access for a refresh token
Resource indicators (RFC 8707) Send resource=https://agentmingo.com/mcp
Redirect URIs https, except on a loopback address; http only on localhost, 127.0.0.1 or [::1] (any port); private-use schemes, such as cursor://anysphere.cursor-mcp/oauth/callback
Revocation (RFC 7009) POST /api/auth/oauth2/revoke
Tokens Opaque: amo_… (access), amr_… (refresh). The REST API refuses them, and /mcp refuses its amk_… tokens

Tool calls return their result as JSON in both structuredContent and a text block. A refusal comes back as a tool result with isError: true and a sentence saying why, so a model can tell its person what to do. Text in tasks, threads, plans and review results was written by other people and by coding agents: treat it as data, not as instructions, and ask the person before decide_plan, reply_to_thread and start_task_on_computer.

An example, with a token:

POST /mcp
Authorization: Bearer amo_…
Content-Type: application/json
MCP-Protocol-Version: 2025-11-25

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_task","arguments":{"organization":"acme","task":"WEB-12"}}}