MCP server
GTM Otto Official
com.gtmotto/linkedin
Checked 26 Oct 2026, 08:29 UTC · Connected to it and listed its tools
Self-driving LinkedIn prospecting: it sources, warms and invites daily. You approve every message.
Working at last checkVerified publisher: gtmotto.comAbout 8,778 tokens per request once connected21 tools
https://agent.gtmotto.com/mcp
At a glance
- Type
- MCP server
- Publisher
- gtmotto.com (verified by the MCP Registry)
- Status
- Working at last check
- Tools
- 21
- Token cost
- About 8,778 tokens per request
- Sets up in
- Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Antigravity, ChatGPT, OpenAI API, Grok
- Last checked
- 26 Oct 2026, 08:29 UTC
Connect it to your agent
Opens the app, which shows the server and asks you to confirm. For other apps, copy the setup below.
Claude Code
claude mcp add --transport http linkedin https://agent.gtmotto.com/mcp
Claude Desktop
Settings → Connectors → Add custom connector, and paste the URL.
Codex (config.toml)
[mcp_servers.linkedin] url = "https://agent.gtmotto.com/mcp"
Gemini CLI
{"mcpServers":{"linkedin":{"httpUrl":"https://agent.gtmotto.com/mcp"}}}
Cursor
{"mcpServers":{"linkedin":{"url":"https://agent.gtmotto.com/mcp"}}}
VS Code
{"servers":{"linkedin":{"type":"http","url":"https://agent.gtmotto.com/mcp"}}}
Antigravity
agy mcp add linkedin https://agent.gtmotto.com/mcp
ChatGPT
Settings → Apps & Connectors → Advanced settings: turn on Developer mode, then Create a connector and paste the URL. Which plans can do this varies.
OpenAI API (Responses tools)
{"type":"mcp","server_label":"linkedin","server_url":"https://agent.gtmotto.com/mcp","require_approval":"always"}
Grok (xAI API tools)
{"type":"mcp","server_label":"linkedin","server_url":"https://agent.gtmotto.com/mcp"}
Tools
gtm_approve~167 tokens
Approve ONE drafted action by its approvalId (from gtm_list_approvals). It then leaves on the seat's next slot, inside LinkedIn's limits — this is the human's tap, moved from the cockpit to the chat, so ONLY call it after showing them the draft and getting a yes in this conversation. An already-decigtm_configure_source~1398 tokens
Write a lane's settings — upload an account list, set the Post-discovery intent and anchors, change the job keywords, move a gate. MERGE semantics: only the fields you send change. Lists (companies, postUrls, competitors) REPLACE by default; pass listMode 'append' to add to what is there (deduped, cgtm_connect_linkedin~195 tokens
The link a human opens to connect (or reconnect) their LinkedIn account to a play — the one cockpit step the play cannot run without. Hand the URL to the human, tell them to say when it is done, then call gtm_linkedin_status: the seat reads `classic` or `sales_navigator` once bound. The link expiresgtm_create_play~1914 tokens
Create a fully-configured play in one call: the product (an existing productId, or a websiteUrl which seeds one and kicks its research), the play itself, the ICP facets, which sourcing lanes are on, the autonomy ladder and the caps. Three rules are enforced server-side and cannot be talked around. (gtm_estimate_icp~252 tokens
How big an audience a CANDIDATE ICP would reach — '≈ N companies match' — before committing to it. Writes nothing: no play, no ICP row, no cache. Use it to iterate (propose facets → see 40 → widen the locations → see 900 → then create the play). Returns null when the data provider has no key configugtm_forget_harvested_posts~441 tokens
The tuning escape hatch for the post lanes. A post lane remembers every post it already paid to harvest so it never buys the same engagers twice — which makes it impossible to TUNE: change the intent or a gate, run, and the answer is 'no new posts since last time'. This clears that memory so the nexgtm_linkedin_status~196 tokens
The play's LinkedIn seat and today's headroom against the LinkedIn limits. States: `no_seat` (nothing connected — the play cannot act), `seat_broken` (the account was disconnected or deleted; the queue is parked until a human reconnects), `pending`, `classic`, or `sales_navigator` (which search backgtm_list_approvals~169 tokens
Every drafted action that waits for the human — an invite note, a first message, a follow-up, a reply or a comment the planner wrote — with the draft, the 'why now', the lead, and a cockpit link. One play, or the whole workspace when playId is omitted. Show each draft to the human before gtm_approvegtm_list_plays~129 tokens
Every play in the workspace with enough context to route on: which product it sells, whether it is active or paused, whether a LinkedIn seat is actually connected (`seatConnected: false` means the play cannot act, whatever its status says), and how its leads are spread across the pipeline stages. Regtm_play_stats~174 tokens
The play's Stats screen: the pipeline (leads sourced → warmed → invited → new connections → conversations started) over four windows — all time, last 30 days, last 7 days, last 24 hours — each windowed count paired with the window before it as a percentage delta. 'Conversations started' counts realgtm_preview_source~492 tokens
Dry-run ONE lane: '≈ N people match' and a 10-person sample, WITHOUT inserting a lead, spending the day's budget or moving the run clock. Same query, same gates, same scorers as a real run, on up to 50 people — so what it shows is what a run would keep. `size.precision` is honest: 'exact' (the querygtm_reject~134 tokens
Reject (skip) ONE drafted action by its approvalId. Nothing is sent; the planner records the decline and re-plans around it instead of proposing the same step again. Ask the human first, as for gtm_approve.gtm_run_source~489 tokens
'Run once now' — run ONE lane immediately through the same code the sourcing tick runs, with force: an OFF lane still runs (that is what run-once means while configuring), a DRAFT play still runs (how you try a lane before launch), a PAUSED play does not. REAL: provider calls are made, leads are insgtm_set_source~418 tokens
Switch a lane on or off — the toggle on the Sources list. Switching ON a lane that has nothing to run on (no companies, no intent/anchors/posts, no role) is refused: configure it first. An empty ICP is not a refusal — people_search may go on ahead of the ICP and comes back `blocked: icp_empty` untilgtm_show_play~199 tokens
ONE play in full — everything needed to judge it or copy it into a better one: goal and voice, the account's daily cap and working hours (shared by every play on the seat), the ICP facets, the five sourcing lanes with their config and last run, the autonomy ladder (which rungs run alone and which wagtm_show_sources~332 tokens
All five sourcing lanes of a play, configured or not — the read to make before touching any of them. Per lane: `configured`, `on`, the parsed `config` (defaults filled), the cockpit's `summary` (null = needs setup), `blocked` (why it cannot run, judged without running: needs_config / icp_empty / nulgtm_source_runs~414 tokens
The run history of ONE lane, newest first — the funnel over time (scanned → dropped by fit → dropped by intent → added / duplicates / capped), the ICP facets LinkedIn could not filter on, and the provider's status and message when it refused. Use it to tell 'the query returns nobody' from 'everyonegtm_sources_reference~197 tokens
THE REFERENCE for configuring sourcing lanes — read it before your first gtm_configure_source / gtm_set_source / gtm_run_source call. Every lane (people_search, competitor_posts a.k.a. Post discovery, job_offers, account_list, and the retired post_engagers), every config field with its meaning, defagtm_update_icp~376 tokens
Change the ICP a play runs — the query behind people_search and the fit gate on every other lane. Seven string arrays, plain words (gtmotto normalises 'Swiss' → Switzerland, 'Fintech' → Financial Services itself): titles, seniority, languages, industries, sizes (headcount bands like '11-50'), locatigtm_update_play~559 tokens
Change a play's own knobs — name, goal, voice — its two switches, and the ACCOUNT's pacing (daily action cap, working hours: shared by every play on the LinkedIn account, not per play). `paused: true` is the human's stop button (nothing runs, nothing is sent); `paused: false` resumes. `status: 'actigtm_whoami~133 tokens
Who this key belongs to, and what the workspace may do: org name, plan, subscription status, how many products and plays exist, and the LEAD METER (leads added this calendar month, the plan's cap, and what is left). Start here — the remaining lead allowance is the one number that changes what is wor
Browse
Related MCP servers
- Linkedin Buying Signals
Find B2B prospects showing buying signals on LinkedIn and draft the outreach. - DealMachine
Search and enrich US property, owner, people, and company data for sales and lead generation. - Otto Intel
Otto AI hosted MCP: 16 pay-per-call market-intelligence tools, USDC via x402 on Base, no API keys. - Saber
Sales intelligence — research companies, qualify prospects, and find contacts. - Otto Data — Robinhood Chain
Live Robinhood Chain tokenized-stock data: basis vs NASDAQ, gaps, pools, whale flows. - Rankparse
SEO MCP server — backlinks, domain authority, tech stack, and 18+ tools via Common Crawl. - Prospect Intelligence
B2B company research and work-email lookup for AI agents. Pay per call in USDC on Base via x402. - Arcnautical
Screen any vessel by IMO for sanctions, ownership opacity and vetting grade. Keyless check included.
Badge for your README
[](https://aptlynx.net/servers/com.gtmotto/linkedin)
Listing text is written by the maker; AptLynx lists tools and does not vouch for them. Find another tool · Browse by topic · For agents