Freshsales MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.15.4Updated Nov 7, 2026

Manage Freshsales contacts, accounts, deals, tasks and appointments; add notes.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Hosted Freshsales CRM connector that lets an assistant read and update contacts, accounts, deals, tasks, appointments and notes.

What you can do
  • Browse and read contacts, companies and deals through saved views, search, exact-match lookup and per-record detail with related records
  • Inspect tasks, appointments, logged sales activities, owners, pipelines, deal stages and configured field options
  • Create and update contacts, accounts and deals, including moving a deal to another stage
  • Add or rewrite notes, create and update tasks, and schedule appointments with attendees
  • Check monthly tool-call usage, request a missing feature, or manage a Pro subscription
When to use it
Useful when you want an assistant to answer questions about a Freshsales pipeline or customer records, or to log notes, tasks and meetings in Freshsales without switching apps. It suits sales follow-up and CRM housekeeping rather than bulk data migration.
Requirements
Remote MCP endpoint added by URL only; the server signs users in with OAuth, and the login page asks for the Freshsales domain and API key, which are validated and stored per user. No API key or Authorization header goes in the client config. A free plan allows 50 tool calls per month; paid plans are billed per account.
Before you install
Eleven tools write to Freshsales: creating and updating contacts, accounts, deals, notes, tasks and appointments, and appointments may notify attendees. Creating records can produce duplicates, so search first. The server is a third-party host that stores your Freshsales domain and API key and meters usage; paid plans are billed through a Stripe checkout link, and cancelling gives no refund for the current period.

Installation

In SourceWeft

  1. Open Freshsales MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Ffreshsales/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "freshsales-by-usefulapi": {
      "type": "http",
      "url": "https://freshsales.usefulapi.io/mcp"
    }
  }
}

README

Freshsales MCP by usefulapi

Use Freshsales from Claude, Cursor, or any MCP client — work with your contacts, accounts, deals, tasks and appointments. Hosted, no local install: connect with your own Freshsales credentials.

Live endpoint: https://freshsales.usefulapi.io/mcp · Homepage: https://usefulapi.io/freshsales

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://freshsales.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http freshsales https://freshsales.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "freshsales": {      "url": "https://freshsales.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Freshsales credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/freshsales/

On first connect you'll enter your Freshsales domain and API key (Freshsales Profile Settings → API Settings). They are validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
freshsales_list_contact_viewsreadList contact views
freshsales_list_contactsreadList contacts
freshsales_get_contactreadGet contact
freshsales_searchreadSearch records
freshsales_lookupreadLook up by exact field
freshsales_list_account_viewsreadList account views
freshsales_list_accountsreadList accounts
freshsales_get_accountreadGet account
freshsales_list_deal_viewsreadList deal views
freshsales_list_dealsreadList deals
freshsales_get_dealreadGet deal
freshsales_list_tasksreadList tasks
freshsales_get_taskreadGet task
freshsales_list_appointmentsreadList appointments
freshsales_get_appointmentreadGet appointment
freshsales_list_sales_activitiesreadList sales activities
freshsales_list_ownersreadList owners (users)
freshsales_list_deal_pipelinesreadList deal pipelines
freshsales_list_deal_stagesreadList deal stages
freshsales_list_optionsreadList option values
freshsales_create_contactwriteCreate contact
freshsales_update_contactwriteUpdate contact
freshsales_create_accountwriteCreate account
freshsales_update_accountwriteUpdate account
freshsales_create_dealwriteCreate deal
freshsales_update_dealwriteUpdate deal
freshsales_create_notewriteAdd note
freshsales_update_notewriteUpdate note
freshsales_create_taskwriteCreate task
freshsales_update_taskwriteUpdate task
freshsales_create_appointmentwriteCreate appointment
freshsales_usage_statusmetaUsage status (free-tier meter)
freshsales_request_featuremetaRequest a missing feature
freshsales_upgrademetaUpgrade to Pro or Pro+
freshsales_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per account)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with freshsales_upgrade (it returns a Stripe Checkout link). Cancel any time with freshsales_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running freshsales_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT — see LICENSE. Documentation only; the server is hosted.

