Connector guide10-minute read40 MCP tools7 languages

How to Connect Freshsales to Gemini via MCP

Freshsales (Freshworks CRM) from any AI agent: search and filter contacts, accounts and deals, move deals through pipeline stages, add notes, plan tasks and appointments, log sales activities and manage marketing lists. Works with a per-user API key and the bundle URL of your account.

HCBy HelpCode teamUpdated 10 min read Open-source on GitHub

No credit card · 7-day trial · Self-host alternative available

Freshsales

Freshsales

Freshsales (Freshworks CRM) from any AI agent: contacts, accounts, deals and pipelines, notes, tasks, appointments, sales activities, search and marketing lists. REST API with a per-user API key and the account bundle URL.

tools

40

Region

INTL

Category

CRM

Authentication

API Key

Required env vars

FRESHSALES_BUNDLE_URLFRESHSALES_API_KEY
Install in one click on Cloud

7-day free trial · No credit card

  • 7-day free trial
    No credit card required
  • GDPR & SOC 2 ready
    EU data residency, audit logs
  • Open-source on GitHub
    Open source · AGPL-3.0
  • Works with ChatGPT, Claude, Gemini
    Any MCP-compatible client

Skip the install. Get this working in under 2 minutes.

Start a free trial on cloud.anythingmcp.com, add the Freshsales in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.

Start free trial

Summary

Freshsales (Freshworks CRM) from any AI agent: search and filter contacts, accounts and deals, move deals through pipeline stages, add notes, plan tasks and appointments, log sales activities and manage marketing lists. Works with a per-user API key and the bundle URL of your account.

Try asking

Example prompts for Freshsales

Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.

Freshsales · live via MCP
Share
Opus 4.7

Claude is AI and can make mistakes. Please double-check responses.

💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Freshsales, paste your credentials, mint an MCP API key and you're done. No Docker, no git clone, no local server.

Freshsales + Gemini

Freshsales (Freshworks CRM) from any AI agent: search and filter contacts, accounts and deals, move deals through pipeline stages, add notes, plan tasks and appointments, log sales activities and manage marketing lists. Works with a per-user API key and the bundle URL of your account.

Prerequisites

See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:

FRESHSALES_BUNDLE_URL, FRESHSALES_API_KEY

Step 1 — Get credentials

Setting up takes about 2 minutes. You need a Freshsales (Freshworks CRM) account.

  1. In Freshsales click your profile picture, then Profile Settings, and open the API Settings tab.
  2. Copy Your API key into FRESHSALES_API_KEY. The connector sends it as Authorization: Token token=<key>, so paste only the key.
  3. On the same tab copy the bundle alias (the address of your account) into FRESHSALES_BUNDLE_URL, for example https://acme.myfreshworks.com/crm/sales. Accounts created before the Freshworks suite use https://acme.freshsales.io. Leave out /api and any trailing slash.
  4. Install the connector and run freshsales_list_owners: it lists the users of the portal and confirms key and address.

Every call acts with the permissions of the user whose key is set: records outside that user's scope stay invisible. Use the key of a user who sees the data the team needs.

Start here: freshsales_list_owners gives the user ids used as owner_id. freshsales_list_selector reads a picklist (territories, pipelines and stages, currencies, deal types and reasons, lead sources, industry and business types, campaigns, contact statuses, lifecycle stages, sales activity types and outcomes) and returns the ids to use when writing. freshsales_list_pipeline_stages gives the stages of one pipeline. freshsales_list_fields lists the fields of contacts, accounts, deals or sales activities, including custom fields: their internal names start with cf_ and go in custom_field.

Finding records:

  • freshsales_search: text search by name or email across contacts, accounts, deals and users. include takes the singular names contact, sales_account, deal and user; a plural returns nothing.
  • freshsales_lookup: exact match on one field, for example contacts by email, or contacts, accounts and deals by name or a custom field value.
  • freshsales_filtered_search: rules on fields (exact matches, ranges, lists), returning full records.
  • Lists always go through a saved view: freshsales_list_views gives the view ids (for example "All Contacts" or "My Deals"), then freshsales_list_contacts, freshsales_list_accounts or freshsales_list_deals read the view with sorting.

Contacts, accounts and deals: freshsales_get_contact, freshsales_get_account and freshsales_get_deal read one record and embed related records with include (for example sales_accounts,deals,notes). freshsales_list_contact_activities shows the timeline of a contact (emails, calls, notes, field changes, web visits). To write, the AI uses freshsales_create_contact (at least an email or a last name), freshsales_update_contact, freshsales_upsert_contact (create or update by email or another unique field), freshsales_create_account (unique name), freshsales_update_account, freshsales_create_deal (name and amount are required) and freshsales_update_deal. A deal moves when deal_stage_id is set to a stage of its pipeline; won and lost are stages too, and a lost deal can carry a deal_reason_id. Updates change only the fields passed.

