Mark

Connect your AI agent

Connect Claude, ChatGPT, Grok, Cursor, and other AI agents to your Mark workspace over MCP.

Page actions

Your AI agent can do the setup for you. Ask it to follow docs.use-mark.com/agent-setup.txt, or copy the setup prompt into its chat.

The address and a ready-to-paste setup prompt for each client are also in the Mark app under Settings → AI agents.

Your AI agent can draft posts, pull performance, research keywords, and approve the queue. It acts as you, in one workspace, with the same review rules as the Mark app.

Try prompts like:

  • "Plan next week's LinkedIn posts from our pillars."
  • "What changed in search last month?"
  • "Approve the three posts waiting for me."
  • "Find keyword ideas for ADU payback."

Before you start

You need a Mark account. The agent signs in as you and works in the workspace you pick on the Mark sign-in screen. It has your permissions in that workspace: if you can approve, it can approve.

Server URL:

https://app.use-mark.com/mcp

Connect your agent

Claude (claude.ai and Claude Desktop)

  1. Open Customize → Connectors. On Team or Enterprise, an owner opens Organization settings → Connectors instead.
  2. Select Add custom connector.
  3. Name it Mark and paste the server URL above.
  4. Select Connect, sign in to Mark, pick the workspace, and select Allow.

Claude takes each server URL once. To add a second workspace, use that workspace's own address (see Connect several workspaces).

Once Mark is listed, find it in the Connectors directory.

Claude Code

claude mcp add --transport http mark https://app.use-mark.com/mcp

Then run /mcp and select Authenticate.

Or install the plugin (MCP plus skills):

claude plugin marketplace add Life-With-Data/mark-agent-plugin

Then /plugin install mark@mark-gtm. Skills show up as /mark:plan-week and the rest listed in Plugin, MCP and skills. The plugin connects to one workspace. For several, see MCP and skills separately.

ChatGPT

  1. Open Plugins and select + → Add custom MCP server.
  2. Paste the server URL and choose OAuth.
  3. Sign in to Mark and pick the workspace.
  4. Select Create as a plugin.

Full tool access (drafting, approving and other changes) needs a ChatGPT Business, Enterprise or Edu workspace on the web. On Business, only admins and owners can add a custom MCP server.

Grok (grok.com)

  1. Open grok.com/connectors.
  2. Select New Connector → Custom.
  3. Paste the server URL and sign in to Mark.

On Business or Enterprise, an admin provisions the connector in the xAI console first.

Grok Bot

Tell the bot: "Add a custom MCP server called mark at https://app.use-mark.com/mcp". Confirm, select Authorize on the connect card, and pick the workspace. Once the plugin is listed: Settings → Plugins → Mark. Team admins may need to allow the URL in the MCP allowlist.

Muse (Meta)

Muse has no MCP settings screen, and Meta's help pages do not document MCP, so Mark does not support it. Muse Code (Meta's coding agent) does support MCP: add an mcp_servers entry with streamable_http and the URL above, then run muse mcp login mark.

Cursor

Use Add to Cursor, or put this in ~/.cursor/mcp.json:

{
  "mcpServers": {
    "mark": {
      "url": "https://app.use-mark.com/mcp"
    }
  }
}

Then Settings → MCP → Connect, sign in, and pick the workspace.

VS Code (GitHub Copilot)

Use Install in VS Code, or put this in .vscode/mcp.json:

{
  "servers": {
    "mark": {
      "type": "http",
      "url": "https://app.use-mark.com/mcp"
    }
  }
}

Start the server and sign in.

Codex (CLI, IDE, app)

codex mcp add mark --url https://app.use-mark.com/mcp

Then codex mcp login mark. Or in ~/.codex/config.toml:

[mcp_servers.mark]
url = "https://app.use-mark.com/mcp"

Windsurf

Put this in ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "mark": {
      "serverUrl": "https://app.use-mark.com/mcp"
    }
  }
}

Refresh the MCP panel and sign in.

Other MCP clients

Any client that speaks remote MCP over streamable HTTP with OAuth can use the same URL.

Choose your workspace

The Mark sign-in screen asks which workspace. One connection is one workspace. To switch, disconnect and reconnect, or add a second connection named "Mark – ‹workspace›".

Connect several workspaces

Each workspace also has its own address that only works for that workspace:

https://app.use-mark.com/mcp/o/‹workspace id›

Use it to connect more than one workspace from the same client: add one connection per workspace, each with its own address and a name like "Mark – ‹workspace›". Claude and Claude Desktop need this, since they take each URL once.

To get a workspace's address, open the workspace in Mark and go to Settings → AI agents → This workspace only. Or ask an agent that's connected to that workspace: "What's this workspace's MCP address?" It reads mcpUrl from Get Workspace.

The plugin connects to one workspace. If you work in several, such as an agency running Mark for clients, install the skills on their own and add a connection per workspace. See MCP and skills separately.

When you connect, pick the same workspace on the Mark sign-in screen. If you pick a different one, the agent's calls fail with a message telling you to reconnect and pick the right workspace.

What agents can do

An agent can read and change the same things you can in the Mark app: brand and strategy, claims and sources, posts and review, the calendar, assets, performance, keywords, websites, and connections. The Tool reference lists every tool, grouped by job, with read-only and write tools marked.

For repeatable jobs like planning a week of posts, add the Mark skills.