Source: servers/freshsales/README.md at commit 4046075

Tools

31

freshsales_list_contact_views

List contact views

List the saved contact views (filters) of the account, e.g. 'My Contacts', 'New Contacts', 'All Contacts'. A view id is needed by freshsales_list_contacts; ids differ per account. GET /contacts/filters.

Takes no parameters.

freshsales_list_contacts

List contacts

List the contacts in a view (get view_id from freshsales_list_contact_views), 25 per page with name, email, phone numbers, job title, lead score, open deals amount and last contacted. Pages: use next_page. GET /contacts/view/{view_id}.

Parameterspagesortview_idrequiredsort_type

freshsales_get_contact

Get contact

One contact by id with all its fields, optionally with related records embedded via include (notes, tasks, appointments, deals, sales_accounts, owner, sales_activities...). GET /contacts/{id}.

Parametersincludecontact_idrequired

freshsales_lookup

Look up by exact field

Exact-match lookup of contacts, companies or deals by one field, e.g. a contact by email address. field is 'email' (contacts), 'name', or a custom field name (cf_...). Returns the full records. GET /lookup.

Parametersfieldrequiredvaluerequiredentity

freshsales_list_account_views

List account views

List the saved account (company) views of the account, e.g. 'My Accounts'. A view id is needed by freshsales_list_accounts. GET /sales_accounts/filters.

Takes no parameters.

freshsales_list_accounts

List accounts

List the accounts (companies) in a view (view_id from freshsales_list_account_views), 25 per page, with name, location, open deals amount and last contacted. GET /sales_accounts/view/{view_id}.

Parameterspagesortview_idrequiredsort_type

freshsales_get_account

Get account

One account (company) by id with its fields, optionally with related records embedded (contacts, deals, tasks, appointments, owner...). GET /sales_accounts/{id}.

Parametersincludeaccount_idrequired

freshsales_list_deal_views

List deal views

List the saved deal views of the account, e.g. 'Open Deals'. A view id is needed by freshsales_list_deals. GET /deals/filters.

Takes no parameters.

freshsales_list_deals

List deals

List the deals in a view (view_id from freshsales_list_deal_views), 25 per page, with name, amount, expected close, probability and age. GET /deals/view/{view_id}.

Parameterspagesortview_idrequiredsort_type

freshsales_get_deal

Get deal

One deal by id with amount, expected close, probability and ids of its stage, pipeline and owner, optionally with related records embedded (contacts, sales_account, deal_stage, owner, notes via sales_activities...). GET /deals/{id}.

Parametersdeal_idrequiredinclude

freshsales_list_tasks

List tasks

List tasks by status filter: open, due_today, due_tomorrow, overdue or completed (one filter per call). Returns title, due date, owner and status. GET /tasks.

Parameterspagefilter

freshsales_get_task

Get task

One task by id. GET /tasks/{id}.

Parameterstask_idrequired

freshsales_list_appointments

List appointments

List appointments that are open (upcoming) or complete (one filter per call), with title, time, location and creator. GET /appointments.

Parameterspagefilter

freshsales_get_appointment

Get appointment

One appointment by id with its attendees. GET /appointments/{id}.

Parametersappointment_idrequired

freshsales_list_sales_activities

List sales activities

List logged sales activities (calls, meetings, emails...) of the account. GET /sales_activities.

Parameterspageper_page

freshsales_list_owners

List owners (users)

List the users of the account (id and name). Use the id as owner_id when creating or updating records. GET /selector/owners.

Takes no parameters.

freshsales_list_deal_pipelines

List deal pipelines

List the deal pipelines (id, name). GET /selector/deal_pipelines.

Takes no parameters.

freshsales_list_deal_stages

List deal stages

List deal stages (id, name, deal_pipeline_id): those of the default pipeline, or of the pipeline given by pipeline_id. Use the id as deal_stage_id. GET /selector/deal_stages or /selector/deal_pipelines/{id}/deal_stages.

Parameterspipeline_id

freshsales_list_options

List option values

