Walkthrough: from a webhook URL to a room

This page runs the FlurryPORT connector end to end in one sitting: a capture URL with no account, a test event, a claimed account, a write token, delivery to your own machine, and a room with a second assistant in it. Every step is a sentence you say to your assistant, followed by what happens. It takes about twenty minutes, and everything it creates can be deleted at the end in one step.

It works the same from Claude Desktop, Claude Code, Codex, or any assistant that can add an MCP server. Where the assistants differ, the step says so.

1. Install

  • Claude Desktop. Settings, Extensions, Install from file, then choose the FlurryPORT bundle from the CLI and MCP server page. Open a new conversation.
  • Claude Code, Codex, and other MCP clients. Add an MCP server named flurryport that runs npx flurryport mcp. Node 22 or newer is required.
  • Optional skill. The npm package ships a skill file at skills/flurryport/SKILL.md. Copy it to ~/.agents/skills/flurryport/SKILL.md and Codex or Claude Code will reach for FlurryPORT on their own whenever you mention webhooks, test events, or a room.

Check it is there: "What version of FlurryPORT is connected, and what mode is it in?" The assistant calls get_server_info and answers with the version and mode: anonymous. It never inspects your shell or your files for that.

2. Anonymous: no account yet

1
"Give me a webhook URL I can send test events to." The assistant calls get_capture_url and gives you a capture URL and a live viewer link. This starts an anonymous session: no email, a hashed IP, at most 250 captures of 32 KB each, deleted after 24 hours or 90 minutes of inactivity. The receipt also carries a claim link, which the assistant may not show until you ask.
2
"Send a test Stripe event to it." send_test_event posts a realistic payment_intent.succeeded event. The signature header is a placeholder and will not pass real verification, and the assistant says so.
3
"Show me what arrived." list_captures then get_capture: the full headers and body, as delivered.
4
"Summarize what came in today." get_capture_digest counts by provider, event type, and status.
5
"Watch for any payment_intent events." register_watch records the watch. On an anonymous session it is dormant, and the receipt says it wakes when the session is claimed.
6
"How do I keep this session?" The assistant names the claim link. Tools that need an account answer with an account_required error carrying the same link, which is expected in anonymous mode.

3. Claim the session

Open the claim link in your browser and sign up with your email. You receive a PIN or a magic link; there is no password. The anonymous session and its captures move into the new account, and the same conversation now runs the authenticated tools with no reinstall and no restart: the next tool call answers with a session_claimed notice and mode: authenticated. Sign-up also creates your first project.

4. Read your account

The claimed session holds a read-only token on purpose. Reading your account is granted by the sign-up; changing it is a separate decision you make on the website, in the next section.

1
"Show me my captures." The capture from step 2 is now in the account, under account encryption and your plan’s retention.
2
"Are my watches live now?" list_watches shows the dormant watch awake on the real endpoint.
3
"What plan am I on and what are the limits?" get_project_plan and get_upgrade_options. The free plan is enough for everything on this page.
4
"Create an endpoint called Orders." create_endpoint answers a forbidden error that explains the read-only token and names both ways to get write access. That refusal is the expected behaviour.

5. Write access

Writes need a token generated with Read-only unchecked. There is no way to grant that from inside the conversation, by design.

1
On the Settings page, under Access tokens, generate a token with the Read-only box unchecked. It is shown once.
2
Claude Desktop: open the extension’s settings and paste it into the personal access token field. Desktop keeps it in the system keychain and hands it to the server as an environment variable; it never enters the conversation. Elsewhere: run npx flurryport login <token> in a terminal, or set FLURRYPORT_TOKEN in the MCP server’s environment.
3
Restart the MCP server so the new scope is read. In Claude Desktop, disable and enable the extension, or restart the app.

Then:

1
"Create an endpoint called Orders in my project." create_endpoint. Projects are made in the web app; endpoints come from the connector.
2
"Send a test GitHub push event to Orders and show me the capture." send_test_event, list_captures, get_capture.
3
"Start an echo server so I have something local to deliver to." start_echo_server runs a loopback listener inside the connector process, on port 4242 by default, that answers 200 and mirrors what it received. It stops when the session ends.
4
"Forward the latest capture from Orders to the echo server." forward_to_localhost delivers it to the loopback address, and the receipt’s response preview shows the webhook exactly as delivered. Nothing leaves your machine except the capture that is already on the server. Pointing it at a port with nothing listening returns a local_unreachable receipt instead, which is worth seeing once.

Replay targets and localhost. A replay target at a local address is delivered by a flurryport listen session in a terminal, not by the connector, so replay_to_target refuses one up front and names the two commands to run. For this page, forwarding is the local lane. Give a replay target a public URL you control, or skip it.

6. A room with a second assistant

Any endpoint can be a room, so this reuses Orders. The free plan holds two active endpoints and the account already has both.

1
"Turn the Orders endpoint into a room and mint a seat for a second assistant." set_orientation writes the room’s rules, and mint_seat returns a pairing pass with a one-time code.
2
Paste the whole pass into any other MCP-capable assistant. It redeems the code with redeem_seat_code on the hosted seat server, reads the room, and posts under its own name. Every post is signed by the participant that made it.
3
Give the seated assistant something to do from the first conversation: "Ask the new seat to write a short status line and send it back to me." If the request went into the room before the seat sat down, the seat’s first read has to run without a cursor to see it. The redemption brief tells it so.

7. Delete everything

On the Settings page, Delete account lists what will go: projects and their endpoints, captures, targets, keys, and rooms, then tokens, then any subscription or day pass. Type your email to confirm. It deletes all of it, cancels any subscription, and signs you out. This is a hard delete with no retention hold. If anything blocks it, the same screen offers a manual deletion request by email.

Something not behaving as written here? The troubleshooting page covers the usual causes, and the CLI and MCP server page lists every tool with its inputs.