Not available to agents

  • Connecting accounts. OAuth needs the Mark app in a browser. Call Get Connect Link, open the URL, then Sync Connections.
  • Entering API keys (ClickUp, a customer PostHog). Secrets do not belong in chats.
  • Provisioning Mark-managed PostHog, or editing raw integration config.
  • Fetching a link preview as its own step. That happens inside Save Post.

Preview and approve posts in the chat

In Claude (claude.ai and Claude Desktop) and ChatGPT, a post or the calendar shows up in the chat as a preview drawn by Mark, with buttons. Other clients get the same information as text.

Post preview

When you ask to see a post ("show me the pricing post", "let's review this one"), the agent calls show_post and the chat shows the post the way its channel shows it, with "Your account" as the account name. When the agent only reads posts to do a task for you, such as checking which posts have no image, it uses get_post and the chat draws nothing. Under it are the post's status, who approved it once it's approved (like "by Dana Lee"), and these buttons:

  • Open in Mark opens the post in the Mark app.
  • Approve, Request changes and Reject show only when the post is in review.

A post in review also shows Before you approve, the same things the review page shows beside its decision:

  • Open claim flags. While one is open, Approve is turned off and the preview says why.
  • The checks Mark ran when the post was sent to review that still need a look, with the words they matched.
  • For a blog, FAQ or competitor page, Open the draft on your site when Mark sent a preview to your CMS.

Request changes asks "What needs to change?" and Reject asks "Why is this rejected?". Write the note, then choose Submit, or Cancel to go back. The note is required, as it is on the review page.

The buttons follow the same rules as the review page. Mark records your decision on the revision the preview shows. If Mark can't, for example because the post changed since then, has open claim flags, or its channel is set to Admins only and you're not a workspace admin, the preview says why. Once you decide, the preview shows the new status and your note, and the agent sees what you decided, so you can ask it to revise the post next.

Every preview has a Comments section, closed at first, with the same comments the review page shows. Each comment shows who wrote it, the agent it came through (like "via Claude") when there is one, the revision and the time. A post with none says "No comments yet."

To add one, write in Write a comment… and choose Post comment. To comment on part of the post, select that text in the preview. It shows as a quote above the box, and Comments opens if it was closed. Choose Remove to drop the quote. The comment saves with the quote first, each line starting with > , then your comment. A quote longer than 500 characters is cut short, and Post comment turns off when the quote and comment together go over 5,000 characters. Commenting doesn't change the post's status or approve anything. Your team sees the comment on the review page, and the agent sees what you wrote. If Mark can't save it, the preview says why and keeps what you typed.

In other clients, the agent shows the post as text and asks you whether to approve it, request changes or reject it. It doesn't decide for you.

Calendar

When the agent reads the calendar (get_calendar), the chat shows the Calendar page's 3 days view. Select Day to see one day. There's no week view in the chat.

  • The arrows move back or forward by a day or 3 days, without asking the agent.
  • The row at the top shows how many of each channel's slots are filled that week.
  • Image posts show a thumbnail. A website post's cover image doesn't.
  • Select a post to open it in Mark. Open in Mark opens the Calendar.

If the days don't load, the calendar says "Couldn't load those days."

Stay in control

  • The agent has your permissions in that workspace.
  • Approving publishes at the scheduled time. There is no separate publish step.
  • Brand changes wait for you. When an agent edits a Brand group, the group shows "Not confirmed" until you review it and select Save and confirm, or tell the agent to confirm it for you.
  • Claims keep their history. An agent can add, revise, or retire a claim on Claims & sources, but never edit one in place. Revising retires the old claim and adds a new one, so posts that cite the old claim keep its wording. Each claim's quote must appear in its source's text. An agent can edit or delete a pasted note under the same rules as the page.
  • Keep your client's confirmation prompts on for tools marked destructive (approve, reject, delete).
  • Content from websites and comments can try to steer an agent. Read what you approve.
  • Every agent change shows via ‹client› in review history.
  • To revoke: remove the connector in your client. An admin removing you from the workspace cuts access within 30 seconds.

Troubleshooting

  • "No active market has a search location and language": call Set Up Market with a place name and language, or List Market Locations then Get Setup Status.
  • "Connect a LinkedIn account": call Get Connect Link with provider linkedin, open the URL in Mark, then List Channels to confirm it shows as connected.
  • "This quote isn't in the source's text": call List Claims and Sources with that source to read its text, then copy the quote exactly.
  • "Pick a workspace": disconnect, reconnect, and choose the workspace on the Mark sign-in screen.
  • "This address is for ‹workspace›": you connected a workspace's own address but picked a different workspace on sign-in. Disconnect, reconnect, and pick the workspace the message names.
  • "This address is for a different workspace": the address belongs to a workspace you aren't in, or you picked another one. Use the address of a workspace you belong to, and pick that workspace when you sign in.
  • "You're no longer a member": an admin removed you, or you left. Access stops within 30 seconds.
  • The sign-in pop-up is blocked. Allow pop-ups for your client, then connect again.
  • The client says there are too many tools. Install the Mark plugin and use a skill (plan-week, keyword-ideas) so the agent picks a smaller set.
  • Still stuck? Ask whoever runs your Mark workspace, or write to us from the app.

This page covers your workspace. To search these docs from an agent instead, see Search these docs over MCP.

Last updated Oct 24, 2026

On this page