100+ integrations are ready to connect to your AI.Connect your first MCP

Freshsales MCP server for your AI

Move deals between pipeline stages, update contacts from a saved view, log calls, book appointments, and read the full activity timeline on a contact.

PopMCPFreshsales

Show me every deal in the Committed view and who owns each one

Supported Freshsales tools

Every contact, deal, account, task, appointment, note and selector lookup the connector exposes, plus the changes it can watch for.

freshsales_list_contact_statuses

List contact statuses — resolve contact_status_id.

freshsales_list_deal_pipelines

List deal pipelines — resolve deal_pipeline_id.

freshsales_list_deal_stages

List deal stages of the default pipeline — resolve deal_stage_id.

freshsales_list_lead_sources

List lead sources — resolve lead_source_id.

freshsales_list_owners

List all users (owners) — resolve owner_id / shared_owners values.

freshsales_create_contact

Create a contact.

freshsales_delete_contact

Soft-delete a contact (moves to recycle bin).

freshsales_get_contact

View a single contact by id.

freshsales_get_contact_fields

List every contact field definition (system + custom), including picklist choices — use to learn valid field names/values before writing.

freshsales_list_contact_activities

List a contact's activity timeline (notes, tasks, appointments, emails, etc.).

freshsales_list_contact_views

List the available contact VIEWS (filters) and their ids.

freshsales_list_contacts_by_view

List contacts in a view (paginated).

freshsales_update_contact

Update a contact.

freshsales_create_deal

Create a deal.

freshsales_get_deal

View a single deal by id.

freshsales_get_deal_fields

List every deal field definition (system + custom) with picklist choices.

freshsales_list_deal_views

List the available deal VIEWS (filters) and their ids.

freshsales_list_deals_by_view

List deals in a view (paginated).

freshsales_update_deal

