La Growth Machine MCP server for AI agents

Live

BEARER TOKEN

SALES OUTREACH

Marketing

La Growth Machine gives your agent multichannel sales outreach across LinkedIn and email: build audiences, create, update, and enrich leads, run and pause campaigns, and read and reply to inbox conversations.

  • Per-user credentials: each call uses the actual user's access token, never a shared bot.
  • Encrypted per-tenant vault: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: pre-call scope check, 90-day SIEM-exportable audit chain.
La Growth Machine
agent · Acme Q3
Run
How is the Series A Founders campaign performing?
S
lagrowthmachine_get_campaign_stats
137ms
Outbound agent
Series A Founders has 320 leads in its audience. 41 have replied and 12 are marked converted.
Sources: La Growth Machine campaign stats
lagrowthmachine
1 campaign
18:29
Message Claude...

Tools your outbound agent reaches for on La Growth Machine, scoped per user.

CALL ANY TOOL
46 tools for sales outreach in La Growth Machine: build audiences and import leads, create, update, and enrich leads, run and pause campaigns, edit campaign messages, and read, send, and archive inbox conversations.
lagrowthmachine_add_campaign_step_message
Add campaign step message
Add a message to a campaign step that has no message yet. Returns the new message id, step id, channel, content and subject. Use get_campaign_steps to find steps where hasMessage is false. Use edit_campaign_message to change an existing message.
Parameters
Name
Type
Required
Description
campaign_id
string
Required
ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.
new_html
string
Required
The message body, in the `newHtml` format.
step_id
string
Required
ID of the step, the `stepId` returned by `GET /campaigns/{campaignId}/steps`.
subject_new_html
string
Optional
Email steps only: the subject, as a single `<p>…</p>` containing text, `<var/>` or `<spin>`. Ignored for LinkedIn and Twitter steps.
lagrowthmachine_archive_conversation
Archive conversation
lagrowthmachine_complete_call_manual_task
Complete call manual task
lagrowthmachine_complete_message_manual_task
Complete message manual task
lagrowthmachine_create_audience
Create audience
lagrowthmachine_delete_identity_preference
Delete identity preference
lagrowthmachine_edit_campaign_message
Edit campaign message
lagrowthmachine_enrich_lead
Enrich lead
lagrowthmachine_enrich_linkedin_post
Post enrich linkedin
lagrowthmachine_get_audience
Get audience
lagrowthmachine_get_audience_leads
Get audience leads
lagrowthmachine_get_campaign_lead_stats
Get campaign lead stats
lagrowthmachine_get_campaign_stats
Get campaign stats
lagrowthmachine_get_conversation_messages
Get conversation messages
lagrowthmachine_get_enrich_result
Get enrich result
lagrowthmachine_get_lead_logs
Get lead logs
lagrowthmachine_import_audience_from_linkedin
Import audience from linkedin
lagrowthmachine_list_audiences
List audiences
lagrowthmachine_list_campaigns
List campaigns
lagrowthmachine_list_identities
List identities
lagrowthmachine_list_members
List members
lagrowthmachine_list_public_campaigns
List public campaigns
lagrowthmachine_remove_lead_from_audiences
Remove lead from audiences
lagrowthmachine_search_conversations
Search conversations
lagrowthmachine_search_crm
Search crm
lagrowthmachine_send_email_message
Send email message
lagrowthmachine_snooze_conversation
Snooze conversation
lagrowthmachine_unarchive_conversation
Unarchive conversation
lagrowthmachine_update_campaign
Update campaign
lagrowthmachine_update_campaign_status
Update campaign status

For more tools, view docs.

Build your Agent
Same auth pattern across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

// La Growth Machine tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["lagrowthmachine"], toolNames: [
    "lagrowthmachine_list_campaigns",
    "lagrowthmachine_get_campaign_stats",
    "lagrowthmachine_update_campaign_status"] },
  pageSize: 100,
});

const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Show stats for the Series A Founders campaign and pause it" }] });
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["lagrowthmachine"] }, pageSize: 100,
});

const res = await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Show stats for the Series A Founders campaign and pause it" }],
  tools,
});

// Execute the tool call with the user's vaulted La Growth Machine access token
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["lagrowthmachine"] }, pageSize: 100,
});

const msg = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Show stats for the Series A Founders campaign and pause it" }],
  tools,
});