List the configured choices (id and name) for a field: lead_sources, contact_statuses, lifecycle_stages, deal_types, deal_reasons, deal_products, deal_payment_statuses, territories, currencies, industry_types, business_types, campaigns, sales_activity_types, sales_activity_outcomes. Use the ids in the *_id fields of the write tools. GET /selector/{kind}.

Parameterskindrequired

freshsales_create_contact

Create contact

WRITE: create a contact. Freshsales requires an email or a mobile number. It may create a duplicate of an existing contact: search first (freshsales_lookup by email). POST /contacts.

Parameterscityemailstateaddresscountryzipcodeowner_idjob_titlelast_namefirst_namework_numbercustom_field+5 more

freshsales_update_contact

Update contact

WRITE: change fields of an existing contact; only the fields you pass are changed (passing sales_accounts replaces the associated companies). PUT /contacts/{id}.

Parameterscityemailstateaddresscountryzipcodeowner_idjob_titlelast_namecontact_idrequiredfirst_namework_number+6 more

freshsales_create_account

Create account

WRITE: create an account (company). name is required. It may duplicate an existing company: search first (freshsales_search). POST /sales_accounts.

Parameterscitynamerequiredphonestateaddresscountrywebsitezipcodeowner_idcustom_fieldannual_revenuebusiness_type_id+2 more

freshsales_update_account

Update account

WRITE: change fields of an existing account (company); only the fields you pass are changed. PUT /sales_accounts/{id}.

Parameterscitynamephonestateaddresscountrywebsitezipcodeowner_idaccount_idrequiredcustom_fieldannual_revenue+3 more

freshsales_create_deal

Create deal

WRITE: create a deal. name, amount and sales_account_id are required; contact_ids attach existing contacts. Stage and pipeline default to the first of the default pipeline. POST /deals.

Parametersnamerequiredamountrequiredowner_idcontact_idsprobabilitycustom_fielddeal_type_iddeal_stage_idexpected_closelead_source_iddeal_pipeline_idsales_account_idrequired

freshsales_update_deal

Update deal

WRITE: change fields of an existing deal, e.g. move it to another stage (deal_stage_id), change amount or expected close; only the fields you pass are changed. PUT /deals/{id}.

Parametersnameamountdeal_idrequiredowner_idprobabilitycustom_fielddeal_type_iddeal_stage_idexpected_closelead_source_idadd_contact_idsdeal_pipeline_id+2 more

freshsales_create_note

Add note

WRITE: add a note to a contact, account or deal. Visible to your team on the record. POST /notes.

Parameterstarget_idrequireddescriptionrequiredtarget_typerequired

freshsales_update_note

Update note

WRITE: replace the text of an existing note. PUT /notes/{id}.

Parametersnote_idrequireddescriptionrequired

freshsales_create_task

Create task

WRITE: create a task (to-do) attached to a contact, account or deal. title, due_date, owner_id and the target are required. POST /tasks.

Parameterstitlerequireddue_daterequiredowner_idrequiredtarget_idrequireddescriptiontarget_typerequired

freshsales_update_task

Update task

WRITE: change a task: title, details, due date, owner, or mark it completed (status 1) or open (status 0). PUT /tasks/{id}.

Parameterstitlestatustask_idrequireddue_dateowner_iddescription

freshsales_create_appointment

Create appointment

WRITE: create an appointment (meeting) with a start and end, optionally attached to a contact, account or deal and with attendees. Attendees may be notified by Freshsales. POST /appointments.

Parameterstitlerequiredend_daterequiredlocationfrom_daterequiredtarget_idtime_zonedescriptiontarget_typeattendee_user_idsattendee_contact_ids

Version history

13
  1. v1.15.4LatestNov 7, 2026
  2. v1.14.3Nov 5, 2026
  3. v1.14.2Nov 5, 2026
  4. v1.14.1Nov 4, 2026
  5. v1.14.0Nov 3, 2026
  6. v1.13.1Nov 3, 2026
  7. v1.12.0Nov 1, 2026
  8. v1.10.0Oct 31, 2026
  9. v1.9.0Oct 31, 2026
  10. v1.8.2Oct 30, 2026
  11. v1.8.0Oct 30, 2026
  12. v1.3.0Oct 26, 2026
  13. v1.0.0Oct 25, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations