Orkestia
Blog
Cockpit app

AI tools and MCP

Let Claude Code, Claude Desktop, Cursor, Codex and VS Code use Orkestia through Orkestia Cockpit — the local connector, the first-use question, what the ten tools can and cannot do, revoking, and orkestia-cockpit:// links

Orkestia Cockpit can act as a local MCP connector. An AI tool on the same computer starts orkestia-cockpit mcp, which speaks MCP over stdio and relays every tool call to the running app. The app makes the Orkestia call with your own session, in the organization you allowed for that tool. There is no token to copy and no separate sign-in.

This is the local alternative to the remote server, https://mcp.orkestia.dev/mcp, which hosted tools use and which signs in with your Orkestia account. See Connect an AI assistant for the remote server and Organization → Access for the one-click view of both.

Local connectorRemote server
Address<app executable> mcp, started by the toolhttps://mcp.orkestia.dev/mcp
Works forClaude Code, Claude Desktop, Cursor, Codex, VS Code on this computerclaude.ai, Lovable, anything hosted or on another computer
Acts asYou, through the running appYou, through your sign-in or an API token
Needs the app openYes. If the app is signed out the call says soNo
ToolsThe ten below, built around what you see in the appThe platform's workflow catalog (list_workflow_types, start_workflow…)

Connect a tool

Settings → AI tools (also Connect AI Tools… in the command palette, and a button on Organization → Access) lists each supported tool found on the computer with its state:

StateMeaning
Connected to this appThe tool's config has an orkestia entry that starts this app
Installed · not connectedFound, with no entry
Connected to another copy of this app (…)The entry starts a different install. Update points it here, Disconnect removes it
Has its own "orkestia" entry, left as isAn orkestia entry that is not this app's, such as a remote server added by hand. The app never replaces or removes it. Rename or remove it first
Can't read : …The config could not be parsed. Fix or simplify it first (comments are not supported)
Not found on this computerNot installed

Connect shows exactly what will change before anything is written: the tool's config file, a diff, where the previous file is kept (<file>.bak) and, for Claude Code, that the change is made with its own claude mcp add command. It adds one entry named orkestia and changes nothing else in the file; when nothing would change it says so and writes nothing. Disconnect removes only that entry. After connecting, restart the tool (or reload its MCP servers) to see Orkestia.

Debug builds can be pointed at a temporary folder with ORKESTIA_AITOOLS_HOME so tests never touch real configs. Release builds always use the real ones.

The first call asks you

The first time a tool calls, the app shows Allow ?:

wants to use Orkestia as in .
Line in the sheetMeaning
It can read your decisions, workflow runs, coding sessions and apps, search, and show things in this windowThe scope of the ten tools
It can't approve or deny anythingDecisions are answered in the app, by you
It keeps acting in , even if you switch organizations in this appThe grant is pinned to the organization that was active when you allowed it

Deny has the focus and nothing allows by keyboard. Closing the sheet is a Deny, and so is no answer within four minutes. A denial is remembered for two minutes so a tool that retries in a loop does not keep asking. One question is shown per tool at a time; extra calls wait for the same answer, and N more tools are waiting to ask is shown when several are queued. Signing out denies every open question.

Allowed tools

Allowed tools in Settings lists each grant: the tool, As in , when it was allowed, when it was last used and the program that started it. Revoke removes it; a toast offers Undo, and the tool's next call asks again.

RuleBehavior
Per accountGrants belong to one Cockpit account. Another account signing in starts with none
Pinned organizationCalls keep acting in the organization of the grant after the app switches. If you leave that organization, calls are refused with a message to revoke the grant instead of moving to another organization
Tool identityA grant is for the tool's name plus the program that started it (an app bundle, or an executable path with version folders folded), so it survives updates
Signed outThe call is refused: "Orkestia Cockpit is signed out. Open it, sign in, and try again."

The tools

Every tool runs in the grant's organization. Answers are compact JSON: long values are shortened and anything that looks like a secret is left out. No tool can answer a decision.

ToolDoesArguments
whoamiThe person signed in, the organization this tool was allowed for, and when it was allowednone
list_waiting_decisionsDecisions waiting for you, newest first, with the choices each offerslimit (up to 50), include_others to also list decisions addressed to someone else
get_decisionOne waiting decision: what is decided, why, facts and links, the recommended action and what each choice does. Says plainly when it is no longer waitingdecision_id
list_recent_runsRecent workflow runs, newest firststatus (all, running, success, failed), since_hours (up to 168), workflow_type_prefix, limit
get_runOne run by id: type, state, whether it finished and how, outputrun_id
list_coding_sessionsYour coding sessions, most recently active first, plus agent sessions running nowlimit
list_appsThe organization's apps: name, kind, address, idsnone
searchWhat the Cockpit's search (⌘K) finds: decisions, agent sessions, coding sessions and chats, apps and ticketsquery, limit
open_in_appBrings the window forward on an itemkind (decision, session, chat, app, section), id
request_approvalPuts a waiting decision in front of youdecision_id, message (up to 280 characters)

open_in_app opens a section by name: overview, decisions, activity, workflows, agents, coding, apps, runners, connections, organization or chat. Ids must be plain (letters, digits and _ . : @ -). If the app is working in another organization than the tool was allowed for, opening an item is refused and the tool is told to ask you to switch.

request_approval opens the decision in the app, sends a desktop notification titled asks you to decide (clicking it opens the decision) and shows a toast. It reports answered: false and whether the decision is addressed to you. You answer in the app, and the tool can call get_decision later to see whether it is still waiting.

The app registers the orkestia-cockpit:// scheme. A link only navigates: nothing is ever done because of a link.

orkestia-cockpit://open/<kind>/<id>
KindOpens
decisionThat decision in Decisions
sessionThat agent session in Activity
chatThat chat or coding session
appThat app in Apps (the id can be an app key such as site:<uuid>)
sectionA section: the names listed above

Anything that is not open/<kind>/<id> with a known kind and a plain id is ignored. A decision notification from request_approval uses the same targets.

A tool can read your decisions, runs and apps, and show things on your screen. It cannot answer a decision, but it can put one in front of you with a message it wrote, so read what you are asked before you answer.

Troubleshooting

You seeDo
The tool does not list OrkestiaRestart it or reload its MCP servers after Connect
Orkestia Cockpit is signed outOpen the app and sign in
The tool "was allowed for , which can't use any more"Revoke it in Settings → AI tools and let it ask again
It keeps being deniedWait two minutes, or allow it from the sheet. A denial is remembered briefly
Nothing happens on the first callThe Allow sheet is waiting in the app window. Bring the app forward