La Growth Machine MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@La Growth Machine MCP Server Search for a lead with email john@example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
La Growth Machine MCP Server
A Model Context Protocol (MCP) server that wraps the full La Growth Machine API, giving Claude (and any MCP-compatible client) direct access to your LGM workspace.
Features
27 tools covering every LGM API endpoint:
Category | Tools |
Members |
|
Identities |
|
Audiences |
|
Leads |
|
Campaigns |
|
Inbox Webhooks |
|
Inbox Messaging |
|
Website Visitors |
|
Conversations |
|
Related MCP server: Waalaxy MCP Server
Prerequisites
Node.js >= 18
A La Growth Machine account with API access (Business plan, currently at 100 EUR/month)
Your LGM API key from Settings > API
Installation
git clone https://github.com/GigRadar/lgm-mcp-server.git
cd lgm-mcp-server
npm install
npm run buildClaude Desktop Setup
Add the following to your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"lgm": {
"command": "node",
"args": ["/absolute/path/to/lgm-mcp-server/dist/index.js"],
"env": {
"LGM_API_KEY": "your-api-key-here"
}
}
}
}Replace /absolute/path/to/lgm-mcp-server with the actual path where you cloned the repo, and your-api-key-here with your LGM API key.
Then restart Claude Desktop to pick up the new server.
Claude Code Setup
claude mcp add lgm -- node /absolute/path/to/lgm-mcp-server/dist/index.jsSet the environment variable before launching:
export LGM_API_KEY=your-api-key-hereUsage Examples
Once connected, you can ask Claude things like:
"List all my LGM campaigns and their stats"
"Search for a lead by email john@example.com"
"Create a new lead in audience X with these details..."
"Send a LinkedIn message to https://linkedin.com/in/someone saying..."
"Show me the activity logs for lead ID abc123"
"Set up a webhook to receive inbox events at https://my-server.com/webhook"
Development
npm run build # Compile TypeScript
npm run test # Run unit tests
npm run test:e2e # Run E2E tests (requires LGM_API_KEY)
npm run test:all # Run all testsAPI Reference
Base URL: https://apiv2.lagrowthmachine.com/flow
All requests are authenticated via apikey query parameter. Rate limit: 50 calls per 10 seconds.
Full API docs: Postman Documentation
Known Limitations
POST /inbox/emailcan only reply to existing email threads — it cannot initiate new email conversations. You must provide areplyToMessageId(fromget_conversation_messages) or setreplyInLastThread: true. Use eitherleadIdorleadEmail, not both.
License
ISC
Available Tools
27 toolscreate_audience_from_linkedinB
Import leads into an audience from a LinkedIn URL (regular search, Sales Navigator, or post URL)
Inputs: audience (required), identityId (required), linkedinUrl (required), linkedinPostCategory, +1 more.
create_inbox_webhookA
Create an inbox webhook for real-time notifications on inbox events (LinkedIn and Email messages)
Inputs: url (required), name (required), campaigns.
create_or_update_leadB
Create a new lead or update an existing lead in a specified audience
Inputs: audience (required), phone, twitter, jobTitle, +8 more.
delete_inbox_webhookA
Delete an inbox webhook by its ID
Inputs: webhookId (required).
edit_conversation_noteB
Add or replace a note on an inbox conversation. Identify the conversation by conversationId, or by lead identifiers.
Inputs: mode (required), note (required), email, leadId, +5 more.
get_audience_detailC
Get detailed information about a specific audience
Inputs: audienceId (required).
get_audience_leadsB
List leads in a specific audience with pagination
Inputs: audienceId (required), skip, limit.
get_campaignB
Get a single campaign by ID with full details
Inputs: campaignId (required).
get_campaign_leads_statsA
Get per-lead statistics for a campaign. Supports cursor-based pagination (getLeadsAfter/getLeadsBefore) for simple page-by-page access, OR offset-based pagination (skip/limit) and status filtering — when skip>0 or status is provided, all pages are fetched client-side and then filtered/sliced.
Inputs: campaignId (required), skip, limit, status, +2 more.
get_campaign_messagesC
Get messages sent in a campaign
Inputs: campaignId (required).
get_campaignsB
Retrieve all campaigns with pagination support (max 25 per page)
Inputs: skip, limit.
get_campaign_statsB
Get engagement statistics for a campaign (replies, conversions, channel breakdowns)
Inputs: campaignId (required).
get_conversation_messagesC
Get messages from a specific conversation with pagination
Inputs: conversationId (required), page.
get_lead_conversationsB
Get all conversations for a specific lead across channels
Inputs: leadId (required).
get_lead_logsB
Get activity logs for a specific lead (messages sent, enrichments, status changes, etc.)
Inputs: leadId (required).
list_audiencesB
List all audiences in your LGM account. Audiences are groups of leads targeted in campaigns.
Inputs: no named parameters.
list_identitiesB
List all connected identities in your LGM account. An identity is the profile (LinkedIn, email, etc.) used to send messages.
Inputs: no named parameters.
list_inbox_webhooksA
List all inbox webhooks configured in your workspace
Inputs: no named parameters.
list_membersA
List all members (users) associated with your LGM workspace
Inputs: no named parameters.
rb2b_native_webhookB
Webhook endpoint for RB2B website visitor tracking. Each visitor is pushed into the specified audience.
Inputs: audienceName.
remove_lead_from_audiencesA
Remove a lead from one or more audiences. Identify the lead by at least one identifier.
Inputs: audience (required), crm_id, twitter, lastname, +4 more.
search_leadB
Search for a lead by email, LinkedIn URL, lead ID, name, or company
Inputs: email, leadId, lastname, firstname, +3 more.
send_email_messageA
Reply to an existing email thread with a lead. Cannot initiate new email conversations — use replyToMessageId (get it from get_conversation_messages) or replyInLastThread. Requires either leadId or leadEmail (not both).
Inputs: message (required), identityId (required), cc, bcc, +5 more.
send_linkedin_messageA
Send a LinkedIn text or voice message to a lead. Requires either leadId or linkedinUrl, and either message or audioUrl.
Inputs: memberId (required), identityId (required), leadId, message, +2 more.
update_lead_statusB
Update the status of a lead within specific campaigns. Identify the lead by at least one identifier.
Inputs: status (required), campaign (required), crm_id, twitter, +5 more.
vector_native_webhookB
Webhook endpoint for Vector website visitor tracking. Each visitor is pushed into the specified audience.
Inputs: audienceName.
warmly_native_webhookB
Webhook endpoint for Warmly website visitor tracking. Each visitor is pushed into the specified audience.
Inputs: audienceName.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 27 tools
Each tool targets a distinct resource or action: members, audiences, leads, identities, campaigns, webhooks, and messaging. Even overlapping areas like lead search vs. audience leads are clearly differentiated by the scope. The three webhook tools are for different external services, avoiding confusion.
Most tools follow a consistent verb_noun pattern in snake_case (e.g., list_members, get_audience_detail, create_or_update_lead). The only deviation is the three native webhook tools (rb2b_native_webhook, etc.) which lack a verb prefix, but this is a minor inconsistency given their endpoint nature.
With 27 tools, the server is comprehensive and covers multiple domains (audiences, leads, campaigns, messaging, webhooks). While the count is on the higher side, each tool has a clear purpose and the scope justifies the number. It is slightly above ideal but still well-scoped.
The server has significant lifecycle gaps: there is no way to create or delete campaigns, no delete audience or delete lead, and no update audience. The focus is heavily on reading and sending messages, but full CRUD operations are missing for key resources, which will cause agent failures in workflows requiring deletion or creation of campaigns.
Maintenance
Related MCP Connectors
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Run B2B outreach from your AI agent: 250+ tools for campaigns, leads, LinkedIn and email workflows.
LinkedIn outreach MCP server — 19 tools for AI agents to prospect, sequence, and manage contacts.
Drive a GetSales workspace: tables, people, companies, enrichment, workflows, inbox, tasks, signals.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceFastMCP server exposing the full operational surface of the Apollo.io REST API to AI assistants. Provides 27 tools for outbound sales automation including campaign health, sequence management, mailbox warmup, CRM operations, and programmatic template/sequence editing with audit logging.3MIT
- AlicenseBqualityDmaintenanceEnables users to manage Waalaxy LinkedIn automation campaigns through MCP tools using browser automation (Playwright) to interact with the Waalaxy web interface.62Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI agents to perform go-to-market workflows such as company and contact enrichment, CRM querying, and controlled, audited writes to a CRM through MCP tools callable from any MCP client.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables any MCP client to operate a SmartSend workspace through its REST API — looking up and searching customers, managing tags, lists, custom fields and blacklists, and sending or scheduling WhatsApp template messages, flows and push notifications. All 31 tools are scoped to a single organization's API key, with destructive sends flagged for confirmation.MIT