# How to integrate Follow Up Boss MCP with Autogen

```json
{
  "title": "How to integrate Follow Up Boss MCP with Autogen",
  "toolkit": "Follow Up Boss",
  "toolkit_slug": "follow_up_boss",
  "framework": "AutoGen",
  "framework_slug": "autogen",
  "url": "https://composio.dev/toolkits/follow_up_boss/framework/autogen",
  "markdown_url": "https://composio.dev/toolkits/follow_up_boss/framework/autogen.md",
  "updated_at": "2026-03-29T06:34:18.356Z"
}
```

## Introduction

This guide walks you through connecting Follow Up Boss to AutoGen using the Composio tool router. By the end, you'll have a working Follow Up Boss agent that can list all leads added this week, update contact info for lead john doe, create a new deal for jane smith through natural language commands.
This guide will help you understand how to give your AutoGen agent real control over a Follow Up Boss account through Composio's Follow Up Boss MCP server.
Before we dive in, let's take a quick look at the key ideas and tools involved.

## Also integrate Follow Up Boss with

- [ChatGPT](https://composio.dev/toolkits/follow_up_boss/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/follow_up_boss/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/follow_up_boss/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/follow_up_boss/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/follow_up_boss/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/follow_up_boss/framework/codex)
- [Cursor](https://composio.dev/toolkits/follow_up_boss/framework/cursor)
- [VS Code](https://composio.dev/toolkits/follow_up_boss/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/follow_up_boss/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/follow_up_boss/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/follow_up_boss/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/follow_up_boss/framework/cli)
- [Google ADK](https://composio.dev/toolkits/follow_up_boss/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/follow_up_boss/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/follow_up_boss/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/follow_up_boss/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/follow_up_boss/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/follow_up_boss/framework/crew-ai)

## TL;DR

Here's what you'll learn:
- Get and set up your OpenAI and Composio API keys
- Install the required dependencies for Autogen and Composio
- Initialize Composio and create a Tool Router session for Follow Up Boss
- Wire that MCP URL into Autogen using McpWorkbench and StreamableHttpServerParams
- Configure an Autogen AssistantAgent that can call Follow Up Boss tools
- Run a live chat loop where you ask the agent to perform Follow Up Boss operations

## What is AutoGen?

Autogen is a framework for building multi-agent conversational AI systems from Microsoft. It enables you to create agents that can collaborate, use tools, and maintain complex workflows.
Key features include:
- Multi-Agent Systems: Build collaborative agent workflows
- MCP Workbench: Native support for Model Context Protocol tools
- Streaming HTTP: Connect to external services through streamable HTTP
- AssistantAgent: Pre-built agent class for tool-using assistants

## What is the Follow Up Boss MCP server, and what's possible with it?

The Follow Up Boss MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Follow Up Boss account. It provides structured and secure access so your agent can perform Follow Up Boss operations on your behalf.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `FOLLOW_UP_BOSS_CREATE_ACTION_PLANS_PEOPLE` | Apply Action Plan to Person | Tool to apply an Action Plan to a person in Follow Up Boss. Use when you need to assign or apply a specific action plan workflow to a contact. |
| `FOLLOW_UP_BOSS_CREATE_APPOINTMENT` | Create Appointment | Tool to create a new appointment in Follow Up Boss. Use when you need to schedule meetings, property showings, or events. Requires title, start time, and end time. Optionally send invitation emails to invitees. |
| `FOLLOW_UP_BOSS_CREATE_APPOINTMENT_OUTCOME` | Create appointment outcome | Tool to create an appointment outcome in Follow Up Boss. Use when you need to add a new outcome type for appointment tracking. |
| `FOLLOW_UP_BOSS_CREATE_APPOINTMENT_TYPES` | Create Appointment Type | Tool to create a new appointment type in Follow Up Boss. Use when you need to define a new category for appointments that can be scheduled in the system. |
| `FOLLOW_UP_BOSS_CREATE_CALL` | Create Call | Tool to add a call record to Follow Up Boss. Use when you need to log a phone call interaction with a person. |
| `FOLLOW_UP_BOSS_CREATE_CUSTOM_FIELD` | Create Custom Field | Tool to create a custom field in Follow Up Boss. Use when you need to add a new custom data field to person records, such as tracking anniversaries, customer types, or any other custom information. |
| `FOLLOW_UP_BOSS_CREATE_DEAL_CUSTOM_FIELD` | Create Deal Custom Field | Tool to create a custom field for deals in Follow Up Boss. Use when you need to add custom metadata fields to track deal-specific information like stages, priorities, or custom dates. |
| `FOLLOW_UP_BOSS_CREATE_DEAL` | Create Deal | Tool to create a new deal in Follow Up Boss. Use when you need to add a deal to track sales opportunities in your pipeline. Requires deal name and stage ID. |
| `FOLLOW_UP_BOSS_CREATE_EMAIL_MARKETING_CAMPAIGN` | Create Email Marketing Campaign | Tool to create an email marketing campaign in Follow Up Boss. Use when you need to create a new email campaign with HTML content. |
| `FOLLOW_UP_BOSS_CREATE_EMAIL_MARKETING_EVENTS` | Create Email Marketing Events | Tool to notify Follow Up Boss about marketing emails sent, opens, clicks, bounces, unsubscribes and spam reports. Use when you need to track email marketing events. |
| `FOLLOW_UP_BOSS_CREATE_EVENTS` | Create Events | Tool to send in a lead or an event related to a lead in Follow Up Boss. Use when you need to track lead activities, inquiries, property views, or any other event type supported by the system. |
| `FOLLOW_UP_BOSS_CREATE_GROUP` | Create Group | Tool to create a new Follow Up Boss group with specified members and distribution settings. Use when you need to organize team members into groups for lead distribution. |
| `FOLLOW_UP_BOSS_CREATE_PIPELINE` | Create Pipeline | Tool to create a new pipeline in Follow Up Boss. Use when you need to set up a new pipeline for tracking deals with customizable stages. Only the owner has access to create and modify pipelines. |
| `FOLLOW_UP_BOSS_CREATE_PONDS` | Create Ponds | Tool to create a new pond in Follow Up Boss. Use when you need to organize leads into a specific group with a lead agent and member users. |
| `FOLLOW_UP_BOSS_CREATE_REACTIONS` | Create Reactions | Tool to add a reaction (emoji) to a Note, Call, or ThreadedReply. Use when you need to add an emoji reaction to existing content. |
| `FOLLOW_UP_BOSS_CREATE_STAGE` | Create Stage | Tool to create a new stage in Follow Up Boss. Use when you need to add a new pipeline stage for organizing contacts. |
| `FOLLOW_UP_BOSS_CREATE_TEAM` | Create Team | Tool to create a new team in Follow Up Boss. Use when you need to organize users into teams with optional team leaders. |
| `FOLLOW_UP_BOSS_CREATE_EMAIL_TEMPLATE` | Create email template | Tool to create a new email template in Follow Up Boss. Use when you need to create a reusable email template with a name, subject, and HTML body. |
| `FOLLOW_UP_BOSS_CREATE_TEXT_MESSAGE_TEMPLATE` | Create Text Message Template | Tool to create a text message template in Follow Up Boss. Use when you need to create a reusable SMS template that can include dynamic variables like contact names and greetings. |
| `FOLLOW_UP_BOSS_DELETE_APPOINTMENT` | Delete Appointment | Tool to delete an appointment by ID. Use when you need to remove an existing appointment from Follow Up Boss. |
| `FOLLOW_UP_BOSS_DELETE_APPOINTMENT_OUTCOME` | Delete Appointment Outcome | Tool to delete an appointment outcome by ID. Use when you need to remove an appointment outcome and reassign existing appointments to a different outcome. |
| `FOLLOW_UP_BOSS_DELETE_APPOINTMENT_TYPE` | Delete Appointment Type | Tool to delete an appointment type by its ID. Use when you need to remove an appointment type and reassign existing appointments to another type. |
| `FOLLOW_UP_BOSS_DELETE_CUSTOM_FIELD` | Delete Custom Field | Tool to delete a custom field by its ID. Use when you need to remove a custom field from Follow Up Boss. Restricted to account owners only. |
| `FOLLOW_UP_BOSS_DELETE_DEAL` | Delete Deal | Tool to delete a deal by its ID. Use when you need to permanently remove a deal from Follow Up Boss. |
| `FOLLOW_UP_BOSS_DELETE_DEAL_CUSTOM_FIELD` | Delete Deal Custom Field | Tool to delete a deal custom field by ID. Use when you need to permanently remove a custom field configuration from deals. Only the account owner can delete deal custom fields. |
| `FOLLOW_UP_BOSS_DELETE_GROUP` | Delete Group | Tool to delete a group by its ID. Use when you need to permanently remove a group from Follow Up Boss. |
| `FOLLOW_UP_BOSS_DELETE_PEOPLE_RELATIONSHIP` | Delete People Relationship | Tool to delete a people relationship by ID in Follow Up Boss. Use when you need to remove a relationship between contacts. |
| `FOLLOW_UP_BOSS_DELETE_PIPELINE` | Delete Pipeline | Tool to delete a pipeline by its ID from Follow Up Boss. Use when you need to permanently remove a pipeline from the system. The deletion is irreversible and will remove the pipeline and all associated data. |
| `FOLLOW_UP_BOSS_DELETE_POND` | Delete Pond | Tool to delete a pond by its ID. Use when removing a pond and reassigning its contacts to another agent. |
| `FOLLOW_UP_BOSS_DELETE_STAGE` | Delete Stage | Tool to delete a Follow Up Boss stage by ID. Use when you need to remove a stage and reassign action plans to another stage. |
| `FOLLOW_UP_BOSS_DELETE_TEAM` | Delete Team | Tool to delete a team by its ID. Use when you need to remove a team from Follow Up Boss. Optionally merge team members to another team before deletion. |
| `FOLLOW_UP_BOSS_DELETE_TEXT_MESSAGE_TEMPLATE` | Delete text message template | Tool to delete a text message template by ID. Use when you need to remove a text message template. Note: If the template is in use by an Action Plan, you will get a 403 Forbidden response. Use GET /textMessageTemplates/:id to check which Action Plans are using it before deletion. |
| `FOLLOW_UP_BOSS_GET_APPOINTMENT` | Get Appointment | Tool to retrieve an appointment by its ID. Use when you need to fetch details of a specific appointment. |
| `FOLLOW_UP_BOSS_GET_APPOINTMENT_OUTCOME` | Get Appointment Outcome | Tool to retrieve an appointment outcome by ID. Use when you need to fetch details about a specific appointment outcome from Follow Up Boss. |
| `FOLLOW_UP_BOSS_GET_APPOINTMENT_TYPE` | Get Appointment Type | Tool to retrieve an appointment type by ID. Use when you need to fetch details about a specific appointment type from Follow Up Boss. |
| `FOLLOW_UP_BOSS_GET_CALL` | Get Call | Tool to retrieve a call by its ID from Follow Up Boss. Use when you need to fetch details about a specific call record. |
| `FOLLOW_UP_BOSS_GET_DEAL` | Get Deal | Tool to retrieve a deal by its ID from Follow Up Boss. Use when you need to fetch details about a specific deal. |
| `FOLLOW_UP_BOSS_GET_DEAL_CUSTOM_FIELD` | Get Deal Custom Field | Tool to retrieve a deal custom field by its ID from Follow Up Boss. Use when you need to fetch details about a specific deal custom field configuration. |
| `FOLLOW_UP_BOSS_GET_EVENT` | Get Event | Tool to retrieve a single event by its ID from Follow Up Boss. Use when you need to fetch details about a specific event record. |
| `FOLLOW_UP_BOSS_GET_GROUP` | Get Group | Tool to retrieve a group by its ID from Follow Up Boss. Use when you need to fetch details about a specific group. |
| `FOLLOW_UP_BOSS_GET_IDENTITY` | Get Identity | Tool to retrieve identity and authentication information from Follow Up Boss. Use when you need to verify the authenticated user's account and user details. |
| `FOLLOW_UP_BOSS_GET_ME` | Get Me | Tool to retrieve information about the currently authenticated user. Use when you need to fetch details about the authenticated user's account, settings, or permissions. |
| `FOLLOW_UP_BOSS_GET_PEOPLE_RELATIONSHIP` | Get People Relationship | Tool to retrieve a people relationship by its ID from Follow Up Boss. Use when you need to fetch details about a specific relationship between contacts. |
| `FOLLOW_UP_BOSS_GET_PIPELINE` | Get Pipeline | Tool to retrieve a pipeline by its ID from Follow Up Boss. Use when you need to fetch details about a specific pipeline. |
| `FOLLOW_UP_BOSS_GET_PONDS` | Get Ponds | Tool to retrieve a pond by its ID from Follow Up Boss. Use when you need to fetch details about a specific pond group. |
| `FOLLOW_UP_BOSS_GET_SMART_LIST` | Get Smart List | Tool to retrieve a Smart List by its ID from Follow Up Boss. Use when you need to fetch details about a specific Smart List. |
| `FOLLOW_UP_BOSS_GET_STAGE` | Get Stage | Tool to retrieve a stage by its ID from Follow Up Boss. Use when you need to fetch details about a specific stage. |
| `FOLLOW_UP_BOSS_GET_TEAM` | Get Team | Tool to retrieve a team by its ID from Follow Up Boss. Use when you need to fetch details about a specific team. |
| `FOLLOW_UP_BOSS_GET_TEMPLATE` | Get Template | Tool to retrieve an email template by its ID from Follow Up Boss. Use when you need to fetch details about a specific template, optionally with merge fields populated for a person. |
| `FOLLOW_UP_BOSS_GET_TEXT_MESSAGE` | Get Text Message | Tool to retrieve a text message by its ID from Follow Up Boss. Use when you need to fetch details about a specific text message record. |
| `FOLLOW_UP_BOSS_GET_TEXT_MESSAGE_TEMPLATE` | Get Text Message Template | Tool to retrieve a text message template by its ID from Follow Up Boss. Use when you need to fetch details about a specific text message template, including its content, usage statistics, and associated action plans. |
| `FOLLOW_UP_BOSS_GET_USER` | Get User | Tool to retrieve a user by its ID from Follow Up Boss. Use when you need to fetch details about a specific user. |
| `FOLLOW_UP_BOSS_LIST_ACTION_PLANS` | List Action Plans | Tool to get a list of Action Plans from Follow Up Boss. Use when you need to retrieve available action plans with optional filtering by status, names, or IDs, and support for pagination and sorting. |
| `FOLLOW_UP_BOSS_LIST_ACTION_PLANS_PEOPLE` | List Action Plans People | Tool to list Action Plans applied to a particular person or list people on a particular Action Plan. Use when you need to retrieve action plan assignments, optionally filtered by person or action plan. |
| `FOLLOW_UP_BOSS_LIST_APPOINTMENT_OUTCOMES` | List Appointment Outcomes | Tool to list all appointment outcomes from Follow Up Boss. Use when you need to retrieve a list of appointment outcomes with optional sorting and pagination. |
| `FOLLOW_UP_BOSS_LIST_APPOINTMENTS` | List Appointments | Tool to search for appointments in Follow Up Boss. Use when you need to retrieve a list of appointments, optionally filtered by person, user, or date range. Supports pagination for large result sets. |
| `FOLLOW_UP_BOSS_LIST_APPOINTMENT_TYPES` | List Appointment Types | Tool to list all appointment types from Follow Up Boss. Use when you need to retrieve a list of available appointment types with optional sorting and pagination. |
| `FOLLOW_UP_BOSS_LIST_CALLS` | List Calls | Tool to search for calls in Follow Up Boss. Use when you need to retrieve a list of calls with optional filtering by person ID or phone numbers. |
| `FOLLOW_UP_BOSS_LIST_CUSTOM_FIELDS` | List Custom Fields | Tool to list all custom fields in Follow Up Boss. Use when you need to retrieve custom field definitions, optionally filtered by label or sorted by specific fields. |
| `FOLLOW_UP_BOSS_LIST_DEAL_CUSTOM_FIELDS` | List Deal Custom Fields | Tool to list all deal custom fields in Follow Up Boss. Use when you need to retrieve deal custom field definitions, optionally filtered by label or sorted by specific fields. |
| `FOLLOW_UP_BOSS_LIST_DEALS` | List Deals | Tool to search for and list deals from Follow Up Boss. Use when you need to retrieve multiple deals with optional filters by pipeline, user, person, or status. |
| `FOLLOW_UP_BOSS_LIST_EMAIL_MARKETING_CAMPAIGNS` | List Email Marketing Campaigns | Tool to list email marketing campaigns from Follow Up Boss. Use when you need to retrieve all campaigns or filter by origin/originId. |
| `FOLLOW_UP_BOSS_LIST_EMAIL_MARKETING_EVENTS` | List Email Marketing Events | Tool to retrieve email marketing events from Follow Up Boss. Use when you need to fetch information about marketing emails sent, opens, clicks, bounces, unsubscribes, and spam reports. Supports filtering by event type, person, and time range with pagination. |
| `FOLLOW_UP_BOSS_LIST_EVENTS` | List Events | Tool to search for and list events from Follow Up Boss. Use when you need to retrieve events with optional filtering by person, event type, property association, or property address, with pagination support. |
| `FOLLOW_UP_BOSS_LIST_GROUPS` | List Groups | Tool to list all groups from Follow Up Boss. Use when you need to retrieve a list of groups, optionally filtered by type (Agent/Lender) or sorted by id/name. |
| `FOLLOW_UP_BOSS_LIST_GROUPS_ROUND_ROBIN` | List Groups Round Robin | Tool to list groups with round-robin data from Follow Up Boss. Use when you need to retrieve groups configured for round-robin distribution. |
| `FOLLOW_UP_BOSS_LIST_INBOX_APPS` | List Inbox Apps | Tool to list all inbox app installations from Follow Up Boss. Use when you need to retrieve a list of installed inbox apps with optional pagination. |
| `FOLLOW_UP_BOSS_LIST_PEOPLE_RELATIONSHIPS` | List People Relationships | Tool to list all people relationships from Follow Up Boss. Use when you need to retrieve relationships between contacts with optional filtering by person ID, name, or first/last name, and sorting capabilities. |
| `FOLLOW_UP_BOSS_LIST_PIPELINES` | List Pipelines | Tool to search for pipelines in Follow Up Boss. Use when you need to retrieve a list of pipelines, optionally filtering by exact name match. |
| `FOLLOW_UP_BOSS_LIST_PONDS` | List Ponds | Tool to list all ponds from Follow Up Boss. Use when you need to retrieve a list of pond groups with pagination support. |
| `FOLLOW_UP_BOSS_LIST_SMART_LISTS` | List Smart Lists | Tool to list Smart Lists from Follow Up Boss. Use when you need to retrieve a list of Smart Lists with support for pagination and filtering by FUB version. |
| `FOLLOW_UP_BOSS_LIST_STAGES` | List Stages | Tool to retrieve a list of stages from Follow Up Boss. Use when you need to fetch all stages with optional pagination and sorting. |
| `FOLLOW_UP_BOSS_LIST_TEAM_INBOXES` | List Team Inboxes | Tool to list all shared team inboxes from Follow Up Boss. Use when you need to retrieve available team inboxes with their names, IDs, and users who have access. |
| `FOLLOW_UP_BOSS_LIST_TEAMS` | List Teams | Tool to get a list of teams from Follow Up Boss. Use when you need to retrieve all teams with pagination support. Note: Not all plans have access to the teams feature. If you do not have access, this endpoint will return a 200 OK response with an empty teams list. |
| `FOLLOW_UP_BOSS_LIST_TEMPLATES` | List Templates | Tool to list all email templates from Follow Up Boss. Use when you need to retrieve multiple email templates with pagination support. |
| `FOLLOW_UP_BOSS_LIST_TEXT_MESSAGES` | List Text Messages | Tool to list text messages for a person or phone number from Follow Up Boss. Use when you need to retrieve text messages with filtering options. Note: At least one filter parameter must be provided when calling this action. |
| `FOLLOW_UP_BOSS_LIST_TEXT_MESSAGE_TEMPLATES` | List Text Message Templates | Tool to list all text message templates from Follow Up Boss. Use when you need to retrieve multiple text message templates with pagination support. |
| `FOLLOW_UP_BOSS_LIST_TIMEFRAMES` | List Timeframes | Tool to get a list of timeframes from Follow Up Boss. Use when you need to retrieve available timeframes. |
| `FOLLOW_UP_BOSS_LIST_USERS` | List Users | Tool to search for and list users from Follow Up Boss. Use when you need to retrieve multiple users with optional filters by role, name, email, or other criteria. |
| `FOLLOW_UP_BOSS_LIST_WEBHOOKS` | List Webhooks | Tool to retrieve a list of webhooks from Follow Up Boss. Use when you need to view registered webhooks with optional filtering by event type or status. |
| `FOLLOW_UP_BOSS_MERGE_TEMPLATE` | Merge Template | Tool to merge an email template with person data using Follow Up Boss API. Use when you need to generate personalized email content by replacing merge fields like %contact_name% with actual person data. |
| `FOLLOW_UP_BOSS_MERGE_TEXT_MESSAGE_TEMPLATE` | Merge Text Message Template | Tool to merge a text message template with person data. Use when you need to generate personalized text messages by merging a template with contact information. The template supports merge fields like %contact_name% and %contact_rels_first_name% which are replaced with actual recipient data. |
| `FOLLOW_UP_BOSS_UPDATE_ACTION_PLAN_PEOPLE_STATUS` | Update Action Plan People Status | Tool to update the status of an Action Plan to Person relationship in Follow Up Boss. Use when you need to pause or resume an action plan applied to a contact. |
| `FOLLOW_UP_BOSS_UPDATE_APPOINTMENT` | Update Appointment | Tool to update an existing appointment in Follow Up Boss. Use when you need to modify appointment details like title, time, location, or invitees. Requires appointment ID, title, start time, and end time. Optionally send invitation emails to invitees. |
| `FOLLOW_UP_BOSS_UPDATE_APPOINTMENT_OUTCOME` | Update appointment outcome | Tool to update an existing appointment outcome in Follow Up Boss. Use when you need to modify the name or sort order of an appointment outcome. |
| `FOLLOW_UP_BOSS_UPDATE_APPOINTMENT_TYPE` | Update Appointment Type | Tool to update an existing appointment type in Follow Up Boss. Use when you need to modify the name or sort order of an appointment type. |
| `FOLLOW_UP_BOSS_UPDATE_CALL` | Update Call | Tool to update an existing call record in Follow Up Boss. Use when you need to modify call details such as notes, duration, outcome, or other call attributes. Only calls created by the account/system making the API request can be updated. |
| `FOLLOW_UP_BOSS_UPDATE_CUSTOM_FIELDS` | Update Custom Fields | Tool to update an existing custom field in Follow Up Boss by its ID. Use when you need to modify the label, choices, ordering, or display settings of a custom field. |
| `FOLLOW_UP_BOSS_UPDATE_DEAL_CUSTOM_FIELDS` | Update Deal Custom Fields | Tool to update an existing deal custom field in Follow Up Boss. Use when you need to modify custom field properties like label, type, display settings, or dropdown choices. |
| `FOLLOW_UP_BOSS_UPDATE_DEAL` | Update Deal | Tool to update an existing deal in Follow Up Boss. Use when you need to modify deal details such as name, price, description, stage, or associated people and users. |
| `FOLLOW_UP_BOSS_UPDATE_EMAIL_MARKETING_CAMPAIGN` | Update Email Marketing Campaign | Tool to update an existing email marketing campaign in Follow Up Boss. Use when you need to modify campaign name, subject line, or HTML body content. |
| `FOLLOW_UP_BOSS_UPDATE_GROUP` | Update Group | Tool to update an existing Follow Up Boss group with modified members and distribution settings. Use when you need to change group configuration or membership. |
| `FOLLOW_UP_BOSS_UPDATE_PEOPLE_RELATIONSHIPS` | Update People Relationships | Tool to update details of a specific people relationship in Follow Up Boss. Use when you need to modify relationship information such as name, type, contact details (emails, phones), or addresses. |
| `FOLLOW_UP_BOSS_UPDATE_PIPELINE` | Update Pipeline | Tool to update an existing pipeline in Follow Up Boss. Use when you need to modify pipeline properties such as name, description, order, or stages. Only the owner has access to create and modify pipelines. |
| `FOLLOW_UP_BOSS_UPDATE_PONDS` | Update Ponds | Tool to update an existing pond in Follow Up Boss. Use when you need to change the name, lead agent, or member list of a pond. |
| `FOLLOW_UP_BOSS_UPDATE_STAGE` | Update Stage | Tool to update an existing stage in Follow Up Boss. Use when you need to modify stage properties like name or sort order. |
| `FOLLOW_UP_BOSS_UPDATE_TEAM` | Update Team | Tool to update an existing team in Follow Up Boss. Use when you need to modify team name, leaders, or members. |
| `FOLLOW_UP_BOSS_UPDATE_EMAIL_TEMPLATE` | Update email template | Tool to update an existing email template in Follow Up Boss. Use when you need to modify the name, subject, or body of an existing template. |
| `FOLLOW_UP_BOSS_UPDATE_TEXT_MESSAGE_TEMPLATE` | Update Text Message Template | Tool to update an existing text message template in Follow Up Boss. Use when you need to modify the name, message content, or sharing settings of an existing SMS template. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Follow Up Boss MCP server is an implementation of the Model Context Protocol that connects your AI agents and assistants directly to Follow Up Boss. Instead of manually wiring Follow Up Boss APIs, OAuth, and scopes yourself, you get a structured, tool-based interface that an LLM can call safely.
With Composio's managed implementation, you don't have to create your own developer app. For production, if you're building an end product, we recommend using your own credentials. The managed server helps you prototype fast and go from 0-1 faster.

## Step-by-step Guide

### 1. Prerequisites

You will need:
- A Composio API key
- An OpenAI API key (used by Autogen's OpenAIChatCompletionClient)
- A Follow Up Boss account you can connect to Composio
- Some basic familiarity with Autogen and Python async

### 1. Getting API Keys for OpenAI and Composio

OpenAI API Key
- Go to the [OpenAI dashboard](https://platform.openai.com/settings/organization/api-keys) and create an API key. You'll need credits to use the models, or you can connect to another model provider.
- Keep the API key safe.
Composio API Key
- Log in to the [Composio dashboard](https://dashboard.composio.dev?utm_source=toolkits&utm_medium=framework_docs).
- Navigate to your API settings and generate a new API key.
- Store this key securely as you'll need it for authentication.

### 2. Install dependencies

Install Composio, Autogen extensions, and dotenv.
What's happening:
- composio connects your agent to Follow Up Boss via MCP
- autogen-agentchat provides the AssistantAgent class
- autogen-ext-openai provides the OpenAI model client
- autogen-ext-tools provides MCP workbench support
```bash
pip install composio python-dotenv
pip install autogen-agentchat autogen-ext-openai autogen-ext-tools
```

### 3. Set up environment variables

Create a .env file in your project folder.
What's happening:
- COMPOSIO_API_KEY is required to talk to Composio
- OPENAI_API_KEY is used by Autogen's OpenAI client
- USER_ID is how Composio identifies which user's Follow Up Boss connections to use
```bash
COMPOSIO_API_KEY=your-composio-api-key
OPENAI_API_KEY=your-openai-api-key
USER_ID=your-user-identifier@example.com
```

### 4. Import dependencies and create Tool Router session

What's happening:
- load_dotenv() reads your .env file
- Composio(api_key=...) initializes the SDK
- create(...) creates a Tool Router session that exposes Follow Up Boss tools
- session.mcp.url is the MCP endpoint that Autogen will connect to
```python
import asyncio
import os
from dotenv import load_dotenv
from composio import Composio

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StreamableHttpServerParams

load_dotenv()

async def main():
    # Initialize Composio and create a Follow Up Boss session
    composio = Composio(api_key=os.getenv("COMPOSIO_API_KEY"))
    session = composio.create(
        user_id=os.getenv("USER_ID"),
        toolkits=["follow_up_boss"]
    )
    url = session.mcp.url
```

### 5. Configure MCP parameters for Autogen

Autogen expects parameters describing how to talk to the MCP server. That is what StreamableHttpServerParams is for.
What's happening:
- url points to the Tool Router MCP endpoint from Composio
- timeout is the HTTP timeout for requests
- sse_read_timeout controls how long to wait when streaming responses
- terminate_on_close=True cleans up the MCP server process when the workbench is closed
```python
# Configure MCP server parameters for Streamable HTTP
server_params = StreamableHttpServerParams(
    url=url,
    timeout=30.0,
    sse_read_timeout=300.0,
    terminate_on_close=True,
    headers={"x-api-key": os.getenv("COMPOSIO_API_KEY")}
)
```

### 6. Create the model client and agent

What's happening:
- OpenAIChatCompletionClient wraps the OpenAI model for Autogen
- McpWorkbench connects the agent to the MCP tools
- AssistantAgent is configured with the Follow Up Boss tools from the workbench
```python
# Create model client
model_client = OpenAIChatCompletionClient(
    model="gpt-5",
    api_key=os.getenv("OPENAI_API_KEY")
)

# Use McpWorkbench as context manager
async with McpWorkbench(server_params) as workbench:
    # Create Follow Up Boss assistant agent with MCP tools
    agent = AssistantAgent(
        name="follow_up_boss_assistant",
        description="An AI assistant that helps with Follow Up Boss operations.",
        model_client=model_client,
        workbench=workbench,
        model_client_stream=True,
        max_tool_iterations=10
    )
```

### 7. Run the interactive chat loop

What's happening:
- The script prompts you in a loop with You:
- Autogen passes your input to the model, which decides which Follow Up Boss tools to call via MCP
- agent.run_stream(...) yields streaming messages as the agent thinks and calls tools
- Typing exit, quit, or bye ends the loop
```python
print("Chat started! Type 'exit' or 'quit' to end the conversation.\n")
print("Ask any Follow Up Boss related question or task to the agent.\n")

# Conversation loop
while True:
    user_input = input("You: ").strip()

    if user_input.lower() in ["exit", "quit", "bye"]:
        print("\nGoodbye!")
        break

    if not user_input:
        continue

    print("\nAgent is thinking...\n")

    # Run the agent with streaming
    try:
        response_text = ""
        async for message in agent.run_stream(task=user_input):
            if hasattr(message, "content") and message.content:
                response_text = message.content

        # Print the final response
        if response_text:
            print(f"Agent: {response_text}\n")
        else:
            print("Agent: I encountered an issue processing your request.\n")

    except Exception as e:
        print(f"Agent: Sorry, I encountered an error: {str(e)}\n")
```

## Complete Code

```python
import asyncio
import os
from dotenv import load_dotenv
from composio import Composio

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StreamableHttpServerParams

load_dotenv()

async def main():
    # Initialize Composio and create a Follow Up Boss session
    composio = Composio(api_key=os.getenv("COMPOSIO_API_KEY"))
    session = composio.create(
        user_id=os.getenv("USER_ID"),
        toolkits=["follow_up_boss"]
    )
    url = session.mcp.url

    # Configure MCP server parameters for Streamable HTTP
    server_params = StreamableHttpServerParams(
        url=url,
        timeout=30.0,
        sse_read_timeout=300.0,
        terminate_on_close=True,
        headers={"x-api-key": os.getenv("COMPOSIO_API_KEY")}
    )

    # Create model client
    model_client = OpenAIChatCompletionClient(
        model="gpt-5",
        api_key=os.getenv("OPENAI_API_KEY")
    )

    # Use McpWorkbench as context manager
    async with McpWorkbench(server_params) as workbench:
        # Create Follow Up Boss assistant agent with MCP tools
        agent = AssistantAgent(
            name="follow_up_boss_assistant",
            description="An AI assistant that helps with Follow Up Boss operations.",
            model_client=model_client,
            workbench=workbench,
            model_client_stream=True,
            max_tool_iterations=10
        )

        print("Chat started! Type 'exit' or 'quit' to end the conversation.\n")
        print("Ask any Follow Up Boss related question or task to the agent.\n")

        # Conversation loop
        while True:
            user_input = input("You: ").strip()

            if user_input.lower() in ['exit', 'quit', 'bye']:
                print("\nGoodbye!")
                break

            if not user_input:
                continue

            print("\nAgent is thinking...\n")

            # Run the agent with streaming
            try:
                response_text = ""
                async for message in agent.run_stream(task=user_input):
                    if hasattr(message, 'content') and message.content:
                        response_text = message.content

                # Print the final response
                if response_text:
                    print(f"Agent: {response_text}\n")
                else:
                    print("Agent: I encountered an issue processing your request.\n")

            except Exception as e:
                print(f"Agent: Sorry, I encountered an error: {str(e)}\n")

if __name__ == "__main__":
    asyncio.run(main())
```

## Conclusion

You now have an Autogen assistant wired into Follow Up Boss through Composio's Tool Router and MCP. From here you can:
- Add more toolkits to the toolkits list, for example notion or hubspot
- Refine the agent description to point it at specific workflows
- Wrap this script behind a UI, Slack bot, or internal tool
Once the pattern is clear for Follow Up Boss, you can reuse the same structure for other MCP-enabled apps with minimal code changes.

## How to build Follow Up Boss MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/follow_up_boss/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/follow_up_boss/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/follow_up_boss/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/follow_up_boss/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/follow_up_boss/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/follow_up_boss/framework/codex)
- [Cursor](https://composio.dev/toolkits/follow_up_boss/framework/cursor)
- [VS Code](https://composio.dev/toolkits/follow_up_boss/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/follow_up_boss/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/follow_up_boss/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/follow_up_boss/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/follow_up_boss/framework/cli)
- [Google ADK](https://composio.dev/toolkits/follow_up_boss/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/follow_up_boss/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/follow_up_boss/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/follow_up_boss/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/follow_up_boss/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/follow_up_boss/framework/crew-ai)

## Related Toolkits

- [Hubspot](https://composio.dev/toolkits/hubspot) - HubSpot is an all-in-one marketing, sales, and customer service platform. It lets teams nurture leads, automate outreach, and track every customer interaction in one place.
- [Pipedrive](https://composio.dev/toolkits/pipedrive) - Pipedrive is a sales management platform offering pipeline visualization, lead tracking, and workflow automation. It helps sales teams keep deals moving forward efficiently and never miss a follow-up.
- [Salesforce](https://composio.dev/toolkits/salesforce) - Salesforce is a leading CRM platform that helps businesses manage sales, service, and marketing. It centralizes customer data, enabling teams to drive growth and build strong relationships.
- [Apollo](https://composio.dev/toolkits/apollo) - Apollo is a CRM and lead generation platform that helps businesses discover contacts and manage sales pipelines. Use it to streamline customer outreach and track your deals from one place.
- [Attio](https://composio.dev/toolkits/attio) - Attio is a customizable CRM and workspace for managing your team's relationships and workflows. It helps teams organize contacts, automate tasks, and collaborate more efficiently.
- [Acculynx](https://composio.dev/toolkits/acculynx) - AccuLynx is a cloud-based roofing business management software for contractors. It streamlines project tracking, lead management, and document sharing.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Affinity](https://composio.dev/toolkits/affinity) - Affinity is a relationship intelligence CRM that helps private capital investors find, manage, and close more deals. It streamlines deal flow and surfaces key connections to help you win opportunities.
- [Agencyzoom](https://composio.dev/toolkits/agencyzoom) - AgencyZoom is a sales and performance platform built for P&C insurance agencies. It helps agents boost sales, retain clients, and analyze producer results in one place.
- [Bettercontact](https://composio.dev/toolkits/bettercontact) - Bettercontact is a smart contact enrichment tool for finding emails and phone numbers. It helps boost lead generation with automated, waterfall search across multiple sources.
- [Blackbaud](https://composio.dev/toolkits/blackbaud) - Blackbaud provides cloud-based software for nonprofits, schools, and healthcare institutions. It streamlines fundraising, donor management, and mission-driven operations.
- [Brilliant directories](https://composio.dev/toolkits/brilliant_directories) - Brilliant Directories is an all-in-one platform for building and managing online membership communities and business directories. It streamlines listings, member management, and engagement tools into a single, easy interface.
- [Capsule crm](https://composio.dev/toolkits/capsule_crm) - Capsule CRM is a user-friendly CRM platform for managing contacts and sales pipelines. It helps businesses organize relationships and streamline their sales process efficiently.
- [Centralstationcrm](https://composio.dev/toolkits/centralstationcrm) - CentralStationCRM is an easy-to-use CRM software focused on collaboration and long-term customer relationships. It helps teams manage contacts, deals, and communications all in one place.
- [Clientary](https://composio.dev/toolkits/clientary) - Clientary is a platform for managing clients, invoices, projects, proposals, and more. It streamlines client work and saves you serious admin time.
- [Close](https://composio.dev/toolkits/close) - Close is a CRM platform built for sales teams, combining calling, email automation, and predictive dialers. It streamlines sales workflows and boosts productivity with all-in-one communication tools.
- [Dropcontact](https://composio.dev/toolkits/dropcontact) - Dropcontact is a B2B email finder and data enrichment service for professionals. It delivers verified email addresses and enriches contact info with up-to-date data.
- [Dynamics365](https://composio.dev/toolkits/dynamics365) - Dynamics 365 is Microsoft's platform combining CRM, ERP, and productivity apps. It streamlines sales, marketing, service, and operations in one place.
- [Espocrm](https://composio.dev/toolkits/espocrm) - EspoCRM is an open-source web application for managing customer relationships. It helps businesses organize contacts, track leads, and streamline their sales process.
- [Fireberry](https://composio.dev/toolkits/fireberry) - Fireberry is a CRM platform that streamlines customer and sales management. It helps businesses organize contacts, automate sales, and integrate with other business tools.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Follow Up Boss MCP?

With a standalone Follow Up Boss MCP server, the agents and LLMs can only access a fixed set of Follow Up Boss tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Follow Up Boss and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Autogen?

Yes, you can. Autogen fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Follow Up Boss tools.

### Can I manage the permissions and scopes for Follow Up Boss while using Tool Router?

Yes, absolutely. You can configure which Follow Up Boss scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Follow Up Boss data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
