HomeGuidesBuild an AI SDR with Claude + MCP
Setup GuideNo-Code

How to Build an AI SDR with Claude + MCP

Most "AI SDR" content is theory. This is a real setup guide for a real, open-source MCP server — exact commands, exact config, and a walkthrough of using actual tools to research an account, draft outreach, and handle an objection.

~15 minute setup
18 real tools, zero fabricated steps

What MCP Is, and Why It Matters for Sales

Model Context Protocol (MCP) is an open standard that lets an AI model like Claude call out to external tools and data sources in the middle of a conversation, instead of only generating text from what it already knows. A program called an MCP server exposes a fixed list of tools — each with a name, a description, and an input schema — over a local connection. Claude Desktop or Claude Code connects to that server as a client, sees the tool list, and can call any of those tools when it decides one is useful for what you asked.

For sales teams this matters because it turns Claude from a chatbot that can talk about a research or drafting task into something that actually runs it. Ask a generic LLM to "research Acme Corp," and it either declines or guesses. Ask Claude connected to a sales-specific MCP server, and it calls a research_company tool built to structure exactly the fields an SDR needs — pain points, outreach angles, recent signals — every time, with a consistent output shape you can act on immediately.

This guide uses the GTM MCP Server, an open-source server shipped in this repo with 18 tools purpose-built for sales: 10 content-generation tools that work out of the box (research, email drafting, objection handling, discovery questions, competitive analysis) plus 8 tools with real HubSpot CRM API integration. See the full tool reference and interactive UI details for the complete picture — this guide focuses on getting it running and using it for a real prospecting task.

Prerequisites

Node.js and npm installed

The server is a Node/TypeScript project built with npm run build. A current Node LTS version is enough — it runs as native ESM.

Claude Desktop or Claude Code

Either works. Claude Desktop unlocks interactive UIs for six of the tools; Claude Code runs the same tools as text output from your terminal.

Comfort with a terminal

You'll run four commands and paste one JSON block. No programming knowledge required, but you do need to open a terminal.

A HubSpot private app key (optional)

Only needed if you want the 8 tools that write directly to HubSpot. Skip it and the other 10 tools work with no setup.

Step-by-Step Setup

These are the exact commands from the server's own README — nothing invented.

01

Clone the repository

The MCP server lives inside the gtm-skills monorepo, in the mcp-server/ directory.

git clone https://github.com/gtm-skills/gtm.git
cd gtm-skills/mcp-server
02

Install dependencies

Installs the MCP SDK and Zod, the only two runtime dependencies the server needs.

npm install
03

Build the server

Compiles TypeScript to dist/index.js. This step is required — dist/ is gitignored, so it does not ship in the repo. Skip it and Claude will have nothing to run.

npm run build
04

(Optional) Connect HubSpot CRM

Set this environment variable to unlock 8 additional tools that make real HubSpot API calls (create/update contacts and deals, log activity). Skip this step and the 10 content-generation tools still work with zero config.

export HUBSPOT_API_KEY=pat-na1-xxxxxxxx
05

Add the server to Claude Desktop

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json. Replace /absolute/path/to/ with the real path where you cloned the repo — Claude Desktop does not run from your project folder, so relative paths silently fail here.

{
  "mcpServers": {
    "gtm": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/dist/index.js"]
    }
  }
}

Using Claude Code instead? Add this to your project's .claude/settings.json — a relative path works there because Claude Code runs from your repo root:

Claude Code config
{
  "mcpServers": {
    "gtm": {
      "command": "node",
      "args": ["./mcp-server/dist/index.js"]
    }
  }
}
06

Restart Claude and verify the connection

Fully quit Claude Desktop (not just close the window) and relaunch it, since the config is only read on startup. Then start a new conversation and try:

Use the research_company tool to research Stripe for potential outreach.

Using It for a Real Sales Task

Here's the actual AI SDR motion end to end: research an account, draft outreach personalized to that research, then prep for the objection you'll hear on the first call. Each step below is a real tool from the server, with its real required inputs.

1

Research the target account

research_company

Required input: companyName. Optional: industry, focusAreas. In Claude Desktop this renders as an interactive Company Research Card with checklists; in Claude Code you get the same research as structured text.

