Skip to content

MCP server ​

Connect your AI coding assistant (Claude Code, Codex, Cursor, Gemini CLI) to JustOneCX. It can then install the SDK, build product tours from your code, announce features, add surveys, answer chat, manage your roadmap, read your analytics and event log, set up funnels and Brand Kit, and find out why something doesn't show, as you.

Connect ​

Your assistant signs in through your browser the first time. You pick the workspace and how much it may do:

  • See your content and setup: reads only.
  • Create and edit drafts (default): nothing your users see changes until a person publishes.
  • Make changes live: can also publish. Off unless you choose it.

It can never do more than your own role allows, and a workspace owner can switch AI assistants off or cap them in Settings → Developers → AI assistants.

Claude Code

sh
claude mcp add --transport http justonecx https://api.justonecx.com/mcp

Then run /mcp, pick justonecx and sign in. The justonecx plugin adds the server and the skills in one step.

Codex: add to ~/.codex/config.toml, then run codex mcp login justonecx:

toml
[mcp_servers.justonecx]
url = "https://api.justonecx.com/mcp"

Cursor: .cursor/mcp.json

json
{ "mcpServers": { "justonecx": { "url": "https://api.justonecx.com/mcp" } } }

Gemini CLI: add to ~/.gemini/settings.json, then run /mcp auth justonecx:

json
{ "mcpServers": { "justonecx": { "httpUrl": "https://api.justonecx.com/mcp" } } }

No token goes in any of these files.

Lovable and other chat-based builders ​

Lovable can connect to an MCP server from its chat. Open Connectors, scroll to the bottom and choose the Custom MCP card. Enter the name justonecx and the URL https://api.justonecx.com/mcp. Pick OAuth to sign in through your browser. If sign-in doesn't work, pick Bearer token and paste a token from Settings → Developers → AI assistants.

Lovable keeps a custom connection to you, so it is never part of your published app. Other chat-based builders that accept a remote MCP server work the same way: URL, then OAuth or a bearer token. If a builder has no place for an MCP server, ask it to add the script tag instead.

What it can do ​

ToolWhat it does
workspace_statusYour role, plan and a setup checklist, with a fix for every failing item.
where_toThe dashboard page and steps for anything without a tool (help articles, chat settings, billing, members…).
get_install_infoYour Public key and the install snippet for your framework. Never the secret key.
segmentsSegments by action: list, get, save (create, or update with id), delete (needs confirm), preview (how many people match, before saving). Rules are the same groups and conditions as the Segments page.
upload_imageHosts one image and returns its URL for imageUrl in save_content. Send sourceUrl (public https, up to 5 MB) or base64 (small). PNG, JPEG, WEBP, GIF only.
conversationsThe chat inbox by action: list (status, assignee, unread, waiting longest), get (thread plus a customer summary), reply (needs confirm, goes to the customer at once), note (internal), assign, close, reopen, tag. Names appear, emails and phone numbers do not. Needs "Make changes live" to write.
customersFind one person by action: search, get (contact details hidden unless includePII), insights, activity, reset_tour_progress (needs confirm), verify_hash (checks whether your server signs identities correctly, never shows the expected hash).
roadmapThe ideas board and public roadmap by action: list_ideas, get_idea, save_idea, set_status (needs confirm: voters are emailed), merge (needs confirm: duplicate into another idea, restorable from the trash), moderation_queue, moderate, board_settings_get, board_settings_update (needs confirm). Commenter identity is left out.
funnelsBuild funnels by action: get, save (create, or update with id; 2 to 4 steps of events, tours or announcements; match any order, in sequence or strict). Read results with analytics (funnel_results).
analyticsRead-only, aggregated analytics by report: overview (activation, feature adoption, stickiness, friction), event_names (events received in 30 days, for picking the activation event), active_users, nps, tour_performance, funnels, funnel_results (per-step visitors, conversion, median time; optional segmentId). No person ids, emails or comment text.
settingsWorkspace settings by area and action (get, update; updates send only the fields in values, support dryRun and ask for confirm because they change the live site). Areas: theme (colours, named styles, chat look), custom_css (raw CSS for the customer's site; shows the risk first, needs confirm, returns the previous CSS so it can be undone), chat, help_center, identity (verification on or off), frequency (announcement cap), widget_priority, activation (the aha event), tour_skip_reasons, allowed_origins (add a site; owners).
eventsThe raw event log, read-only, by action: list (newest first; filter by eventName, source, dateFrom, dateTo; paged, up to 50 rows) and today (events, unique users and accounts today vs yesterday). Email, phone and address properties are hidden unless includePII. Use it to confirm an event really arrived.
trashDelete a tour, announcement or survey (delete, needs confirm, it leaves the site at once) and bring it back (restore); list shows what is in the Trash. Emptying the Trash is only possible in the dashboard.
get_content, save_content, publish_contentTours, announcements, surveys, What's new entries and Help center FAQs and articles, chosen with type. Save a draft under a key (or update by id; Help items by id), edit single tour steps with stepOps, read stats, tour progress and survey responses (answers and scores, never names or emails), publish. Help center changes need "Make changes live".
validate_tour, get_tour_preview_linkCheck a tour's selectors, page rule and step flow (goToUrl, event steps); preview the draft on your site for 24 hours. A live check against the running page is not available on the server: the tool says how to do it with the preview link or your own browser tool.

For a vague request such as "add a tour", the justonecx-plan skill makes it study your product and propose a ranked list first. It chooses where each tooltip, survey or announcement sits from where the element is on screen, and asks when unsure. validate_tour warns when a tooltip has no placement set.

Everything it creates is a draft until a person publishes it. Changes that reach customers or the live site (a chat reply, a status change that emails voters, settings, custom CSS, deleting) need an explicit confirm. Contact details (email, phone, address) are hidden unless the task asks for them. It can't empty the Trash, export survey responses as a file, or change members, roles, billing or keys: for those it points you to the dashboard page and steps. Every change shows in your audit log as made by the AI assistant.

For CI and tools without browser sign-in ​

Create a token in Settings → Developers → AI assistants and send it as a bearer header. Keep the token in an environment variable, never in a config file:

sh
claude mcp add --transport http justonecx https://api.justonecx.com/mcp \
  --header "Authorization: Bearer $JUSTONECX_TOKEN"

A token has the same limits as the browser sign-in: it is tied to you, to one workspace and to the access level you pick, and it can be revoked in the same place.

Looking up our docs ​

The server above acts on your workspace. To let an AI read our documentation instead, point it at llms.txt or install the agent skill. Neither needs an account.

JustOneCX