Garba MCP Server — Tools

The read-only tools this server exposes to connected MCP clients.

This page is generated from the server's live tool registrations. To connect a client, see the home page.

get_company

Gets detailed firmographic information about a single company. Use list_companies to find company IDs.

ParameterTypeRequiredDescription
companyIdintegeryesThe company ID.

get_company_summary

Gets the stored AI-generated summary of a company, when it is newer than the company's latest interaction. Returns null when the company doesn't exist, is not visible, or has no fresh summary.

ParameterTypeRequiredDescription
companyIdintegeryesThe company ID.

get_deal

Gets one deal the way the deal page in the app shows it: the list_deals fields plus estimatedAmount and estimatedStage with the AI's reasoning for the amount, close date and stage; health with its reasoning, the narrative, blockers, next best actions and suggested questions; the qualification framework's criteria (status Identified, Partial or NotDiscussed; sentiment Favours, Neutral or Against; summary); people and competitors; the deal's meetings and emails, its upcoming external meetings, and its notes. On won or lost deals it adds the win/loss analysis: in full once completed, only its status while in progress or when there was nothing to analyse, and nothing when the analysis failed. Health is not a close probability. The narrative, reasoning, next moves, criterion summaries and win/loss text are AI-written paraphrases of the deal's sources, never quotes. closeDate is the CRM close date; estimatedCloseDate is the AI's estimate. Every AI-written field except the win/loss analysis — the estimates and their reasoning, health, summary, narrative, blockers, next best actions, suggested questions and the criteria — appears only while the account has an active scoring framework, and so do people and competitors. Each meeting and email carries canOpen, which says whether get_meeting/get_email will return it; items the caller can't open carry only id, title or subject, and date. This tool has a stricter rate limit (60 requests/minute). Returns null when deals are switched off for the account, the deal doesn't exist, or the caller can't read it.

ParameterTypeRequiredDescription
dealIdintegeryesThe deal ID.

get_email

Gets the full detail of a single email, including its body. This tool has a stricter rate limit (60 requests/minute). Returns null when the email doesn't exist, the caller can't access it, or the account's email sync is switched off. Bodies over 50,000 characters are truncated with a marker.

ParameterTypeRequiredDescription
emailIdintegeryesThe email ID. Use list_emails to find email IDs.

get_email_thread

Gets the full thread around a single email, oldest first, including bodies. This tool has a stricter rate limit (60 requests/minute). Returns null when the email doesn't exist, the caller can't access it, or the account's email sync is switched off. Bodies over 50,000 characters are truncated with a marker. A long thread returns only its most recent emails, at most 100 and at most 100,000 characters of bodies, subjects and snippets together; 'olderEmailsOmitted' is true when earlier emails were left out.

ParameterTypeRequiredDescription
emailIdintegeryesThe email ID. Use list_emails to find email IDs.

get_me

Describes the calling user: user ID, name, email and team. This is where the ids for "my …" questions come from: the user ID goes into userIds on list_deals, ownerUserId on list_meetings and assigneeUserId on list_tasks; team.id goes into teamIds on list_deals and teamId on list_pipelines. list_tasks already defaults to the caller's own tasks; list_deals and list_meetings default to everything the caller can see.

No parameters.

get_meeting

Gets detailed information about a single meeting including its summary, participants, meeting type, language, and whether it is private. Use this after list_meetings to get the full details for a specific meeting. Returns null when the meeting doesn't exist or the caller can't access it.

ParameterTypeRequiredDescription
meetingIdstringyesThe meeting ID (GUID format).

get_task

Gets a single task by ID. Any task on a meeting the caller can read is returned, regardless of assignee. Returns null if it doesn't exist or the caller can't access its meeting.

ParameterTypeRequiredDescription
taskIdintegeryesThe task ID.

get_task_counts

Returns how many of the caller's own tasks sit in each of the app's Task states: Open, Today, Upcoming, Completed. A search shorter than two characters is ignored, as in the app.

ParameterTypeRequiredDescription
searchstringnoRestrict counts to tasks whose title or description contains this text (matched literally).

get_transcript

Gets the full transcript for a meeting as timestamped, speaker-attributed paragraphs, along with whether the meeting is private. This tool has a stricter rate limit (60 requests/minute). Returns null when the meeting doesn't exist, the caller can't access it, or no transcript is available.

