Skip to main content
Every Jun desk serves an MCP server at /mcp. Connect your own AI to it and ask in plain words: it reads your agent, writes tasks and actions, builds cards, runs the tests and makes the change live. Each change is checked like a save on the desk and kept as a version you can restore. It’s the easiest way to edit with your own AI: nothing to clone or install, and the AI works on the live agent with the same checks the Agent page uses.

Connect

The quickest way is the MCP page in the desk’s sidebar: pick your app (Claude Code, Cursor, Codex or Others) and press its one button. It creates an API token named after the app and then copies the command or configuration, or for Cursor opens Cursor’s install prompt, with your address and the token filled in. The token is listed on the page’s API tokens tab, where you can revoke it. Its value is shown only there, once. To set it up by hand instead:
1

Create an API token

On MCP → API tokens, create a token. It acts as you, for this workspace’s agent only. Copy it: it’s shown once.
2

Add the server to your AI

Your MCP address is your desk’s address plus /mcp, like https://support.acme.com/mcp.
Then claude mcp list should show jun … ✔ Connected.
3

Ask

Try: “Add a refund task that looks up the order with our orders API (here’s the curl command from our docs: …), test it, and make it live.”

What you can ask for

The AI gets a guide to the agent’s files when it connects, and these tools. Tools that change something save a new version that’s live at once; each takes dryRun: true to show the result without saving, and message for the version’s line in History. It can also read these resources: the file format (jun://guide/files), ChatKit’s widget authoring guide (jun://guide/chatkit-widgets), the Jinja filters widget templates can use (jun://guide/jinja) and every file of the live agent (jun://file/<path>).

Knowledge

The websites and documents the AI answers from (the desk’s Knowledge page) have their own tools. They do exactly what the Knowledge page does, with the same limits. Anyone’s token can list and search; adding, re-syncing and removing need an owner’s or admin’s.
Knowledge isn’t versioned: there’s no History or restore for it, and a removed source can’t be brought back. remove_source refuses until it’s called with confirm: true, and the AI is told to ask you first.

Some things to ask

  • “What does our agent do today? Anything broken?”
  • “When someone asks to cancel, offer the annual discount first, then hand off. Add a test for it.”
  • “Here’s our orders API: curl https://api.acme.com/v2/orders/1042 -H 'Authorization: Bearer sk_live_…'. Make an action that looks up an order, try it with order 1042, and show the result as a card.”
  • “Start from the ride status template for our delivery tracker and show me what its buttons do.”
  • “Change the chat widget’s greeting to ‘Hi! Ask us anything.’ and close on Sundays.”
  • “Run the tests. Fix what fails, but show me the change with a dry run first.”
  • “Can the AI answer ‘do you have an EU data center?’ from our docs? If not, add our security page.”

Safety

  • Keys are write-only. set_key (and action_from_curl, for a key in the command) stores a key on the desk; no tool ever returns it. Files only ever say {secrets.NAME}, and answers mask keys a request carried.
  • Nothing broken is saved. Each change is checked like a save on the desk; when the files have problems, nothing is saved and the AI gets the problems file by file.
  • Every change is a version. History on the Agent page shows the AI’s changes as Changed by an AI (MCP), with who owns the token. restore (or History on the desk) brings any version back.
  • Look before it’s live. dryRun: true shows the resulting file without saving; test_chat answers changes (POST actions) without making them unless you ask for real: true; run_tests with mockTools: true doesn’t call your APIs. try_action does make a real call.
  • Only the agent and its knowledge. A token reaches the agent’s config, its tests and the knowledge tools, nothing else: not the inbox, conversations or contacts. Reading needs any teammate’s token; changing needs an owner’s or admin’s. Revoke a token on MCP → API tokens at any time.
Your AI client usually asks before it calls a tool; keep that on for tools that change things.

How it works

The server is stateless MCP over Streamable HTTP (protocol versions 2025-11-25, 2025-06-18 and 2025-03-26): each request is one JSON-RPC message sent with POST, answered with JSON. It runs inside your desk’s Worker, so it’s on your Cloudflare account like the rest of Jun. A request without a valid token gets 401.
OAuth sign-in, for connectors in claude.ai and Claude Desktop without a bridge, is planned.