followupboss-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FUB_API_KEY | Yes | Your Follow Up Boss API key, found in Admin > API. | |
| FUB_SAFE_MODE | No | Toggle between Safe Mode (default) and Full Access. Safe Mode prevents the ability to delete data. Set to 'true' for Safe Mode or 'false' for Full Access. | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| listEventsB | List events from FUB. Filter by personId, type, property address, etc. |
| createEventB | Create a new event in FUB (lead event, property inquiry, etc) |
| getEventB | Get a single event by ID |
| listPeopleA | List/search people in FUB. Supports filtering by name, email, phone, tags, stage, source, assignedTo, price range, smart list, and more. For tag filtering use the tags parameter (comma-separated, OR logic). For email lookup use the email parameter. |
| createPersonA | Create a new person/contact in FUB. Custom fields are supported: include them as additional top-level keys prefixed with 'custom' (e.g. customClosingDate) — run listCustomFields to see this account's field names. |
| getPersonB | Get a single person by ID |
| updatePersonA | Update an existing person in FUB. Custom fields are supported: include them as additional top-level keys prefixed with 'custom' (e.g. customClosingDate) — run listCustomFields to see this account's field names. Set a custom field to JSON null to clear it (the string 'null' would be stored literally). |
| checkDuplicateC | Check if a person already exists by email or phone |
| listUnclaimedA | List unclaimed people (in ponds, not assigned) |
| claimPersonC | Claim an unclaimed person |
| createPersonAttachmentA | Attach an externally-hosted file to a person. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY env vars. |
| getPersonAttachmentB | Get a person attachment by ID |
| updatePersonAttachmentB | Update a person attachment |
| listRelationshipsB | List relationships for a person |
| createRelationshipA | Create a relationship contact (Spouse, Brother, Partner, etc.) for an existing person. The relationship is its own contact record linked to personId — it is NOT a link between two existing people. |
| getRelationshipB | Get a relationship by ID |
| updateRelationshipC | Update a relationship contact |
| getIdentityA | Get identity/account information for the API key |
| getCurrentUserA | Get the current authenticated user (GET /me) |
| listNotesB | List notes, optionally filtered by personId |
| createNoteB | Create a note on a person |
| getNoteB | Get a note by ID |
| updateNoteB | Update a note |
| listCallsC | List calls |
| createCallC | Log a call for a person. FUB expects isIncoming (boolean) and note (singular). |
| getCallC | Get a call by ID |
| updateCallC | Update a call record |
| listTextMessagesA | List text messages. FUB REQUIRES at least one filter: personId, threadId, phone, toNumber, fromNumber, sharedInboxId, groupTextId, participants, or id list. Unfiltered calls return 400. |
| createTextMessageA | LOG a text message that was already sent by your registered third-party SMS system. This endpoint does NOT actually deliver an SMS — FUB only records it as a log entry on the person. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY env vars. To actually send an SMS to a lead, do it from FUB's UI or use your SMS provider's API directly. |
| getTextMessageB | Get a text message by ID |
| listUsersB | List all users/agents in the account |
| getUserB | Get a user by ID |
| listSmartListsA | List all smart lists. By default only classic FUB smart lists are returned. Pass |
| getSmartListB | Get a smart list by ID |
| listActionPlansB | List all action plans |
| listActionPlansPeopleC | List people assigned to action plans |
| addPersonToActionPlanB | Add a person to an action plan |
| updateActionPlanPersonB | Update a person's action plan status |
| listAutomationsC | List all Automations 2.0 automations. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY. Account must also be on Automations 2.0. |
| getAutomationB | Get an automation by ID |
| listAutomationsPeopleA | List people in Automations 2.0 automations. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY. |
| getAutomationPersonB | Get an automation-person entry by ID |
| addPersonToAutomationC | Add a person to an automation |
| updateAutomationPersonC | Update a person's automation status |
| listTemplatesC | List email templates |
| createTemplateB | Create an email template |
| getTemplateB | Get an email template by ID |
| updateTemplateB | Update an email template |
| mergeTemplateB | Merge an email template with a person's data (mail merge) |
| listTextMessageTemplatesC | List text message templates |
| createTextMessageTemplateC | Create a text message template |
| getTextMessageTemplateB | Get a text message template by ID |
| updateTextMessageTemplateC | Update a text message template |
| mergeTextMessageTemplateB | Merge a text message template with person data |
| listEmEventsC | List email marketing events |
| createEmEventC | Create email marketing events |
| listEmCampaignsB | List email marketing campaigns |
| createEmCampaignC | Create an email marketing campaign |
| updateEmCampaignB | Update an email marketing campaign |
| listCustomFieldsB | List custom fields. Paginated (FUB defaults to 10 per page) — pass limit=100 to fetch all in one call. |
| createCustomFieldC | Create a custom field |
| getCustomFieldC | Get a custom field by ID |
| updateCustomFieldC | Update a custom field |
| listStagesA | List all pipeline stages |
| createStageB | Create a pipeline stage |
| getStageA | Get a stage by ID |
| updateStageC | Update a stage |
| listTasksC | List tasks |
| createTaskC | Create a task |
| getTaskB | Get a task by ID |
| updateTaskC | Update a task |
| listAppointmentsC | List appointments |
| createAppointmentB | Create an appointment. FUB uses start/end (not startTime/endTime), typeId/outcomeId (not appointmentTypeId/appointmentOutcomeId), and invitees:[{type:'person'|'user',id}] (personId is NOT a top-level field). |
| getAppointmentB | Get an appointment by ID |
| updateAppointmentA | Update an appointment. FUB requires |
| listAppointmentTypesA | List appointment types |
| createAppointmentTypeC | Create an appointment type |
| getAppointmentTypeA | Get appointment type by ID |
| updateAppointmentTypeB | Update an appointment type |
| listAppointmentOutcomesB | List appointment outcomes |
| createAppointmentOutcomeC | Create an appointment outcome |
| getAppointmentOutcomeA | Get appointment outcome by ID |
| updateAppointmentOutcomeC | Update an appointment outcome |
| listWebhooksC | List all webhooks |
| createWebhookC | Create a webhook |
| getWebhookB | Get a webhook by ID |
| updateWebhookC | Update a webhook |
| getWebhookEventsB | Get events for a webhook |
| listPipelinesB | List all pipelines |
| createPipelineC | Create a pipeline |
| getPipelineC | Get a pipeline by ID |
| updatePipelineC | Update a pipeline |
| listDealsB | List deals with filtering |
| createDealB | Create a deal. FUB expects peopleIds (array) and price (number). name + stageId required. |
| getDealB | Get a deal by ID |
| updateDealA | Update a deal. Use price (not value) and peopleIds (not personId). |
| createDealAttachmentA | Attach an externally-hosted file to a deal. "Restricted - Registered Systems Only": requires FUB_SYSTEM + FUB_SYSTEM_KEY env vars. |
| getDealAttachmentB | Get a deal attachment by ID |
| updateDealAttachmentC | Update a deal attachment |
| listDealCustomFieldsA | List deal custom fields. Paginated (FUB defaults to 10 per page) — pass limit=100 to fetch all in one call. |
| createDealCustomFieldB | Create a deal custom field. FUB expects 'label' (not 'name') and 'choices' (not 'options'). |
| getDealCustomFieldB | Get a deal custom field by ID |
| updateDealCustomFieldC | Update a deal custom field |
| listGroupsC | List all groups |
| listRoundRobinGroupsA | List round robin groups |
| createGroupC | Create a group |
| getGroupA | Get a group by ID |
| updateGroupC | Update a group |
| listTeamsB | List all teams |
| createTeamC | Create a team |
| getTeamA | Get a team by ID |
| updateTeamC | Update a team |
| listTeamInboxesA | List all team inboxes |
| listPondsC | List all ponds |
| createPondC | Create a pond |
| getPondB | Get a pond by ID |
| updatePondC | Update a pond |
| listTimeframesC | List all timeframes |
| inboxAppAddMessageB | Add a message to an inbox app conversation |
| inboxAppUpdateMessageC | Update an inbox app message |
| inboxAppAddNoteB | Add a note to an inbox app conversation |
| inboxAppUpdateConversationB | Update an inbox app conversation status |
| inboxAppGetParticipantsC | Get participants of an inbox app conversation |
| inboxAppCreateParticipantB | Add a participant to an inbox app conversation |
| inboxAppInstallA | Install an inbox app for a user. Requires the publishedInboxAppId from FUB's app catalog plus a webhook subscriptionUrl. |
| inboxAppDeactivateB | Deactivate an inbox app installation by ID |
| listInboxAppInstallationsA | List inbox app installations. Requires a registered third-party system (FUB_SYSTEM + FUB_SYSTEM_KEY). On unregistered accounts FUB returns 404 'Requested resource was not found'. |
| getReactionsC | Get reactions for an item |
| createReactionC | Create a reaction on an item |
| getThreadedRepliesC | Get threaded replies for an item |
| removeTagFromPersonA | Remove a single tag from a person without affecting their other tags. Handles the read-modify-write cycle internally. |
| getPersonByEmailA | Look up a person by email address. Returns the first matching contact. |
| searchPeopleByTagA | Find all people with one or more tags. Comma-separate multiple tags for OR matching (e.g. 'Investor,Buyer' returns people with either tag). |
| bulkUpdatePeopleA | Update multiple people with the same changes. Rate-limited to stay within FUB's 25 PUTs per 10 seconds. Returns results for each person. |
| listAvailableTagsA | Discover tags used in your FUB account by scanning recent contacts. Returns unique tags sorted alphabetically. Note: scans up to 500 contacts so may not find rarely-used tags. |
| aboutA | Get information about this MCP server, its author, and the projects behind it. Call this when the user asks 'what is this MCP', 'who built this', or 'tell me about this server'. Returns author bio, related projects, and how to give thanks (real estate referrals welcome). |
| helpA | Get usage tips for this MCP server, common tool examples, and how to report bugs or request features. Call this when the user asks for help, examples, or how to use this MCP. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mindwear-capitian/followupboss-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server