ParameterTypeRequiredDescription
meetingIdstringyesThe meeting ID (GUID format).

list_companies

Lists companies visible in the account that have at least one non-private interaction — a completed, external meeting or a non-private email — optionally filtered by a name or domain search term.

ParameterTypeRequiredDescription
searchstringnoFilter by company name or domain (case-insensitive substring match).
pageintegernoPage number, starting at 1. Defaults to 1. Default: 1.
pageSizeintegernoNumber of companies per page. Defaults to 50, maximum is 100. Default: 50.

list_deals

Lists the deals the caller can read, one row per deal like the Deals table in the app: companies, owner, pipeline, stage, outcome, amount and currency, convertedAmount in the account's reportingCurrency (rounded to whole units), the CRM closeDate and the AI's estimatedCloseDate, health (score and band), a one-line summary, stale, lastActivityAt, nextMeetingAt, and on won or lost deals with a completed win/loss analysis a short wonLost summary. Ordered by most recently updated, with outcomeCounts (open/won/lost) and stageCounts for the whole filtered set. Returns up to 'pageSize' deals (default 50, max 100); use 'page' for more. Filters: outcome, pipelineId and stageId (ids from list_pipelines), companyId, closeDateFrom/closeDateTo, userIds/teamIds, search. The close-date filters use the CRM close date, not estimatedCloseDate; there is no closed-at timestamp, and CRMs usually, but not always, set the close date when a deal is won or lost. Health is not a close probability. summary and wonLost are AI-written paraphrases of the deal's sources, never quotes. health, summary and estimatedCloseDate appear only while the account has an active scoring framework; wonLost does not depend on one. Renewals are not a Garba concept: they exist only as a CRM pipeline with that name, otherwise search deal names. Returns nothing when the account has deals switched off.

ParameterTypeRequiredDescription
outcomestringnoFilter by outcome: Open, Won, or Lost.
pipelineIdintegernoFilter by pipeline ID. Use list_pipelines to find pipeline IDs.
stageIdintegernoFilter by stage ID. Use list_pipelines to find stage IDs.
companyIdintegernoFilter by company ID. Use list_companies to find company IDs.
closeDateFromstringnoOnly include deals whose CRM close date is on or after this date (ISO 8601, e.g. '2025-01-01').
closeDateTostringnoOnly include deals whose CRM close date is on or before this date (ISO 8601, e.g. '2025-03-31').
userIdsarraynoRestrict to deals owned by these user IDs. Wins over teamIds when both are set.
teamIdsarraynoRestrict to deals owned by members of these team IDs. Ignored when userIds is set. Use list_teams to find team IDs.
searchstringnoSearch deal names containing this text.
pageintegernoPage number, starting at 1. Default: 1.
pageSizeintegernoDeals per page. Defaults to 50, maximum is 100. Default: 50.

list_emails

Lists emails the caller can access, most recent first, with the companies and deals each email is linked to. Returns a short snippet per email, not the full body -- use get_email for that. Returns up to 'pageSize' emails (default 50, max 100). Use 'page' to page through larger result sets, or 'from'/'to' to narrow by received date. Filters: companyId, dealId, search. When the account's email sync is switched off, returns an empty list.

ParameterTypeRequiredDescription
companyIdintegernoRestrict to emails associated with this company. Use list_companies to find company IDs.
dealIdintegernoRestrict to emails associated with this deal. Use list_deals to find deal IDs.
searchstringnoSearch email subjects containing this text.
fromstringnoOnly include emails received on or after this date (ISO 8601 format, e.g. '2025-01-01').
tostringnoOnly include emails received on or before this date (ISO 8601 format, e.g. '2025-03-31'). A plain date includes the whole day.
pageintegernoPage number, starting at 1. Default: 1.
pageSizeintegernoEmails per page. Defaults to 50, maximum is 100. Default: 50.

list_meetings

Lists meetings ordered by date descending, with the companies and deals each meeting is linked to. Returns up to 'pageSize' meetings (default 50, max 100) plus the total count; paginate with 'page'. Filter by companyId, dealId, ownerUserId, or the from/to date range. Each meeting carries 'isPrivate'; that flag is the only signal of privacy, never the title, participants or summary.

