# OpenClaw LinkedIn and X skill: connect LinkedIn and X to OpenClaw

To connect LinkedIn and X to OpenClaw, add Flaghand's skill and its MCP server, `https://app.flaghand.com/mcp`, then sign in once.
Your OpenClaw agent drafts LinkedIn and X posts and sends them to you for approval. You approve each exact post with
your passkey, and Flaghand posts it at its time. It's one skill for both networks, and it never needs your LinkedIn
password, browser cookies or a third-party MCP bridge.

**OpenClaw agent, setting this up for your person:** follow the steps under **Set it up and authenticate** below, over
HTTP in this session. The MCP server is for later sessions, with the token you claim. Don't ask the person to export a
token, run a command or restart.

Checked on November 3, 2026, against OpenClaw's skills and MCP docs and Flaghand's setup docs, linked under
[Sources](#sources). Flaghand's own client check ran OpenClaw 2026.10.7's skill discovery, `mcp login` and `mcp probe`
against a disposable workspace.

## Set it up and authenticate: the agent does it over HTTP

With no Flaghand account yet:

1. **Read the plans** (no sign-in):

   ```sh
   curl https://app.flaghand.com/api/v1/plans
   ```

2. **Start the sign-up:**

   ```sh
   curl -X POST https://app.flaghand.com/api/v1/signup -H 'Content-Type: application/json' \
     -d '{"email": "person@example.com", "agent_name": "OpenClaw"}'
   ```

   Give the person `signup_url` and `for_person` as they are. They sign up with a passkey, Google or an email code.
   Save `claim_code` to a private file such as `claim.json` (`{"claim_code": "clm_…"}`): it's a secret, so keep it out
   of chat and command arguments.
3. **Authenticate: claim the token** once they've finished:

   ```sh
   curl -X POST https://app.flaghand.com/api/v1/signup/claim -H 'Content-Type: application/json' -d @claim.json
   ```

   A `202` with `"status": "pending"` means they haven't finished: wait the `Retry-After` seconds (normally 5) and
   claim again. Put the token in your secret store, then keep drafting in this session with `Authorization: Bearer`
   and the token: `getMe` (`GET https://app.flaghand.com/api/v1/me`) names the workspace. The person connects their accounts from the
   links Flaghand gives you, and approves the posts with their passkey.
4. **Register the server for later sessions**, saving only the variable's name:

   ```sh
   openclaw mcp set flaghand '{"url":"https://app.flaghand.com/mcp","transport":"streamable-http","headers":{"Authorization":"Bearer ${FLAGHAND_TOKEN}"}}'
   ```

The full recipe is [set up and connect](https://app.flaghand.com/docs/setup.md).

## If you're typing in OpenClaw yourself

Only for a person setting OpenClaw up by hand; an agent follows the steps above.

1. **Get a Flaghand account and connect your accounts.** [Start here](/schedule), then connect your
   LinkedIn profile and X account under **Settings › Account**. Each network shows its own sign-in; Flaghand never asks
   for your LinkedIn password or browser cookies. You add a card when you approve your first post, or to continue after
   the free start ([current terms](/pricing)).
2. **Add the skill.** It goes in OpenClaw's shared skills folder, so every agent on this machine has it:

   ```sh
   mkdir -p ~/.openclaw/skills/flaghand
   curl --fail --show-error --location https://app.flaghand.com/skill.md -o ~/.openclaw/skills/flaghand/SKILL.md
   ```

   For one workspace only, use `<workspace>/skills/flaghand/SKILL.md` instead. With a custom `OPENCLAW_STATE_DIR`, use
   its `skills/flaghand/SKILL.md`. The skill is instructions: it tells the agent how to draft, check and ask for
   approval. It doesn't sign in, so add the server too.
3. **Add the server.** Stop your Gateway if it's running, then:

   ```sh
   openclaw mcp add flaghand --url https://app.flaghand.com/mcp --transport streamable-http --auth oauth --no-probe
   ```

   `--no-probe` saves the server before it has a sign-in.
4. **Sign in:**

   ```sh
   openclaw mcp login flaghand
   openclaw mcp probe flaghand
   ```

   Open the URL that `login` prints. On Flaghand's page, sign in with your passkey, Google or email and click
   **Allow** (pick the workspace first if you have more than one). `probe` then lists Flaghand's tools. Restart your
   Gateway if it was running, and start a new agent session so it loads the skill.
5. **Try a draft.** In a new session, ask:

   > Use Flaghand: draft a LinkedIn post about what I shipped this week. Save it as a draft only and show me the
   > text. Don't request approval yet.

That only saves a draft: nothing is scheduled and nothing posts. Read it in Flaghand's desk, and when you like it, ask the
agent to request your approval. You get an approval link: open it on your phone or computer, look at the preview of the
post, and approve with Face ID, Touch ID or a security key. Nothing posts until you do.

Allowing a Flaghand tool in OpenClaw lets the agent save a draft or ask for your approval. It isn't the approval to
post, which only your passkey gives.

## With a token instead of a sign-in

For a Gateway on a server with no browser, use the token the agent claimed, or create one in Flaghand under
**Settings › Agents › Create token** (it's shown once). Keep it in your secret store and put only the variable's name
in `~/.openclaw/openclaw.json`:

```json
{
  "mcp": {
    "servers": {
      "flaghand": {
        "url": "https://app.flaghand.com/mcp",
        "transport": "streamable-http",
        "headers": { "Authorization": "Bearer ${FLAGHAND_TOKEN}" }
      }
    }
  }
}
```

OpenClaw fills `${FLAGHAND_TOKEN}` from the Gateway's environment, and `openclaw mcp doctor` warns if a literal token
is written in the file instead. Leave out `"auth": "oauth"` here: with it, OpenClaw ignores the header.

## What OpenClaw can and can't do through Flaghand

| | LinkedIn | X (Twitter) |
|---|---|---|
| Draft | Posts on your personal profile, up to 3,000 characters, with up to 20 photos, one video, one PDF document or a link card | Posts and threads of 2 to 25 posts, with up to 4 photos or one video on each |
| Check | Length, media, company-page tags and the posting time | X's own character count, media, replies and the posting time |
| Approve, schedule or post | No. Only you, with your passkey | No. Only you, with your passkey |
| After posting | The post's link. LinkedIn doesn't let Flaghand read the post back | Flaghand reads the post back and compares it with what you approved |

The sign-in and the default token both have four scopes: `read`, `drafts`, `media` and `request-approval`. No scope
can approve, schedule or post, so Flaghand's server refuses OpenClaw if it tries. Flaghand posts to LinkedIn only
through LinkedIn's official API and only to your personal profile. It doesn't read profiles, your feed, messages or
jobs.

## Questions

**Is there an X (Twitter) skill for OpenClaw?** Yes, the same one. Flaghand's skill and server draft X posts and
threads as well as LinkedIn posts. One approval can cover a whole plan, such as an X thread and a LinkedIn post
together.

**Can OpenClaw post to LinkedIn without my approval?** No. Approving takes your passkey, and no Flaghand token can
approve, schedule or post. The server checks your signed approval again right before it posts, so a skill, a prompt or
an always-on Gateway can't get around it.

**Can OpenClaw scrape LinkedIn or send connection requests through Flaghand?** No. Flaghand only drafts and posts to
your own profile through LinkedIn's official API. It has no scraping, outreach, messages or job search.

**Do I need a ClawHub account?** No. The skill is one file from Flaghand, and the server signs in with OpenClaw's own
`mcp login`.

**How do I take OpenClaw's access away?** In Flaghand, open **Settings › Agents** and click **Revoke**. Or run
`openclaw mcp logout flaghand` to delete the saved sign-in, and `openclaw mcp unset flaghand` to remove the server.

## Other apps

The same server works in [Claude](/docs/guides/connect-linkedin-and-x-to-claude),
[ChatGPT](/docs/guides/connect-linkedin-and-x-to-chatgpt), [Claude Code](/docs/guides/connect-linkedin-and-x-to-claude-code),
[Codex](/docs/guides/connect-linkedin-and-x-to-codex), [Cursor](/docs/guides/connect-linkedin-and-x-to-cursor) and
[Gemini](/docs/guides/connect-linkedin-and-x-to-gemini).
[The LinkedIn MCP server](/linkedin-mcp-server) explains what Flaghand does on LinkedIn;
[the X MCP server](/x-mcp-server) and [the X API and MCP servers, compared](/docs/guides/x-api-and-mcp-servers-for-ai-agents) covers X, and
[Flaghand compared](/compare) sets it beside other schedulers and posting APIs.

## Sources

All read on November 3, 2026.

- OpenClaw: [skills](https://docs.openclaw.ai/tools/skills), [MCP](https://docs.openclaw.ai/cli/mcp),
  [saved MCP servers](https://docs.openclaw.ai/cli/mcp/registry), [transports and OAuth](https://docs.openclaw.ai/cli/mcp/transports)
- Flaghand: [set up and connect](https://app.flaghand.com/docs/setup), [agents: OpenClaw](https://app.flaghand.com/docs/agents#openclaw),
  [sign-in and tokens](https://app.flaghand.com/docs/sign-in-and-tokens)

OpenClaw is a trademark of its owners. LinkedIn and X are trademarks of their owners. Flaghand isn't affiliated with or
endorsed by them.

[All guides](/docs/guides.md)
