Your go-to-market plan, plays and opportunities from gtm.help, inside any AI agent.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Save a note about the business so the growth plan and the consultant remember it (results, context, constraints).
The note to remember.
Workspace id from list_workspaces.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Save a note about the business so the growth plan and the consultant remember it (results, context, constraints).
| Argument | Type | Description |
|---|---|---|
| note* | string | The note to remember. |
| business_id* | string | Workspace id from list_workspaces. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"business_id",
"note"
],
"properties": {
"note": {
"type": "string",
"description": "The note to remember."
},
"business_id": {
"type": "string",
"description": "Workspace id from list_workspaces."
}
}
}Analyse any website and return three high-leverage growth plays it could start this week. Free — no subscription required.
| Argument | Type | Description |
|---|---|---|
| url* | string | The website to analyse, e.g. acme.com or https://acme.com |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The website to analyse, e.g. acme.com or https://acme.com"
}
}
}Mark a growth play as shipped (or reopen it). Completing a play unlocks the next one in the ranked plan.
| Argument | Type | Description |
|---|---|---|
| done | boolean | Set false to reopen the play. Defaults to true. |
| note | string | Optional note about what was shipped. |
| play_id* | string | Play id from get_plan. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"play_id"
],
"properties": {
"done": {
"type": "boolean",
"description": "Set false to reopen the play. Defaults to true."
},
"note": {
"type": "string",
"description": "Optional note about what was shipped."
},
"play_id": {
"type": "string",
"description": "Play id from get_plan."
}
}
}Write a reply for one Reddit, LinkedIn or X opportunity from list_opportunities, using the business's own context and the workspace's writing settings (karma-safe, mention business). Returns the text and the exact link to paste it at. gtm.help never posts on the user's behalf — the user copies, edits and posts it themselves.
| Argument | Type | Description |
|---|---|---|
| tone | string | default, short, detailed, or no-pitch (never names the business). Defaults to default. |
| opportunity_id* | string | Opportunity id from list_opportunities. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"opportunity_id"
],
"properties": {
"tone": {
"enum": [
"default",
"short",
"detailed",
"no-pitch"
],
"type": "string",
"description": "default, short, detailed, or no-pitch (never names the business). Defaults to default."
},
"opportunity_id": {
"type": "string",
"description": "Opportunity id from list_opportunities."
}
}
}Read one workspace's full profile — website, description, audience, industry, stage, goal, budget, hours per week, competitors, channels, what has been tried — plus the notes stored with add_business_note and a quick progress summary. Use it before giving advice so it fits this business.
| Argument | Type | Description |
|---|---|---|
| business_id* | string | Workspace id from list_workspaces. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"business_id"
],
"properties": {
"business_id": {
"type": "string",
"description": "Workspace id from list_workspaces."
}
}
}Read the ranked growth plays for one workspace. Returns title, category, fit score, effort, budget, tools and status, ordered by rank.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many plays to return. Defaults to 20. |
| status | string | Filter by completion state. Defaults to open plays. |
| business_id* | string | Workspace id from list_workspaces. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"business_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "How many plays to return. Defaults to 20."
},
"status": {
"enum": [
"all",
"open",
"done"
],
"type": "string",
"description": "Filter by completion state. Defaults to open plays."
},
"business_id": {
"type": "string",
"description": "Workspace id from list_workspaces."
}
}
}Read the full detail of one growth play: rationale, steps, tools, budget and success metric.
| Argument | Type | Description |
|---|---|---|
| play_id* | string | Play id from get_plan. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"play_id"
],
"properties": {
"play_id": {
"type": "string",
"description": "Play id from get_plan."
}
}
}Show which tools a workspace has connected (Google Analytics, Search Console, Composio apps such as HubSpot, Stripe, Shopify, Mailchimp and more) with their health, and the most recent metric summary synced from each. Read-only.
| Argument | Type | Description |
|---|---|---|
| business_id* | string | Workspace id from list_workspaces. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"business_id"
],
"properties": {
"business_id": {
"type": "string",
"description": "Workspace id from list_workspaces."
}
}
}Read the user's gtm.help billing history: invoice number, date, status, amount, tax and links to the PDF and hosted receipt. Only the signed-in customer's own invoices are visible.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many recent invoices. Defaults to 12, max 50. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "How many recent invoices. Defaults to 12, max 50."
}
}
}Read the Reddit, LinkedIn and X conversations the agents found for a workspace: threads, posts and comments where the user's business can genuinely help. Ranked by fit and heat. Use draft_reply to write an answer and update_opportunity to record what happened. Nothing is ever posted automatically.
| Argument | Type | Description |
|---|---|---|
| sort | string | Order. Defaults to best (fit + heat). |
| agent | string | Which network: reddit, linkedin, x or all. Defaults to all. |
| limit | integer | How many to return. Defaults to 10, max 50. |
| status | string | open = not yet answered, drafted = has a saved draft, replied = marked as answered. Defaults to open (which includes drafted). |
| business_id* | string | Workspace id from list_workspaces. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"business_id"
],
"properties": {
"sort": {
"enum": [
"best",
"hottest",
"newest",
"most_comments"
],
"type": "string",
"description": "Order. Defaults to best (fit + heat)."
},
"agent": {
"enum": [
"all",
"reddit",
"linkedin",
"x"
],
"type": "string",
"description": "Which network: reddit, linkedin, x or all. Defaults to all."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "How many to return. Defaults to 10, max 50."
},
"status": {
"enum": [
"open",
"drafted",
"replied",
"all"
],
"type": "string",
"description": "open = not yet answered, drafted = has a saved draft, replied = marked as answered. Defaults to open (which includes drafted)."
},
"business_id": {
"type": "string",
"description": "Workspace id from list_workspaces."
}
}
}List the growth workspaces (businesses) belonging to the signed-in user, with their website, goal, stage and budget.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Create a public, shareable summary of recent progress for a workspace. Returns a URL that can be pasted into a chat, tweet, report or Slack thread.
| Argument | Type | Description |
|---|---|---|
| focus | string | Time window for completed plays: week, month, or all time. Defaults to week. |
| title | string | Optional title for the recap card. |
| business_id* | string | Workspace id from list_workspaces. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"business_id"
],
"properties": {
"focus": {
"enum": [
"week",
"month",
"all"
],
"type": "string",
"description": "Time window for completed plays: week, month, or all time. Defaults to week."
},
"title": {
"type": "string",
"description": "Optional title for the recap card."
},
"business_id": {
"type": "string",
"description": "Workspace id from list_workspaces."
}
}
}Save the finished work for one play (copy, code or research, in markdown) onto the founder's gtm.help board as Ready to review. Use this whenever you have written the work for a play, instead of leaving it only in chat. It never marks the play done and never publishes anything.
| Argument | Type | Description |
|---|---|---|
| kind | string | copy_kit (copy/emails/posts), code (markup/files) or audit (research). Defaults to copy_kit. |
| play_id* | string | Play id from get_plan. |
| agent_name | string | Your name, e.g. Claude or Cursor, shown on the board. |
| deliverable* | string | The finished work in markdown, ready to copy and use. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"play_id",
"deliverable"
],
"properties": {
"kind": {
"enum": [
"copy_kit",
"code",
"audit"
],
"type": "string",
"description": "copy_kit (copy/emails/posts), code (markup/files) or audit (research). Defaults to copy_kit."
},
"play_id": {
"type": "string",
"description": "Play id from get_plan."
},
"agent_name": {
"type": "string",
"description": "Your name, e.g. Claude or Cursor, shown on the board."
},
"deliverable": {
"type": "string",
"description": "The finished work in markdown, ready to copy and use."
}
}
}Record what happened to a Reddit, LinkedIn or X opportunity: replied (the user posted their answer — include the link), ignored (not a fit, with an optional reason that sharpens future ranking), snoozed (come back later) or open (put it back on the board).
| Argument | Type | Description |
|---|---|---|
| reason | string | Why it was ignored, e.g. 'wrong audience' or 'already answered'. Shapes future ranking. |
| status* | string | New state. |
| posted_url | string | Link to the user's posted reply, when status is replied. |
| snooze_days | integer | Days to hide it when snoozed. Defaults to 3. |
| opportunity_id* | string | Opportunity id from list_opportunities. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"opportunity_id",
"status"
],
"properties": {
"reason": {
"type": "string",
"description": "Why it was ignored, e.g. 'wrong audience' or 'already answered'. Shapes future ranking."
},
"status": {
"enum": [
"replied",
"ignored",
"snoozed",
"open"
],
"type": "string",
"description": "New state."
},
"posted_url": {
"type": "string",
"description": "Link to the user's posted reply, when status is replied."
},
"snooze_days": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Days to hide it when snoozed. Defaults to 3."
},
"opportunity_id": {
"type": "string",
"description": "Opportunity id from list_opportunities."
}
}
}Change a growth play's state: start it (in_progress), park it for later (snoozed, with days), skip it for good (skipped, with a reason), reopen it (open) or finish it (done). Mirrors the To do / In progress / Done / Parked board in the app.
| Argument | Type | Description |
|---|---|---|
| reason | string | Why it was parked or skipped — the best signal for the next plan. |
| status* | string | New state. |
| play_id* | string | Play id from get_plan. |
| snooze_days | integer | Days to park it when snoozed. Defaults to 7. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"play_id",
"status"
],
"properties": {
"reason": {
"type": "string",
"description": "Why it was parked or skipped — the best signal for the next plan."
},
"status": {
"enum": [
"open",
"in_progress",
"snoozed",
"skipped",
"done"
],
"type": "string",
"description": "New state."
},
"play_id": {
"type": "string",
"description": "Play id from get_plan."
},
"snooze_days": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Days to park it when snoozed. Defaults to 7."
}
}
}Read or change the watch lists behind the Reddit, LinkedIn or X agent for a workspace: keywords, topics the business can answer, competitors, people/accounts, and (Reddit only) subreddits. Each list holds up to 10 entries. Call with no add/remove to just read them.
| Argument | Type | Description |
|---|---|---|
| add | array | Entries to add. |
| list | string | Which list to change. Required when adding or removing. |
| agent* | string | reddit, linkedin or x. |
| remove | array | Entries to remove. |
| business_id* | string | Workspace id from list_workspaces. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"business_id",
"agent"
],
"properties": {
"add": {
"type": "array",
"items": {
"type": "string"
},
"description": "Entries to add."
},
"list": {
"enum": [
"keywords",
"topics",
"competitors",
"people",
"subreddits"
],
"type": "string",
"description": "Which list to change. Required when adding or removing."
},
"agent": {
"enum": [
"reddit",
"linkedin",
"x"
],
"type": "string",
"description": "reddit, linkedin or x."
},
"remove": {
"type": "array",
"items": {
"type": "string"
},
"description": "Entries to remove."
},
"business_id": {
"type": "string",
"description": "Workspace id from list_workspaces."
}
}
}