Update a deal (e.g.

freshsales_create_account

Create a sales account (company).

freshsales_get_account

View a single sales account (company) by id.

freshsales_list_account_views

List the available sales-account VIEWS (filters) and their ids.

freshsales_list_accounts_by_view

List sales accounts in a view (paginated).

freshsales_update_account

Update a sales account.

freshsales_create_sales_activity

Log a sales activity.

freshsales_list_sales_activities

List sales activities (logged interactions).

freshsales_create_appointment

Create an appointment.

freshsales_create_task

Create a task.

freshsales_list_appointments

List appointments.

freshsales_list_tasks

List tasks.

freshsales_update_task

Update a task.

freshsales_create_note

Create a note attached to a record.

freshsales_lookup

Field-scoped lookup — find records where a specific field equals a value (e.g.

freshsales_search

Global full-text search across entities.

freshsales_get_job_status

Poll the status/progress of an async job.

freshsales_list_activity_type_outcomes

List the outcomes available for a specific sales activity type.

freshsales_list_business_types

List business types — resolve business_type_id.

freshsales_list_campaigns

List campaigns — resolve campaign_id.

freshsales_list_currencies

List currencies — resolve currency_id.

freshsales_list_deal_payment_statuses

List deal payment statuses — resolve deal_payment_status_id.

freshsales_list_deal_products

List deal products — resolve deal_product_id.

freshsales_list_deal_reasons

List deal lost/won reasons — resolve deal_reason_id.

freshsales_list_deal_types

List deal types — resolve deal_type_id.

freshsales_list_designations

List team designations.

freshsales_list_industry_types

List industry types — resolve industry_type_id.

freshsales_list_lifecycle_stages

List lifecycle stages — resolve lifecycle_stage_id.

freshsales_list_pipeline_deal_stages

List the stages of a specific pipeline — resolve deal_stage_id for a non-default pipeline.

freshsales_list_sales_activity_entity_types

List sales activity entity types.

freshsales_list_sales_activity_outcomes

List all sales activity outcomes — resolve sales_activity_outcome_id.

freshsales_list_sales_activity_types

List sales activity types — resolve sales_activity_type_id.

freshsales_list_territories

List territories — resolve territory_id.

freshsales_bulk_assign_owner_contacts

Assign an owner to many contacts at once (async job).

freshsales_bulk_delete_contacts

Soft-delete many contacts (async job).

freshsales_bulk_upsert_contacts

Bulk create/update up to 1000 contacts.

freshsales_clone_contact

Clone a contact.

freshsales_forget_contact

Permanently delete (GDPR forget) a contact — irreversible.

freshsales_list_contact_document_associations

List the files and links attached to a contact.

freshsales_manage_contact_team_members

Add/remove shared owners (team members) on a contact.

freshsales_upsert_contact

Create or update a contact, matched on an unique identifier.

freshsales_bulk_delete_deals

Soft-delete many deals (async).

freshsales_bulk_upsert_deals

Bulk create/update deals.

freshsales_clone_deal

Clone a deal.

freshsales_delete_deal

Soft-delete a deal.

freshsales_forget_deal

Permanently delete (forget) a deal — irreversible.

freshsales_manage_deal_team_members

Set the shared owners (team members) on a deal.

freshsales_update_deal_products

Add/replace the line-item products on a deal.

freshsales_upsert_deal

Create or update a deal matched on an unique identifier.

freshsales_bulk_delete_accounts

Soft-delete many sales accounts (async).

freshsales_bulk_upsert_accounts

Bulk create/update sales accounts.

freshsales_clone_account

Clone a sales account.

freshsales_delete_account

Soft-delete a sales account.

freshsales_forget_account

Permanently delete (forget) a sales account — irreversible.

freshsales_get_account_fields

List every sales-account field definition (system + custom) with picklist choices.

freshsales_manage_account_team_members

Set the shared owners (team members) on a sales account.

freshsales_upsert_account

Create or update a sales account matched on an unique identifier.

freshsales_bulk_assign_cpq_documents

Bulk-assign an owner to CPQ documents.

freshsales_bulk_delete_cpq_documents

Bulk-delete CPQ documents.

freshsales_bulk_delete_custom_module_records

Bulk soft-delete custom module records.

freshsales_bulk_restore_cpq_documents

Bulk-restore CPQ documents.

freshsales_bulk_update_cpq_documents

Bulk-update CPQ documents.

freshsales_clone_custom_module_record

Clone a custom module record.

freshsales_create_cpq_document

Create a CPQ document (quote).

freshsales_create_custom_module_record

Create a record in a custom module.

freshsales_create_module_customization

Create a custom module definition (admin).

freshsales_delete_cpq_document

Soft-delete a CPQ document.

freshsales_delete_custom_module_record

Soft-delete a custom module record.

freshsales_delete_module_customization

Delete a custom module definition (admin).

freshsales_forget_cpq_document

Permanently delete (forget) a CPQ document — irreversible.

freshsales_forget_custom_module_record

Permanently delete (forget) a custom module record — irreversible.

freshsales_get_cpq_document

View a CPQ document by id.

freshsales_get_cpq_document_related_products

Get the products related to a CPQ document.

freshsales_get_custom_module_records_by_view

Fetch records from a specific view in a custom module.

freshsales_get_module_customization

Get a custom module definition.

freshsales_restore_cpq_document

Restore a deleted CPQ document.

freshsales_update_cpq_document

Update a CPQ document.

freshsales_update_custom_module_record

Update a custom module record.

freshsales_update_module_customization

Update a custom module definition (admin).

freshsales_bulk_assign_products

Bulk-assign an owner to products.

freshsales_bulk_delete_products

Bulk-delete products.

freshsales_bulk_restore_products

Bulk-restore deleted products.

freshsales_bulk_update_products

Bulk-update products (async).

freshsales_create_product

Create a product.

freshsales_delete_product

Delete a product.

freshsales_get_product

View a product by id.

freshsales_restore_product

Restore a deleted product.

freshsales_update_product

Update a product (wrapped under "product").

freshsales_add_contacts_to_list

Add/copy contacts into a list.

freshsales_create_list

Create a marketing list (wrapped under "list").

freshsales_get_list_contacts

Fetch all contacts in a marketing list.

freshsales_list_lists

Fetch all marketing lists.

freshsales_move_contacts_between_lists

Move contacts from one list to another.

freshsales_remove_contacts_from_list

Remove contacts from a list.

freshsales_update_list

Rename/update a marketing list (wrapped under "list").

freshsales_delete_sales_activity

Delete a sales activity.

freshsales_get_sales_activity

View a single sales activity by id.

freshsales_get_sales_activity_fields

List sales-activity field definitions (system + custom).

freshsales_update_sales_activity

Update a sales activity (e.g.

freshsales_delete_appointment

Delete an appointment.

freshsales_delete_task

Delete a task.

freshsales_get_appointment

View a single appointment by id.

freshsales_get_task

View a single task by id.

freshsales_update_appointment

Update an appointment.

freshsales_delete_note

Delete a note.

freshsales_update_note

Update a note's text (wrapped under "note").

freshsales_create_document_link

Attach a URL link to a record.

freshsales_create_phone_call

Log a manual phone call.

freshsales_get_module_form_fields

List all fields in a module's form (use for custom modules).

Connect Freshsales to your AI

Credentials off one Freshsales screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

Paste your Freshsales domain and API key into the connect form. Authentication runs server-side over HTTPS, with no OAuth popup and no re-auth later. The key is scoped to one account, so the server is too.

Freshsales domainyour-company.myfreshworks.com
API key••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • Show me every deal in the Committed view and who owns each one

    • list_deal_views
    • list_deals_by_view
    • list_owners
  • Move all deals in my Q3 Renewals view to the Negotiation stage

    • list_deal_views
    • list_deals_by_view
    • list_deal_stages
    • update_deal
  • Log yesterday's discovery call on Acme and book a follow-up for Friday

    • lookup
    • create_sales_activity
    • create_appointment
  • Which open deals have no task or appointment scheduled against them

    • list_deals_by_view
    • list_tasks
    • list_appointments

Use Freshsales from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Freshsales MCP server questions

What teams ask before putting Freshsales behind an AI client.

What do I need to connect my Freshsales account?

Two things: your Freshsales domain and an API key. You paste both into the connect form, and authentication happens server-side over HTTPS, so there is no OAuth popup and nothing to re-authorize later. The connection works the moment it is saved.

Does this work with Freshsales Suite and Freshworks CRM?

Yes. The same API key connects Freshsales, Freshsales Suite and Freshworks CRM accounts. Coverage spans contacts, sales accounts, deals and products, tasks, appointments, notes, sales activities and call logs, CPQ products and documents, marketing lists, and global search.

How does the agent find a record when I only give it a name or an email?

Two ways. `search` runs a global full-text search across entities, which is what you want for a vague "find the Acme contact" request, while `lookup` is field-scoped and matches a specific field against an exact value, such as an email address. Once it has an id, `get_contact`, `get_deal` or `get_account` pull the full record.

Why does the agent list stages and owners before it writes anything?

Because the Freshsales API writes by id, not by label. The selector tools exist to resolve those ids first: `list_deal_stages` and `list_deal_pipelines` for stage moves, `list_owners` for assignment, `list_lead_sources`, `list_contact_statuses` and `list_currencies` for the rest. Expect an extra read call before a write that references one of those fields.

Can it read and write custom fields and custom modules?

Yes. `get_contact_fields` and `get_deal_fields` return every field definition, system and custom, including the valid picklist choices, so the agent can check a value before it writes it. Custom modules have their own set of operations alongside the standard objects.

What happens when the agent deletes a record, and how do I pull a long list safely?

Deletes are soft: `delete_contact` moves the record to the recycle bin rather than removing it outright. Views come back paginated, so `list_contacts_by_view`, `list_deals_by_view` and `list_accounts_by_view` page through large result sets instead of pulling everything at once, and longer-running work runs as an async job the agent polls with `get_job_status`.

Do I have to run or host the Freshsales MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 35 of the 127 tools load by default?

Loading 127 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 35-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 127 here. A trigger is something PopMCP watches for you: 12 Freshsales events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Freshsales.

Connect Freshsales to your AI in minutes

Launch a hosted MCP endpoint for Freshsales, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP