Follow Up Boss MCP Server
Click on "Install 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., "@Follow Up Boss MCP ServerCreate a new deal for buyer Jane Smith worth $350k in our pipeline."
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.
Follow Up Boss MCP Server
Give any AI agent full access to your Follow Up Boss CRM via natural language.
"Find all leads tagged 'Hot' assigned to Sarah and add a note saying I called them"
"Create a deal for Jane Smith in the Buyers pipeline worth $450,000"
"List all appointments this week and update the ones marked Pending to Confirmed"
160 tools across 25 modules — full coverage of the Follow Up Boss API v1.
What is this?
This is a Model Context Protocol (MCP) server that wraps the Follow Up Boss API. Connect it to Claude, Cursor, Windsurf, or any MCP-compatible AI client and your agent can read and write your entire FUB account using plain English.
Example prompts:
"Find all people with the tag 'open house' who haven't been contacted in 30 days"
"Create a task for every person in the 'New Lead' stage to send a follow-up email"
"Show me all deals in the Listing pipeline worth more than $500k"
"Add Sarah Johnson as a relationship contact (spouse) for contact ID 1234"
"Send a bulk update setting stage to 'Active' for all people tagged 'webinar-2024'"
Related MCP server: followupboss-mcp-server
Tool Summary
Module | Tools | Description |
People | 17 | Contacts, relationships, attachments |
Appointments | 15 | Appointments, types, outcomes |
Deals | 14 | Deals, custom fields, attachments |
Templates | 12 | Email & text message templates |
Groups | 12 | Groups, teams, team inboxes |
Inbox Apps | 10 | Third-party inbox app integration |
Automations | 6 | Automations 2.0 management |
Ponds | 6 | Pond management and timeframes |
Webhooks | 6 | Webhook subscriptions |
Pipelines | 5 | Pipeline management |
Custom Fields | 5 | Custom field definitions |
Stages | 5 | Pipeline stage management |
Tasks | 5 | Task management |
Email Marketing | 5 | Campaigns and events |
Notes | 5 | Lead notes |
Action Plans | 4 | Action plan assignment |
Calls | 4 | Call logging |
Reactions | 4 | Reactions and threaded replies |
Events | 3 | Lead events |
Text Messages | 3 | SMS logging |
Users | 3 | User/agent management |
Smart Lists | 2 | Smart list access |
Identity | 2 | Account identity |
Convenience | 5 | Tag helpers, bulk update, email lookup |
Meta | 2 | Server info and help |
Total | 160 |
Safe mode (default): 23 delete/destructive tools are disabled — 137 tools active. Set
FUB_SAFE_MODE=falseto enable all 160.
Prerequisites
1. Node.js 18+
node --version # must be v18.0.0 or higher2. Follow Up Boss API Key
Log in to your Follow Up Boss account
Go to Admin → API (or visit
https://app.followupboss.com/2/api)Copy your API key — it starts with
fka_
3. (Optional) System Credentials
Some endpoints — automations, attachments, webhooks, inbox apps — are restricted to Registered Systems in FUB. To use these tools, you need:
FUB_SYSTEM— your registered system name (e.g.,"myapp")FUB_SYSTEM_KEY— your registered system key
Register your system at Admin → API → Registered Systems in your FUB account.
Installation
Run without installing (recommended)
# npx
npx @nerdsnipe-inc/follow-up-boss-mcp
# pnpm
pnpm dlx @nerdsnipe-inc/follow-up-boss-mcp
# bunx
bunx @nerdsnipe-inc/follow-up-boss-mcpInstall globally
npm install -g @nerdsnipe-inc/follow-up-boss-mcp
follow-up-boss-mcpConnecting to AI Clients
Claude Desktop
Edit your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here"
}
}
}
}With system credentials:
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here",
"FUB_SYSTEM": "your-system-name",
"FUB_SYSTEM_KEY": "your-system-key",
"FUB_SAFE_MODE": "false"
}
}
}
}Restart Claude Desktop after saving.
Claude Code (CLI)
claude mcp add follow-up-boss \
-e FUB_API_KEY=fka_your_api_key_here \
-- npx -y @nerdsnipe-inc/follow-up-boss-mcpOr add manually to .claude/mcp.json in your project:
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here"
}
}
}
}Cursor
Open Settings → MCP and add:
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here"
}
}
}
}Windsurf
Add to your Windsurf MCP config:
{
"mcpServers": {
"follow-up-boss": {
"command": "npx",
"args": ["-y", "@nerdsnipe-inc/follow-up-boss-mcp"],
"env": {
"FUB_API_KEY": "fka_your_api_key_here"
}
}
}
}HTTP Transport (for Claude.ai Custom Connectors)
This server also supports Streamable HTTP with OAuth 2.1 for use as a Claude.ai custom connector or any remote MCP client.
FUB_API_KEY=fka_your_key PORT=3000 node dist/index.js --httpOr use the startHttp export in your own server:
import { startHttp } from '@nerdsnipe-inc/follow-up-boss-mcp';
await startHttp({ port: 3000 });Any MCP-compatible client
Use the stdio transport command: npx -y @nerdsnipe-inc/follow-up-boss-mcp
Running from Source
git clone https://github.com/nerdsnipe-inc/follow-up-boss-mcp
cd follow-up-boss-mcp
npm install
# Development (no build needed)
FUB_API_KEY=fka_your_key npx tsx src/index.ts
# Build and run
npm run build
FUB_API_KEY=fka_your_key node dist/index.jsTool Reference
People (17 tools)
Tool | Description |
| List/search people with filtering by name, email, phone, tags, stage |
| Create a new person/contact |
| Get a single person by ID |
| Update an existing person |
| Delete (trash) a person by ID (safe mode blocked) |
| Check if a person already exists by email or phone |
| List unclaimed people in ponds |
| Claim an unclaimed person |
| Attach an externally-hosted file to a person (requires system creds) |
| Get a person attachment by ID |
| Update a person attachment |
| Delete a person attachment (safe mode blocked) |
| List relationships for a person |
| Create a relationship contact (Spouse, Brother, Partner, etc.) |
| Get a relationship by ID |
| Update a relationship contact |
| Delete a relationship (safe mode blocked) |
Appointments (15 tools)
Tool | Description |
| List appointments |
| Create an appointment |
| Get an appointment by ID |
| Update an appointment |
| Delete an appointment (safe mode blocked) |
| List appointment types |
| Create an appointment type |
| Get appointment type by ID |
| Update an appointment type |
| Delete an appointment type (safe mode blocked) |
| List appointment outcomes |
| Create an appointment outcome |
| Get appointment outcome by ID |
| Update an appointment outcome |
| Delete an appointment outcome (safe mode blocked) |
Deals (14 tools)
Tool | Description |
| List deals with filtering |
| Create a deal |
| Get a deal by ID |
| Update a deal |
| Delete a deal (safe mode blocked) |
| Attach a file to a deal (requires system creds) |
| Get a deal attachment by ID |
| Update a deal attachment |
| Delete a deal attachment (safe mode blocked) |
| List deal custom fields |
| Create a deal custom field |
| Get a deal custom field by ID |
| Update a deal custom field |
| Delete a deal custom field (safe mode blocked) |
Templates (12 tools)
Tool | Description |
| List email templates |
| Create an email template |
| Get an email template by ID |
| Update an email template |
| Merge an email template with a person's data |
| Delete an email template (safe mode blocked) |
| List text message templates |
| Create a text message template |
| Get a text message template by ID |
| Update a text message template |
| Merge a text message template with person data |
| Delete a text message template (safe mode blocked) |
Groups (12 tools)
Tool | Description |
| List all groups |
| List round robin groups |
| Create a group |
| Get a group by ID |
| Update a group |
| Delete a group (safe mode blocked) |
| List all teams |
| Create a team |
| Get a team by ID |
| Update a team |
| Delete a team (safe mode blocked) |
| List all team inboxes |
Inbox Apps (10 tools)
Tool | Description |
| Add a message to an inbox app conversation (requires system creds) |
| Update an inbox app message (requires system creds) |
| Add a note to an inbox app conversation (requires system creds) |
| Update an inbox app conversation status (requires system creds) |
| Get participants of an inbox app conversation (requires system creds) |
| Add a participant to a conversation (requires system creds) |
| Remove a participant from a conversation (requires system creds) |
| Install an inbox app for a user (requires system creds) |
| Deactivate an inbox app installation (requires system creds) |
| List inbox app installations (requires system creds) |
Automations (6 tools)
Tool | Description |
| List all Automations 2.0 automations (requires system creds) |
| Get an automation by ID (requires system creds) |
| List people in automations (requires system creds) |
| Get an automation-person entry (requires system creds) |
| Add a person to an automation |
| Update a person's automation status |
Ponds (6 tools)
Tool | Description |
| List all ponds |
| Create a pond |
| Get a pond by ID |
| Update a pond |
| Delete a pond (safe mode blocked) |
| List all timeframes |
Webhooks (6 tools)
Tool | Description |
| List all webhooks (requires system creds) |
| Create a webhook (requires system creds) |
| Get a webhook by ID (requires system creds) |
| Update a webhook (requires system creds) |
| Delete a webhook (safe mode blocked, requires system creds) |
| Get events for a webhook (requires system creds) |
Pipelines (5 tools)
Tool | Description |
| List all pipelines |
| Create a pipeline |
| Get a pipeline by ID |
| Update a pipeline |
| Delete a pipeline (safe mode blocked) |
Custom Fields (5 tools)
Tool | Description |
| List all custom fields |
| Create a custom field |
| Get a custom field by ID |
| Update a custom field |
| Delete a custom field (safe mode blocked) |
Stages (5 tools)
Tool | Description |
| List all pipeline stages |
| Create a pipeline stage |
| Get a stage by ID |
| Update a stage |
| Delete a stage (safe mode blocked) |
Tasks (5 tools)
Tool | Description |
| List tasks |
| Create a task |
| Get a task by ID |
| Update a task |
| Delete a task (safe mode blocked) |
Convenience (5 tools)
Tool | Description |
| Remove a single tag without affecting others |
| Look up a person by email address |
| Find all people with one or more tags |
| Update multiple people with the same changes |
| Discover tags used in your account |
Email Marketing (5 tools)
Tool | Description |
| List email marketing events |
| Create email marketing events |
| List email marketing campaigns |
| Create an email marketing campaign |
| Update an email marketing campaign |
Notes (5 tools)
Tool | Description |
| List notes, optionally filtered by personId |
| Create a note on a person |
| Get a note by ID |
| Update a note |
| Delete a note (safe mode blocked) |
Action Plans (4 tools)
Tool | Description |
| List all action plans |
| List people assigned to action plans |
| Add a person to an action plan |
| Update a person's action plan status |
Calls (4 tools)
Tool | Description |
| List calls |
| Log a call for a person |
| Get a call by ID |
| Update a call record |
Reactions (4 tools)
Tool | Description |
| Get reactions for an item |
| Create a reaction on an item |
| Delete a reaction (safe mode blocked) |
| Get threaded replies for an item |
Events (3 tools)
Tool | Description |
| List events with filtering |
| Create a new event |
| Get a single event by ID |
Text Messages (3 tools)
Tool | Description |
| List text messages (requires at least one filter) |
| Log a text message from a third-party SMS system |
| Get a text message by ID |
Users (3 tools)
Tool | Description |
| List all users/agents in the account |
| Get a user by ID |
| Delete a user (safe mode blocked) |
Smart Lists (2 tools)
Tool | Description |
| List all smart lists |
| Get a smart list by ID |
Identity (2 tools)
Tool | Description |
| Get account information for the API key |
| Get the current authenticated user |
Meta (2 tools)
Tool | Description |
| Get information about this MCP server |
| Get usage tips and examples |
Example Prompts
Contact management:
"Find all contacts tagged 'VIP' and add a note: 'Spoke with client, interested in Q1 listings'"
"Create a new contact: John Doe, john@example.com, (555) 123-4567, tagged 'Buyer'"
"Search for people with email domain @gmail.com in the Hot stage"
Deals and pipelines:
"Show me all deals in the Seller pipeline worth over $800,000"
"Create a deal for contact 5678 named 'Main St Listing' at $650,000 in stage 3"
"Update deal 123 to set the price to $725,000 and close date to March 15"
Tasks and appointments:
"Create a task for contact 1234: 'Send listing presentation' due tomorrow"
"Schedule an appointment with Jane Smith on Friday at 2pm — type 'Buyer Consultation'"
"List all appointments this week that don't have an outcome set"
Automation and follow-up:
"Add everyone tagged 'webinar-march' to the Post-Webinar Follow-Up action plan"
"Find all people in the 'New Lead' stage who have no tasks and create a call task for each"
"Remove the tag 'do-not-contact' from person 9876"
Bulk operations:
"Set the stage to 'Inactive' for all people tagged 'old-lead-2022'"
"Find all people assigned to agent Sarah and list their current stages"
Environment Variables
Variable | Required | Default | Description |
| Yes | — | Your Follow Up Boss API key (starts with |
| No |
| Set to |
| No | — | Registered system name (for system-restricted endpoints) |
| No | — | Registered system key (pair with |
Development
Scripts
npm run build # compile TypeScript to dist/
npm run dev # watch mode with tsx
npm test # run all tests with vitest
npm run test:watch # watch mode for tests
npm run test:coverage # coverage report
npm run prepublishOnly # build + test (runs before npm publish)Project structure
follow-up-boss-mcp/
├── src/
│ ├── index.ts # server entry point (stdio + HTTP transport)
│ ├── client.ts # HTTP client, config, error handling, translators
│ └── tools/
│ ├── people.ts
│ ├── deals.ts
│ ├── appointments.ts
│ ├── events.ts
│ ├── notes.ts
│ ├── calls.ts
│ ├── tasks.ts
│ ├── text_messages.ts
│ ├── users.ts
│ ├── smart_lists.ts
│ ├── action_plans.ts
│ ├── automations.ts
│ ├── templates.ts
│ ├── email_marketing.ts
│ ├── custom_fields.ts
│ ├── stages.ts
│ ├── appointments.ts
│ ├── webhooks.ts
│ ├── pipelines.ts
│ ├── groups.ts
│ ├── ponds.ts
│ ├── inbox_apps.ts
│ ├── reactions.ts
│ ├── convenience.ts
│ ├── identity.ts
│ └── meta.ts
├── tests/
│ ├── helpers.ts
│ ├── client.test.ts # 59 tests
│ ├── server.test.ts # 38 tests
│ └── tools/
│ ├── people.test.ts
│ ├── deals.test.ts
│ └── convenience.test.ts
├── bin/
│ └── follow-up-boss-mcp.js
├── dist/ # compiled output
└── package.jsonAdding a new tool
Find the module file under
src/tools/that matches the resource (or create a new one).Add a
ToolDefentry withname,description,inputSchema, andhandler.Export it from the module array and import it in
src/index.ts.Add a test in
tests/tools/.Run
npm testto confirm green.
API translators
The FUB API uses non-standard field names in some places. The client.ts file includes translators that map natural MCP args to FUB's expected format:
translateCallArgs—direction→isIncoming,notes→notetranslateDealArgs—personId→peopleIds[],value→pricetranslateDealCustomFieldArgs—name→label,options→choicestranslateRelationshipArgs—relationshipType→typetranslateAppointmentArgs—startTime/endTime→start/end,appointmentTypeId→typeId,personId→invitees[]
Troubleshooting
Error | Cause | Fix |
| Missing env var | Add |
| Left the default value | Replace with your real API key from FUB admin |
| Invalid or expired API key | Re-copy your key from FUB → Admin → API |
| Accessing system-restricted endpoint without system creds | Add |
Tool not found | Safe mode is on | Set |
| Using | The translators handle this automatically — check you're passing args correctly |
| FUB rate limit hit | Built-in retry with backoff — reduce request frequency if persistent |
Server not showing in Claude Desktop | Config file syntax error or wrong path | Validate JSON, check file path for your OS |
Contributing
Issues and PRs welcome. Please open an issue first for significant changes.
Fork the repo
Create a feature branch
Add tests for your change
Run
npm test— all must passSubmit a PR
License
MIT
Related
GHL MCP Server — same pattern for GoHighLevel
Lofty MCP Server — same pattern for Lofty CRM
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NerdSnipe-Inc/follow-up-boss-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server