// Tool call runs with the user's vaulted La Growth Machine access token
await sk.tools.executeTool(msg.content, "user_123");
import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["lagrowthmachine"] }, pageSize: 100,
});

const agent = new Agent({
  name: "outbound_agent",
  model: "gemini-2.5-pro",
  instruction: "La Growth Machine tools scoped to this user",
  tools,
});

await agent.run("Show stats for the Series A Founders campaign and pause it");
Try these prompts
Copy any prompt into your agent. Each maps directly to a La Growth Machine tool. Click to copy, paste into your agent, done.
Campaigns
Copy the prompt
Copied
Show performance stats for the Series A Founders campaign.
Copy the prompt
Copied
Pause the Series A Founders campaign.
Copy the prompt
Copied
Duplicate the Series A Founders campaign for seed-stage founders.
Leads and audiences
Copy the prompt
Copied
Create an audience called Seed Founders.
Copy the prompt
Copied
Create or update a lead for jordan@acme.com with their company and job title.
Copy the prompt
Copied
Find a professional email and phone number for this lead.
Inbox
Copy the prompt
Copied
Search inbox conversations with replies from this week.
Copy the prompt
Copied
Send Jordan an email reply with our calendar link.
Copy the prompt
Copied
Snooze this conversation until next Monday.
SEE HOW AUTH WORKS
Each user connects their own La Growth Machine access token once, and Scalekit sends it with every call. Credentials stay vaulted, every call is scope checked, and every action is logged.
1
Authorize
Your user connects
La Growth Machine
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
La Growth Machine
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
La Growth Machine
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
La Growth Machine
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other sales and outreach connectors.
GTM and RevOps Teams
Outbound prospecting agent
Searches Apollo for prospects matching your ICP, scores and ranks them, drafts personalized outreach in Gmail, and logs every send to Google Sheets. Mail goes out as the rep, not from a shared inbox.
GTM and RevOps Teams
CRM AI agent
Reads the Granola transcript after every call, extracts next steps and updates the HubSpot record, drafts the follow-up in Gmail, and confirms in Slack, all on the rep's own delegated OAuth.
Test other agents
See the same per-user auth pattern across other sales and outreach connectors.
SALES
Outbound prospecting agent
Search Apollo for ICP matches, rank them, draft personalised Gmail outreach, and log every send to Google Sheets.
GTM
CRM AI agent
Turn each Granola call transcript into a HubSpot record update, a drafted Gmail follow-up, and a Slack recap.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared La Growth Machine access token looks fine in a demo. In production every LinkedIn message and campaign change looks like one service account, and you cannot tell which user triggered it. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared token
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
La Growth Machine today. Ten connectors tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access La Growth Machine as the user or through a shared token?
As the user. Each user connects their own La Growth Machine access token once, and Scalekit sends it with every call. Messages, lead changes, and campaign updates are attributed to that user in your audit trail, not a shared service account.
Where is the La Growth Machine access token stored?
In Scalekit's managed AES-256 token vault, namespaced per tenant. To rotate it, the user reconnects with a new access token. Revocation is a single dashboard action. Credentials never appear in prompts, logs, or LLM context.
Can I limit what the agent does in La Growth Machine?
Yes. Filter by tool name in listScopedTools to expose only what you want, for example campaign stats and inbox tools without lagrowthmachine_send_linkedin_message or lagrowthmachine_delete_identity_preference. Scalekit also enforces scope checks before every API call.
What happens when a user revokes La Growth Machine access?
The connection is invalidated on the next tool call. Subsequent requests for that user fail closed with a clear error. Other users in the tenant remain unaffected. The event is logged for audit.
Does enriching a lead use La Growth Machine credits?
Yes. lagrowthmachine_enrich_lead spends credits to find a professional email, a phone number, or LinkedIn profile fields for a lead, and lagrowthmachine_get_enrich_result reads the result. lagrowthmachine_get_credits shows the workspace's credit balance before you run it.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""lagrowthmachine"": {
""url"": ""https://mcp.scalekit.com/lagrowthmachine"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.lagrowthmachine]
url = ""https://mcp.scalekit.com/lagrowthmachine""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""lagrowthmachine"": {
""url"": ""https://mcp.scalekit.com/lagrowthmachine"",
""type"": ""http""
}
}
}