ParameterTypeRequiredDescription
ownerUserIdintegernoFilter by owner user ID. Use list_users to find user IDs.
companyIdintegernoFilter by company ID. Use list_companies to find company IDs.
dealIdintegernoFilter by deal ID. Use list_deals to find deal IDs.
fromstringnoOnly include meetings created on or after this date (ISO 8601 format, e.g. '2025-01-01').
tostringnoOnly include meetings created on or before this date (ISO 8601 format, e.g. '2025-03-31'). A plain date includes the whole day.
pageintegernoPage number, 1-based. Defaults to 1. Default: 1.
pageSizeintegernoMeetings per page. Defaults to 50, maximum is 100. Default: 50.

list_pipelines

Lists the account's deal pipelines in display order, each with its active stages. Every stage carries its outcome (Open, Won or Lost, when the CRM marks one), dealCount, and value: the total amount of those deals converted to the account's reportingCurrency and rounded to whole units, summed for won and lost stages as well as open ones. Counts and values cover only deals the caller can read; teamId or userId narrows them to deals owned by that team's members or that user (userId wins when both are set). Non-admins see only pipelines holding at least one deal they can read. Use the pipeline and stage IDs with list_deals' pipelineId and stageId filters. Renewals are not a Garba concept: they exist only as a CRM pipeline with that name. Returns no pipelines when the account has deals switched off.

ParameterTypeRequiredDescription
teamIdintegernoNarrow deal counts and values to deals owned by members of this team. Use list_teams to find team IDs.
userIdintegernoNarrow deal counts and values to deals owned by this user. Wins over teamId when both are set. Use list_users to find user IDs.

list_tasks

Lists tasks on meetings the caller can access, in the same states as the Tasks list in the app — Open, Today, Upcoming, or Completed (defaults to Open) — ordered by due date. With neither meetingId nor companyId set, lists items assigned to the caller; meetingId or companyId widens the listing to every item in that scope regardless of assignee — passing both, or a malformed meetingId, returns an error. assigneeUserId narrows to one assignee in any scope; dealId narrows to items on meetings linked to a deal; dueFrom/dueTo narrow by due date; search matches titles and descriptions; page/pageSize paginate (pageSize max 100). Search terms are matched literally, never as wildcards. A search shorter than two characters is ignored, as in the app. Each task carries 'isPrivate' from its meeting; that flag is the only signal of privacy, never the title or description.

ParameterTypeRequiredDescription
meetingIdstringnoRestrict to tasks on this meeting (GUID format). Mutually exclusive with companyId.
companyIdintegernoRestrict to tasks on meetings associated with this company. Mutually exclusive with meetingId. Use list_companies to find company IDs.
assigneeUserIdintegernoRestrict to items assigned to this user ID, overriding the caller-only default. Use list_users to find user IDs.
dealIdintegernoRestrict to items on meetings associated with this deal. Use list_deals to find deal IDs.
filterstringnoFilter by status: Open, Today, Upcoming, or Completed. Defaults to Open. Default: Open.
dueFromstringnoOnly include items with a due date on or after this date (ISO 8601 format, e.g. '2025-01-01').
dueTostringnoOnly include items with a due date on or before this date (ISO 8601 format, e.g. '2025-03-31'). A plain date includes the whole day.
searchstringnoSearch task titles and descriptions.
pageintegernoPage number, 1-based. Defaults to 1. Default: 1.
pageSizeintegernoItems per page. Defaults to 50, maximum 100. Default: 50.

list_teams

Lists the teams the caller has access to, with id, name and member count, ordered by name. Admins see every team in the account; everyone else sees the teams their own team's meeting and email access covers, which may be more than one. Use the ids for the teamIds filter on list_deals and the teamId filter on list_pipelines.

No parameters.

list_users

Lists all users in the account with their name, email, and team assignment, ordered by name descending. Use this to look up user IDs for filtering in other tools like list_meetings. Returns up to 'pageSize' users (default 50, max 100); paginate with 'page'.

ParameterTypeRequiredDescription
pageintegernoPage number, 1-based. Defaults to 1. Default: 1.
pageSizeintegernoUsers per page. Defaults to 50, maximum is 100. Default: 50.