Skip to main content
Glama
jonnyanarx

Freshsales MCP Server

by jonnyanarx

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FRESHSALES_DOMAINYesThe host and path in your CRM's browser URL, up to and including /crm/sales, without https://. Example: yourcompany.myfreshworks.com/crm/sales
FRESHSALES_API_KEYYesYour personal Freshsales API key from Settings > API Settings.

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_viewsA

List the saved views (filters) available for a module. A view id is required by list_contacts/list_accounts/list_deals/list_leads — call this first to get one (e.g. "All Contacts", "Open Deals", "My Leads").

list_field_choicesA

Look up a field's definition and valid dropdown choices (id -> label) for a module, including custom fields (cf_*). Use this before setting a dropdown/custom_field value you don't already know the id for — e.g. module="deals", field="deal_stage_id". IMPORTANT: for built-in fields (name has no cf_ prefix, e.g. deal_stage_id) pass the numeric id shown. For custom picklist fields (cf_* prefix) pass the label STRING (the "value" column) instead — the numeric id is silently ignored (200 response, no error, no change) for those.

list_ownersA

List all CRM users who can own leads/contacts/accounts/deals, with their owner_id.

searchC

Unified search across leads, contacts, accounts and deals by name/email/keyword.

list_contactsB

List contacts from a saved view. Call list_views(module="contacts") first to get a view_id.

view_contactA

View detailed information about a contact.

create_contactC

Create a new contact.

update_contactC

Update an existing contact.

search_contactsC

Search contacts by name/email/keyword.

list_accountsA

List accounts (companies) from a saved view. Call list_views(module="sales_accounts") first to get a view_id.

view_accountC

View detailed information about an account (company).

create_accountC

Create a new account (company).

update_accountC

Update an existing account (company).

search_accountsC

Search accounts (companies) by name/domain/keyword.

list_dealsA

List deals from a saved view. Call list_views(module="deals") first to get a view_id (e.g. "Open Deals", "Won Deals").

view_dealC

View detailed information about a deal.

create_dealA

Create a new deal. NOTE: many Freshsales instances mark extra custom (cf_*) fields as required on deal creation, and the create is rejected without them. list_field_choices(module="deals", field=...) reports whether a field is required; pass any required custom fields via custom_field.

update_dealC

Update an existing deal (e.g. move to a new stage, change amount/owner).

search_dealsC

Search deals by name/keyword.

list_leadsA

List leads from a saved view. Call list_views(module="leads") first to get a view_id.

view_leadC

View detailed information about a lead.

create_leadD

Create a new lead.

update_leadC

Update an existing lead.

search_leadsC

Search leads by name/email/company/keyword.

list_tasksC

List tasks, optionally filtered.

create_taskC

Create a task, optionally linked to a contact/account/deal/lead.

update_taskB

Update a task, e.g. to reschedule, reassign, or mark it done. The exact accepted "status" value (e.g. "COMPLETED") hasn't been verified against this instance — check the result and adjust if rejected.

list_appointmentsC

List appointments/meetings.

create_appointmentC

Create an appointment/meeting, optionally linked to a contact/account/deal/lead.

create_noteC

Add a note to a contact, account, deal, or lead.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 30 tools

Disambiguation4/5

Most tools have clearly distinct purposes based on entity and action (e.g., create_lead, update_deal, search_contacts). However, the unified 'search' tool overlaps with the entity-specific search tools (search_leads, search_contacts, etc.), which could cause some confusion about which to use.

Naming Consistency4/5

Tools predominantly follow a consistent verb_noun pattern (e.g., list_leads, create_contact, update_account). The only notable deviation is the standalone 'search' tool, which lacks a noun component, but otherwise the naming is predictable.

Tool Count2/5

With 30 tools, the server is on the heavy side for its scope. While the tools are organized by entity, the sheer number (exceeding 25) may overwhelm an agent and increase selection complexity.

Completeness3/5

Core CRUD operations are covered for leads, contacts, accounts, and deals (create, read, update, list, search), but delete operations are entirely missing for all entities. This is a notable gap in the lifecycle, though agents can still manage most workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues