Create your account
- Go to linwheel.io/login and click Sign Up
- Enter your email and password
- Check your inbox for a confirmation link and click it
Connect LinkedIn
- From the dashboard, click Connect LinkedIn (or go to Settings)
- Authorize LinWheel to post on your behalf
- Your LinkedIn profile name appears in Settings when connected
Generate an API key
- Go to Settings and scroll to API Keys
- Click Generate API Key and give it a name
- Copy the key immediately — it starts with
lw_sk_and is shown only once
Connect your MCP client
LinWheel works with any MCP-compatible client. Add the server config to your client's MCP configuration:
OpenClaw
Add to your openclaw.json under mcpServers:
// openclaw.json
{
"mcpServers": {
"linwheel": {
"command": "npx",
"args": ["-y", "@linwheel/mcp-server"],
"env": {
"LINWHEEL_API_KEY": "lw_sk_paste_your_key_here"
}
}
}
}Claude Code
Run this to register the server:
claude mcp add linwheel -- npx -y @linwheel/mcp-serverThen open .mcp.json (project root or ~/.claude/.mcp.json for global) and add your API key:
{
"mcpServers": {
"linwheel": {
"command": "npx",
"args": ["-y", "@linwheel/mcp-server"],
"env": {
"LINWHEEL_API_KEY": "lw_sk_paste_your_key_here"
}
}
}
}Claude Desktop
Edit your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the same server config block shown above.
Other MCP clients
Any client that supports the Model Context Protocol can use LinWheel. Point your client at:
npx -y @linwheel/mcp-serverSet the LINWHEEL_API_KEY environment variable and connect via stdio.
Restart and verify
Restart your MCP client, then ask:
“List my LinWheel posts”
You should see a list of your posts (or an empty list if you're new). If you get an auth error, double-check your API key.
Onboard: zero to your first scheduled post
Ask your agent to “run LinWheel onboarding”. The onboard tool derives where you are from live data and walks you through each step in order, performing the first two directly:
- Timezone — onboarding saves your timezone first, server-side. This is required: a post scheduled for “9am” without it would fire at 9am UTC. Your agent detects your zone and confirms it before saving.
- Voice profile — paste 3+ of your own posts; the extractor drops off-voice samples automatically.
- Compose — feed it content (a buildlog entry, notes, a transcript) and reshape it into drafts in your voice.
- Schedule — pick a draft and a time. A time with no offset (e.g.
2026-07-10T09:00) is read in your saved timezone, so “9am” means 9am your time.
What you can do
Just describe what you want. Your agent picks the right tool.
“Draft a post about our new API. Make it a field note.”
“Generate a cover image and a carousel for that post.”
“Schedule it for tomorrow at 10 AM ET.”
“Add a comment with the docs link, fire at T+30.”
All 24 tools
| Tool | What it does |
|---|---|
| Onboarding | |
| onboard | Guided setup — zero to first scheduled post |
| voice_extract | Build a clean voice profile from samples |
| Content | |
| draft | Create a post draft |
| analyze | Score text for LinkedIn engagement |
| reshape | Rewrite through 7 angles (contrarian, field note, ...) |
| refine | Polish with light / medium / heavy intensity |
| split | Break long content into a series |
| bundle | Post + image + carousel in one call |
| Publishing | |
| posts_list | List posts with filters |
| post_get | Full post details |
| post_update | Edit text and settings |
| post_approve | Approve for auto-publish |
| post_schedule | Set publication time |
| Visuals | |
| post_image | Generate cover image |
| post_carousel | Create carousel slides |
| post_carousel_companion | Auto-generate from post text |
| post_carousel_compile | Compile slides into PDF |
| post_carousel_regenerate | Fix a single slide |
| post_carousel_delete | Remove a carousel |
| post_carousel_status | Check carousel state |
| post_carousel_schedule | Schedule carousel publish |
| Engagement | |
| post_comment | Auto-firing follow-up comment |
| post_comments_list | List queued comments |
| post_comment_update | Edit a scheduled comment |
| post_comment_delete | Remove a comment |
Troubleshooting
"Invalid or missing API key"
Tools not showing up
LinkedIn publish errors
Questions? Feedback? Reach out directly — we're building this with you.