Example prompt:
Use the research_company tool to research Acme Corp for outreach.
Focus areas: recent funding news, current tech stack, likely pain points.
2

Draft the outreach email

draft_cold_email

Required input: recipientName, recipientTitle, company, painPoint, yourProduct. Optional: signal (a trigger event) and tone. Feed it what research_company just found.

Example prompt:
Use draft_cold_email for:
- Recipient: Sarah Chen, VP of Sales at Acme Corp
- Pain point: manual CRM data entry slowing down the sales team
- Product: AI-powered CRM automation
- Signal: Acme just closed a Series B and is scaling the sales org
- Tone: direct
3

Pre-empt the likely objection

handle_objection

Required input: objection, context, yourProduct. Optional: competitorMentioned. Use it before the call, not just after — it returns a step-by-step response framework, not just a one-liner.

Example prompt:
Use handle_objection for:
- Objection: "We're happy with our current solution"
- Context: Enterprise deal, they use Salesforce, first outbound touch
- Product: AI-powered CRM automation

Closing the loop into your CRM

If you set HUBSPOT_API_KEY in setup step 4, you can extend this same conversation: use hubspot_create_contact to add Sarah Chen to HubSpot, then hubspot_log_activity to log the email you just sent — all without leaving Claude.

Troubleshooting

"No such tool" or the tools never show up

dist/ is in .gitignore — it does not come from git clone, it comes from npm run build. Confirm dist/index.js actually exists in mcp-server/ before touching your Claude config.

You edited the config but nothing changed

Claude Desktop reads claude_desktop_config.json on startup only. Fully quit the app (not just close the window) and relaunch it after every config edit.

Relative paths work in Claude Code but not Claude Desktop

Claude Desktop does not run from your project folder, so its config needs an absolute path to dist/index.js. Claude Code runs from your repo root, so the relative ./mcp-server/dist/index.js path in .claude/settings.json works there.

HubSpot tools are missing from the tool list

The 8 HubSpot tools only register once the server process can see a HUBSPOT_API_KEY environment variable at startup. No key, no HubSpot tools — the 10 content-generation tools are unaffected either way.

Module or syntax errors when the server starts

The server is a native ESM package ("type": "module" in package.json). Use a reasonably current Node.js LTS release if node dist/index.js throws ERR_MODULE_NOT_FOUND or similar.

FAQ

What is MCP (Model Context Protocol), in plain terms?

MCP is an open protocol that lets an AI model like Claude call out to external tools and data sources mid-conversation, instead of only generating text. A server process exposes a defined list of tools; Claude Desktop or Claude Code connects to that server locally and can invoke those tools as part of answering you.

Do I need to know how to code to set this up?

No. Every step here is a terminal command (git clone, npm install, npm run build) or a JSON config paste. You never write or edit TypeScript to get the server running — you only run the build step that compiles it.

Does this work with both Claude Desktop and Claude Code?

Yes, with the same server and dist/index.js build. Claude Desktop additionally renders interactive UIs (an email composer, a company research card, an objection framework, and three others) for six of the tools via MCP Apps. Claude Code gets the same underlying tools as structured text output.

Is the GTM MCP server actually free?

Yes. It is MIT-licensed and open source inside the gtm-skills repo, and it runs entirely on your own machine as a local process — there is no hosted service, account, or subscription involved in running it.

Do I need a HubSpot account to use it?

No. Ten of the eighteen tools — research, email and LinkedIn drafting, objection handling, discovery questions, competitive analysis — work with zero configuration. The eight HubSpot tools (create/update contacts and deals, log activity, read pipelines) only activate once you set HUBSPOT_API_KEY.

What is the difference between the individual tools and the agentic workflows?

Individual tools like research_company or draft_cold_email each handle one task per call. The server also ships six agentic workflows (account_strategy, full_sales_cycle, competitive_deal_workflow, reengagement_workflow, enterprise_expansion, objection_battlecard) that chain several tools together behind a single prompt for an entire motion, from cold research through a multi-touch outreach plan.

Want This Running in Minutes, Not Hours?

Prospeda ships the same AI-powered sales workflows with CRM integration and enrichment already connected — no cloning, building, or config editing required.