Skip to content
GTM Otto logo

GTM Otto MCP server

Which MCP servers are GTM Otto's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-21

← Back to GTM Otto

Whose server it is
  • Registry namecom.gtmotto/linkedinverified in the MCP registry

The registry name sits under gtmotto.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-21
  • Stateanswerschecked 2026-10-21
  • Tools21
  • Server calls itselfgtmotto
  • Server version1.2.0
  • Protocol version2025-06-18

On 2026-10-21 the server answered initialize and tools/list without a sign-in. First answer in 1017 ms.

Should an agent connect itNot proven either way yet
  • Whether its tools do the product's job has not been judged yet.

Once connected

  • gtm_create_play, gtm_set_source, gtm_update_icp, gtm_update_play change data without a sign-in: anyone with the address can call them.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 7, the first on 2026-10-21
  • INITE MCP score66 of 100answers 98 · definitions 98 · context 75 · use 8 · connects 100 · lowered by the warning signs below
  • Use1 GitHub stars
  • Answered100% of days7 of 7 daily checks
  • Median first answer1225 ms
  • Space in an agent's context≈ 7,677 tokensthe definitions of all its tools (21), which an agent carries on every turn
  • Tool definitionsA · 98 of 100
  • Typed results0 of 21 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a description: in 3 of 21

What an agent can do with it

  • not sure · find buyers from post engagers and competitor followers
  • not sure · send personal connection invites and first messages
  • cannot · follow up with leads and book meetings

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that change data, on a server that answers without a sign-in: gtm_create_play, gtm_set_source, gtm_update_icp, gtm_update_play

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers21 tools · read 2026-10-21
  • gtm_whoami

    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…

  • gtm_list_plays

    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…

  • gtm_show_play

    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…

  • gtm_play_stats

    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…

  • gtm_linkedin_status

    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)…

  • gtm_estimate_icp

    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…

  • gtm_create_play

    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…

  • gtm_sources_reference

    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…

  • gtm_show_sources

    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…

  • gtm_source_runs

    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…

  • gtm_configure_source

    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…

  • gtm_set_source

    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…

  • gtm_preview_source

    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…

  • gtm_run_source

    '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…

  • gtm_forget_harvested_posts

    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…

  • gtm_update_icp

    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…

  • gtm_update_play

    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…

  • gtm_connect_linkedin

    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…

  • gtm_list_approvals

    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…

  • gtm_approve

    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…

  • gtm_reject

    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.

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "linkedin": {
      "type": "http",
      "url": "https://agent.gtmotto.com/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http gtmotto https://agent.gtmotto.com/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://agent.gtmotto.com/mcp as a custom connector in the settings.

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.