Notes, tasks, appointments and activities are attached to a record with targetable_type (Contact, SalesAccount or Deal) and targetable_id:

  • Notes: freshsales_create_note, freshsales_update_note.
  • Tasks: freshsales_list_tasks (one filter per call: open, due_today, due_tomorrow, overdue or completed), freshsales_get_task, freshsales_create_task, freshsales_update_task, freshsales_complete_task.
  • Appointments: freshsales_list_appointments (open for upcoming, past for past ones; older portals use upcoming), freshsales_get_appointment, freshsales_create_appointment, freshsales_update_appointment. Attendees are users (FdMultitenant::User) or contacts (Contact).
  • Sales activities such as logged calls and visits: freshsales_list_sales_activities, freshsales_get_sales_activity, freshsales_create_sales_activity.

Marketing lists: freshsales_list_marketing_lists, freshsales_list_marketing_list_contacts, freshsales_add_contacts_to_list and freshsales_remove_contacts_from_list (the contacts themselves are kept).

Leads: current Freshsales accounts keep prospects as contacts with a lifecycle stage; there is no separate leads module. The AI filters contacts by lifecycle stage through a view or freshsales_filtered_search.

Switched off at install: nothing. The connector has no delete tools, so it cannot remove contacts, accounts, deals, notes, tasks or appointments. Creating and updating records changes your live CRM, so ask the AI to show the fields before it saves.

Data formats: timestamps come back in UTC or with an offset (2026-02-13T23:27:49Z). Date inputs accept YYYY-MM-DD or ISO 8601; without a zone UTC is assumed. Amounts are in the currency of the deal; base_currency_amount is converted to the portal currency. Blank fields are null. Records embedded with include arrive in separate top-level arrays (users, sales_accounts, deals) next to the record, linked by id.

Paging: lists take page (from 1) and per_page (default 25, at most 100) and return meta.total_pages and meta.total. freshsales_search returns 10 results by default, at most 100.

Limits and common errors: 1000 requests per hour per account; above that Freshsales answers 429. 401 means a wrong or missing key, 403 that the user lacks the permission or the feature is not on the plan, 404 a wrong id or a wrong bundle URL. Validation errors return 400 with errors.message.

The connector does not delete records, does not send emails and does not change portal settings, fields or pipelines.

Step 2 — Install the adapter

curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d

Step 3 — Add the connector in Gemini

Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide shows YOUR_SERVER_ID.

Gemini CLI reads MCP servers from ~/.gemini/settings.json (on Windows %USERPROFILE%\.gemini\settings.json). Add:

{
  "mcpServers": {
    "anythingmcp": {
      "httpUrl": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
      "headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
    }
  }
}
  1. Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of YOUR_MCP_API_KEY.
  2. Save the file and restart gemini.
  3. Run /mcp inside Gemini CLI (or gemini mcp list in your shell): anythingmcp should show as connected.
  4. Start prompting: Gemini CLI can now call the Freshsales tools.

Available tools

