Skip to content

MCP setup — Claude, ChatGPT, Cursor, Codex

LinkWorld exposes a Model Context Protocol (MCP) server at https://api.linkworld.ai/api/mcp/sse. Connect a client to it and your AI assistant can work with your actual LinkWorld account: your company’s funnel and KPIs, the marketing/sales departments, your connected ERP and inbox, and the developer catalog for building LinkWorld apps.

Everything is scoped to the account you log in with — you only ever see what you already have access to, and credentials stay on our side (the client sees tool definitions and results, never an API key).

There are two ways in. Prefer the browser login: it needs no token handling and refreshes itself.

Terminal window
claude mcp add --transport sse linkworld https://api.linkworld.ai/api/mcp/sse

Then run /mcp in Claude Code and pick Authenticate. Your browser opens, you log in with your normal LinkWorld account and approve the connection. Done — the access token refreshes on its own.

Settings → ConnectorsAdd custom connector → paste:

https://api.linkworld.ai/api/mcp/sse

Claude bounces you to the LinkWorld consent page in your logged-in session; approve, and the connector is live in your chats.

Settings → Apps & connectorsAdvanced → enable Developer mode, then add a custom connector with the same URL.

Two honest caveats: our server speaks SSE (no Streamable HTTP endpoint yet), and it exposes no search/fetch pair, so LinkWorld works as a tool connector but does not appear as a deep-research source.

Clients without a browser-login flow authenticate with a token in the URL:

Terminal window
linkworld login --token <your-jwt> # one-time, if not already done
linkworld mcp config cursor # prints a ready-to-paste block
{
"mcpServers": {
"linkworld": {
"url": "https://api.linkworld.ai/api/mcp/sse?token=<TOKEN>",
"transport": "sse"
}
}
}

linkworld mcp token mints the token alone (24h); --quiet prints just the token for shell piping.

Inside the LinkWorld app every tool knows which company you mean — you are standing in its cockpit. An external client has no such context, so company-scoped tools would not know whose funnel to read.

Pick one once per conversation:

company_list() → your companies, with ids
company_use("xfloowcom") → this session now works on XFLOOW
company_current() → which one is selected

From then on company_snapshot, the marketing, sales, ads and website tools all answer for that company. The pick survives reconnects for 12 hours; call company_use again to switch. If a tool answers “No company context”, this step is what’s missing.

Ask your client:

List my LinkWorld companies, then show me this week's funnel.

It should call company_list, company_use and marketing_funnel and come back with real stage counts. If it invents company names instead, the connection isn’t live — check the URL and re-authenticate.

Three layers over the same connection — the full map with tool names is in MCP tools — the full server surface:

  • Your company — snapshot, KPIs, conversion funnel and funnel health, website analytics, competitors.
  • The departments — Marketing (creatives, posts, ad tests, SEO/GEO), Sales (prospects, leads, deals, outreach campaigns), Finance via your connected books (Odoo, lexoffice, Business Central), Website/E-com edits.
  • Your integrations and the developer catalog — email, calendar, WhatsApp, Teams, Drive, GitHub, a headless browser, plus list_skills / get_skill_docs / validate_manifest / search_examples / lint_app / scaffold_app for building LinkWorld apps.

5. What the connection can and cannot do on its own

Section titled “5. What the connection can and cannot do on its own”
  • Reads are free-running. Snapshots, funnels, pipelines, insights — no approval needed.
  • Outward-facing actions stay gated. Posting, sending, changing an ad budget or editing a live site returns blocked with an approval id; the action waits for your sign-off in the LinkWorld app. That is the same governance the operator itself runs under, not an MCP restriction.
  • Metered work costs credits. Image/video renders and LLM-backed analysis draw from the same credit balance as in-app work, attributed to the selected company.
  • Browser login (OAuth): access token 24h, refreshed automatically via a rotating 30-day refresh token. Nothing to maintain.
  • Dev token: 24h, no auto-refresh — re-mint with linkworld mcp token. Cursor and most clients store it in plaintext in their config (~/.cursor/mcp.json); treat that file like an SSH key.
  • Revocation: there is no per-token revoke yet — rotating your account JWT (re-login) invalidates all your dev tokens at once. One more reason to prefer the browser login.
  • Concurrency: up to 5 simultaneous MCP sessions per user.
  • “No company context” → call company_list() then company_use("<id>") (see step 2).
  • Client offers no login / 401 loop → make sure the URL is the API host api.linkworld.ai, not the app host, and that your client supports OAuth-protected MCP servers; otherwise use the token URL.
  • “Token expired”linkworld mcp token and update the config.
  • A tool you expect is missing → the catalog is dynamic: a tool appears only when its integration is connected for your tenant. Connect it in the app, then reconnect the client.
  • Generated code calls nonexistent fields → have the client re-fetch get_skill_docs for that skill; output schemas are the contract.

In-platform — same developer tools, dx_ prefix

Section titled “In-platform — same developer tools, dx_ prefix”

The LinkWorld web app’s /chat assistant carries the six developer tools without any MCP token, prefixed to avoid collisions with the assistant’s built-ins:

External clientLinkWorld /chat
list_skillsdx_list_skills
get_skill_docsdx_get_skill_docs
validate_manifestdx_validate_manifest
search_examplesdx_search_examples
lint_appdx_lint_app
scaffold_appdx_scaffold_app

Same implementation, same return shapes. Coding sessions running inside LinkWorld’s compute VMs connect through this exact MCP path and see the unprefixed names.