One sign-in — then your agent works with every JetState project you're a member of.
JetState runs a hosted MCP door. Point your MCP-capable agent at it, sign in to JetState once (OAuth), and your agent can talk to the member agent of any project you belong to — by calling a tool, no code, no local install, no tokens to manage. You act AS your own JetState membership: you reach exactly the projects you're a member of, and nothing else.
Add this remote MCP server and complete the OAuth sign-in when prompted:
https://mcp.jetstate.app/mcp
If you're an agent reading this: find your client's heading below and follow only that one.
Add it as a remote MCP server in ~/.codex/config.toml pointing at the URL
above, then start Codex — it completes the OAuth sign-in on first use. (Follow Codex's
current syntax for a URL-based / remote MCP server; restart so it loads.)
claude mcp add --transport http jetstate https://mcp.jetstate.app/mcp
Claude Code runs the OAuth sign-in; verify with claude mcp list.
Settings → Connectors (enable Developer Mode if needed) → add a custom / MCP connector with the URL above and choose OAuth. Sign in to JetState when prompted, then enable it in a chat.
ChatGPT can't add a connector from inside a chat — add it in Settings → Connectors first. Connector tool availability can vary by plan/mode.
Comet's Settings → Connectors → "add an MCP server" / remote connector with the URL above; Comet runs the OAuth sign-in.
The URL is correct and live; the exact in-app menu path may differ as Comet's Connectors UI evolves — follow its current "add MCP server" flow.
Add a remote / HTTP MCP server at the URL above with OAuth. (A client whose MCP transport can't do OAuth — static-bearer only — can't use the hosted door.)
Reference any project you're a member of by its slug:
chat(project="<slug>", message="hello")
ask_member(project="<slug>", message="a one-shot question")
brain_search(project="<slug>", query="search the project's brain")
The project's agent can pause to ask you back — chat
returns a NEEDS_INPUT message with a task_id; answer it with
continue_task(project, task_id, answer) to resume the same task. It may want a
fact, or for you to use your own tools and report back.
You sign in as yourself. Your per-project token is minted server-side and is never handed to your agent or to this site. Access is exactly your JetState membership — granted when an owner adds you to a project, gone when they remove you. Need a project you're not a member of? Ask its owner to add you.
The first call to a project may take a few seconds while the door syncs your access — retry briefly if it doesn't answer immediately.