What it does
Post to LinkedIn feed
Install Taprun once
Taprun ships as a single MCP server exposing a catalog of compiled taps. One-time setup on macOS / Linux:
brew install LeonTing1010/tap/taprun
tap mcp connect
Or drop this into your claude_desktop_config.json (works identically in Claude Code, Cursor, Cline, Windsurf — any MCP host):
{
"mcpServers": {
"tap": {
"command": "tap",
"args": ["mcp", "start"]
}
}
}
Call linkedin/post
Terminal, once installed:
tap run linkedin/post
From the MCP host — exact same compiled plan, deterministic replay, zero LLM tokens:
tap.run({ site: "linkedin", name: "post" })
Why compile it once
This plan was forged once — the AI read linkedin, picked stable structural addresses (JSON-LD, ARIA, RSS, or declared API endpoints, in that priority order), and saved them to a .plan.json. Every replay since then has used zero LLM tokens. When linkedin ships a site change that breaks the extraction, tap verify surfaces it before your data goes stale — not after your pipeline silently writes garbage for a week.