ToolWhat it does
freshsales_list_ownersList the users of the Freshsales portal (id, name, email)
freshsales_list_selectorList the values of a configuration picklist: territories, deal stages and pipelines, currencies, deal reasons and types, lead sources…
freshsales_list_pipeline_stagesList the stages of one deal pipeline (id, name, position)
freshsales_list_fieldsList the fields of a module, including custom fields (internal name cf_..., label, type, choices)
freshsales_list_viewsList the saved views (filters) of contacts, accounts or deals, with their ids
freshsales_list_contactsList the contacts of a view, 25 per page by default, with sorting
freshsales_get_contactGet one contact with all fields, optionally embedding owner, accounts, deals, tasks, appointments, notes and sales activities
freshsales_list_contact_activitiesList the activity timeline of a contact: emails, calls, notes, field changes, web visits
freshsales_create_contactCreate a contact
freshsales_update_contactUpdate a contact
freshsales_upsert_contactCreate or update a contact matched by a unique field (usually the email): updates the existing contact, or creates it when none matches
freshsales_list_accountsList the accounts (companies) of a view, 25 per page by default
freshsales_get_accountGet one account with all fields, optionally embedding owner, contacts, deals, tasks, appointments and notes
freshsales_create_accountCreate an account (company). name is required and must be unique
freshsales_update_accountUpdate an account (company): name, address, owner, industry, custom fields
freshsales_list_dealsList the deals of a view, 25 per page by default
freshsales_get_dealGet one deal with all fields, optionally embedding account, contacts, stage, pipeline, products, tasks and notes
freshsales_create_dealCreate a deal. name and amount are required; link it to an account with sales_account_id and to contacts with contacts_added_list
freshsales_update_dealUpdate a deal: amount, stage (deal_stage_id moves it through the pipeline, including won and lost stages), close date, owner, linked…
freshsales_create_noteAdd a note to a contact, account or deal
freshsales_update_noteChange the text of an existing note on a contact, account or deal
freshsales_list_tasksList tasks by status: open, due today, due tomorrow, overdue or completed
freshsales_get_taskGet one task with its owner, collaborators and linked record
freshsales_create_taskCreate a task on a contact, account or deal. title, due_date, owner_id, targetable_type and targetable_id are required
freshsales_update_taskUpdate a task: title, description, due date, owner, linked record or collaborators
freshsales_complete_taskMark a task as done (status completed)
freshsales_list_appointmentsList appointments (meetings), upcoming or past, with attendees and linked records
freshsales_get_appointmentGet one appointment with its time, location, attendees and linked contact, account or deal
freshsales_create_appointmentSchedule an appointment (meeting) with a contact, account or deal, with attendees. title, from_date and end_date are required
freshsales_update_appointmentReschedule or edit an appointment
freshsales_list_sales_activitiesList logged sales activities (calls, meetings, custom activity types), newest first
freshsales_get_sales_activityGet one logged sales activity with its type, outcome, times, notes and linked record
freshsales_create_sales_activityLog a sales activity (for example a call or visit) on a contact, account or deal. title, sales_activity_type_id, start_date, end_date…
freshsales_searchFull-text search by name or email across contacts, accounts, deals and users
freshsales_lookupExact-match lookup on one field: find contacts by email, or contacts, accounts or deals by name or a custom field value
freshsales_filtered_searchFilter contacts, accounts or deals by field rules (exact matches, ranges, lists), e.g. contacts whose email is in a list
freshsales_list_marketing_listsList the marketing lists (static contact lists) with their ids
freshsales_list_marketing_list_contactsList the contacts of a marketing list, 25 per page by default
freshsales_add_contacts_to_listAdd existing contacts to a marketing list by their contact ids
freshsales_remove_contacts_from_listRemove contacts from a marketing list

Example prompts

  • "Find the contact [email protected] and show me her open deals and the latest notes on her record."
  • "List my open deals that are expected to close this month, with amount and stage."
  • "Move the Acme renewal deal to the Negotiation stage and add a note that the quote was sent."
  • "Which of my tasks are overdue? Group them by the linked account."
  • "Log a 30-minute call with Tom Becker for today and create a follow-up task for next Tuesday at 10:00."

FAQ

Where does Gemini CLI look for MCP servers? In ~/.gemini/settings.json for your user, or in .gemini/settings.json inside a project. gemini mcp list shows each server and whether it connects.

Next steps

Was this guide helpful?

Your Freshsales agent is one click away.

Install the connector, paste the key, prompt Gemini. Free for 7 days, no credit card.

Related guides

Connectors

How to Connect Freshsales to ChatGPT via MCP

Freshsales (Freshworks CRM) from any AI agent: search and filter contacts, accounts and deals, move deals through pipeline stages, add notes, plan tasks and appointments, log sales activities and manage marketing lists. Works with a per-user API key and the bundle URL of your account.

Connectors

How to Connect Freshsales to Claude via MCP

Freshsales (Freshworks CRM) from any AI agent: search and filter contacts, accounts and deals, move deals through pipeline stages, add notes, plan tasks and appointments, log sales activities and manage marketing lists. Works with a per-user API key and the bundle URL of your account.

Connectors

How to Connect Freshsales to Cursor via MCP

Freshsales (Freshworks CRM) from any AI agent: search and filter contacts, accounts and deals, move deals through pipeline stages, add notes, plan tasks and appointments, log sales activities and manage marketing lists. Works with a per-user API key and the bundle URL of your account.

Connectors

How to Connect Freshsales to Meta Muse via MCP

Freshsales (Freshworks CRM) from any AI agent: search and filter contacts, accounts and deals, move deals through pipeline stages, add notes, plan tasks and appointments, log sales activities and manage marketing lists. Works with a per-user API key and the bundle URL of your account.

Connectors

Freshsales to MCP: Contacts, Accounts, Deals, Tasks and Sales Activities in any AI Agent

Freshsales (Freshworks CRM) from any AI agent: search and filter contacts, accounts and deals, move deals through pipeline stages, add notes, plan tasks and appointments, log sales activities and manage marketing lists. Works with a per-user API key and the bundle URL of your account.

Connectors

How to Connect Freshsales to Microsoft Copilot via MCP

Freshsales (Freshworks CRM) from any AI agent: search and filter contacts, accounts and deals, move deals through pipeline stages, add notes, plan tasks and appointments, log sales activities and manage marketing lists. Works with a per-user API key and the bundle URL of your account.