Freshsales MCP by usefulapi
io.usefulapi/freshsalesusefulapi.iostreamable-httpv1.0.0Scanned
Manage Freshsales contacts, accounts, deals, tasks and appointments; add notes.
31 tools: 5 can delete or cancel things, 6 change things and 20 only read.
- Reads private data · 9
- Reads text others write · 31
- Can send data out · 1
- No findings
Anlyon alternative
11 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
31 tools
Deletes or cancels 5Claude Code: deny
freshsales_update_accountWRITE: change fields of an existing account (company); only the fields you pass are changed.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_update_account" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: change fields of an existing account (company); only the fields you pass are changed. PUT /sales_accounts/{id}.
Annotations the server declares
- title: Update account
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
freshsales_update_contactWRITE: change fields of an existing contact; only the fields you pass are changed (passing sales_accounts replaces the associated companies).Reads text others writeNo findings
Why it is in this group
- The name "freshsales_update_contact" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: change fields of an existing contact; only the fields you pass are changed (passing sales_accounts replaces the associated companies). PUT /contacts/{id}.
Annotations the server declares
- title: Update contact
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
freshsales_update_dealWRITE: change fields of an existing deal, e.g.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_update_deal" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Update deal
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
freshsales_update_noteWRITE: replace the text of an existing note.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_update_note" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: replace the text of an existing note. PUT /notes/{id}.
Annotations the server declares
- title: Update note
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
freshsales_update_taskWRITE: change a task: title, details, due date, owner, or mark it completed (status 1) or open (status 0).Reads text others writeNo findings
Why it is in this group
- The name "freshsales_update_task" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: change a task: title, details, due date, owner, or mark it completed (status 1) or open (status 0). PUT /tasks/{id}.
Annotations the server declares
- title: Update task
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Changes things 6Claude Code: ask
freshsales_create_accountWRITE: create an account (company).Reads text others writeCan send data outNo findings
Why it is in this group
- The name "freshsales_create_account" says "create": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a destination (input.phone): what the tool writes goes there.
Description, as the server wrote it WRITE: create an account (company). name is required. It may duplicate an existing company: search first (freshsales_search). POST /sales_accounts.
Annotations the server declares
- title: Create account
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
freshsales_create_appointmentWRITE: create an appointment (meeting) with a start and end, optionally attached to a contact, account or deal and with attendees.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_create_appointment" says "create": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create appointment
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
freshsales_create_contactWRITE: create a contact.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_create_contact" says "create": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create contact
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
freshsales_create_dealWRITE: create a deal.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_create_deal" says "create": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create deal
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
freshsales_create_noteWRITE: add a note to a contact, account or deal.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_create_note" says "create": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: add a note to a contact, account or deal. Visible to your team on the record. POST /notes.
Annotations the server declares
- title: Add note
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
freshsales_create_taskWRITE: create a task (to-do) attached to a contact, account or deal.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_create_task" says "create": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 20Show 20 read-only tools
freshsales_get_accountOne account (company) by id with its fields, optionally with related records embedded (contacts, deals, tasks, appointments, owner...).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "freshsales_get_account" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "contact": it reads contacts.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One account (company) by id with its fields, optionally with related records embedded (contacts, deals, tasks, appointments, owner...). GET /sales_accounts/{id}.
Annotations the server declares
- title: Get account
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_get_appointmentOne appointment by id with its attendees.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_get_appointment" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One appointment by id with its attendees. GET /appointments/{id}.
Annotations the server declares
- title: Get appointment
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_get_contactOne contact by id with all its fields, optionally with related records embedded via include (notes, tasks, appointments, deals, sales_accounts, owner, sales_activities...).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "freshsales_get_contact" says "get": a word for reading.
What it can reach
- private-dataThe name "freshsales_get_contact" says "get" and "contact": it reads contacts.
- private-dataThe description's first sentence says "contact": it reads contacts.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Get contact
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_get_dealOne 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, own…Reads private dataReads text others writeNo findings
Why it is in this group
- The name "freshsales_get_deal" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "contact": it reads contacts.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Get deal
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_get_taskOne task by id.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_get_task" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One task by id. GET /tasks/{id}.
Annotations the server declares
- title: Get task
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_account_viewsList the saved account (company) views of the account, e.g.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_list_account_views" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: List account views
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_accountsList 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.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_list_accounts" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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}.
Annotations the server declares
- title: List accounts
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_appointmentsList appointments that are open (upcoming) or complete (one filter per call), with title, time, location and creator.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_list_appointments" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List appointments that are open (upcoming) or complete (one filter per call), with title, time, location and creator. GET /appointments.
Annotations the server declares
- title: List appointments
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_contact_viewsList the saved contact views (filters) of the account, e.g.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "freshsales_list_contact_views" says "list": a word for reading.
What it can reach
- private-dataThe name "freshsales_list_contact_views" says "list" and "contact": it reads contacts.
- private-dataThe description's first sentence says "list" and "contact": it reads contacts.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: List contact views
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_contactsList 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 contact…Reads private dataReads text others writeNo findings
Why it is in this group
- The name "freshsales_list_contacts" says "list": a word for reading.
What it can reach
- private-dataThe name "freshsales_list_contacts" says "list" and "contact": it reads contacts.
- private-dataThe description's first sentence says "list" and "contact": it reads contacts.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it 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}.
Annotations the server declares
- title: List contacts
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_deal_pipelinesList the deal pipelines (id, name).Reads text others writeNo findings
Why it is in this group
- The name "freshsales_list_deal_pipelines" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List the deal pipelines (id, name). GET /selector/deal_pipelines.
Annotations the server declares
- title: List deal pipelines
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_deal_stagesList deal stages (id, name, deal_pipeline_id): those of the default pipeline, or of the pipeline given by pipeline_id.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_list_deal_stages" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: List deal stages
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_deal_viewsList the saved deal views of the account, e.g.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_list_deal_views" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List the saved deal views of the account, e.g. 'Open Deals'. A view id is needed by freshsales_list_deals. GET /deals/filters.
Annotations the server declares
- title: List deal views
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_dealsList the deals in a view (view_id from freshsales_list_deal_views), 25 per page, with name, amount, expected close, probability and age.Reads text others writeNo findings
Why it is in this group
- The name "freshsales_list_deals" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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}.
Annotations the server declares
- title: List deals
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_optionsList 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…Reads private dataReads text others writeNo findings
Why it is in this group
- The name "freshsales_list_options" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "contact": it reads contacts.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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}.
Annotations the server declares
- title: List option values
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_ownersList the users of the account (id and name).Reads text others writeNo findings
Why it is in this group
- The name "freshsales_list_owners" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List the users of the account (id and name). Use the id as owner_id when creating or updating records. GET /selector/owners.
Annotations the server declares
- title: List owners
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_sales_activitiesList logged sales activities (calls, meetings, emails...) of the account.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "freshsales_list_sales_activities" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "meeting": it reads calendars.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it List logged sales activities (calls, meetings, emails...) of the account. GET /sales_activities.
Annotations the server declares
- title: List sales activities
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_list_tasksList tasks by status filter: open, due_today, due_tomorrow, overdue or completed (one filter per call).Reads text others writeNo findings
Why it is in this group
- The name "freshsales_list_tasks" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: List tasks
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_lookupExact-match lookup of contacts, companies or deals by one field, e.g.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "freshsales_lookup" says "lookup": a word for reading.
What it can reach
- private-dataThe description's first sentence says "contact": it reads contacts.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: Look up by field
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
freshsales_searchSearch by name/email text across one record type: contact, sales_account (company), deal or user.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "freshsales_search" says "search": a word for reading.
What it can reach
- private-dataThe description's first sentence says "search" and "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "search" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it Search by name/email text across one record type: contact, sales_account (company), deal or user. Returns id, type, name and email for the matches (up to per_page, default 10). Use the id with the get tools. GET /search.
Annotations the server declares
- title: Search records
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
279 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 1 outbound tool breaks every one.
- Reads private data9
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write31
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out1
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__freshsales__freshsales_create_account"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http freshsales https://freshsales.usefulapi.io/mcpclaude mcp add --transport http freshsales https://freshsales.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__freshsales__freshsales_list_contact_views",
"mcp__freshsales__freshsales_list_contacts",
"mcp__freshsales__freshsales_get_contact",
"mcp__freshsales__freshsales_search",
"mcp__freshsales__freshsales_lookup",
"mcp__freshsales__freshsales_list_account_views",
"mcp__freshsales__freshsales_list_accounts",
"mcp__freshsales__freshsales_get_account",
"mcp__freshsales__freshsales_list_deal_views",
"mcp__freshsales__freshsales_list_deals",
"mcp__freshsales__freshsales_get_deal",
"mcp__freshsales__freshsales_list_tasks",
"mcp__freshsales__freshsales_get_task",
"mcp__freshsales__freshsales_list_appointments",
"mcp__freshsales__freshsales_get_appointment",
"mcp__freshsales__freshsales_list_sales_activities",
"mcp__freshsales__freshsales_list_owners",
"mcp__freshsales__freshsales_list_deal_pipelines",
"mcp__freshsales__freshsales_list_deal_stages",
"mcp__freshsales__freshsales_list_options"
],
"ask": [
"mcp__freshsales__freshsales_create_contact",
"mcp__freshsales__freshsales_create_account",
"mcp__freshsales__freshsales_create_deal",
"mcp__freshsales__freshsales_create_note",
"mcp__freshsales__freshsales_create_task",
"mcp__freshsales__freshsales_create_appointment"
],
"deny": [
"mcp__freshsales__freshsales_update_contact",
"mcp__freshsales__freshsales_update_account",
"mcp__freshsales__freshsales_update_deal",
"mcp__freshsales__freshsales_update_note",
"mcp__freshsales__freshsales_update_task"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as freshsales. Review it before you use it.
Capability tags behind 31 rules
- mcp__freshsales__freshsales_list_contact_views private-data, untrusted-input
- mcp__freshsales__freshsales_list_contacts private-data, untrusted-input
- mcp__freshsales__freshsales_get_contact private-data, untrusted-input
- mcp__freshsales__freshsales_search private-data, untrusted-input
- mcp__freshsales__freshsales_lookup private-data, untrusted-input
- mcp__freshsales__freshsales_list_account_views untrusted-input
- mcp__freshsales__freshsales_list_accounts untrusted-input
- mcp__freshsales__freshsales_get_account private-data, untrusted-input
- mcp__freshsales__freshsales_list_deal_views untrusted-input
- mcp__freshsales__freshsales_list_deals untrusted-input
- mcp__freshsales__freshsales_get_deal private-data, untrusted-input
- mcp__freshsales__freshsales_list_tasks untrusted-input
- mcp__freshsales__freshsales_get_task untrusted-input
- mcp__freshsales__freshsales_list_appointments untrusted-input
- mcp__freshsales__freshsales_get_appointment untrusted-input
- mcp__freshsales__freshsales_list_sales_activities private-data, untrusted-input
- mcp__freshsales__freshsales_list_owners untrusted-input
- mcp__freshsales__freshsales_list_deal_pipelines untrusted-input
- mcp__freshsales__freshsales_list_deal_stages untrusted-input
- mcp__freshsales__freshsales_list_options private-data, untrusted-input
- mcp__freshsales__freshsales_create_contact untrusted-input
- mcp__freshsales__freshsales_update_contact untrusted-input
- mcp__freshsales__freshsales_create_account untrusted-input, outbound
- mcp__freshsales__freshsales_update_account untrusted-input
- mcp__freshsales__freshsales_create_deal untrusted-input
- mcp__freshsales__freshsales_update_deal untrusted-input
- mcp__freshsales__freshsales_create_note untrusted-input
- mcp__freshsales__freshsales_update_note untrusted-input
- mcp__freshsales__freshsales_create_task untrusted-input
- mcp__freshsales__freshsales_update_task untrusted-input
- mcp__freshsales__freshsales_create_appointment untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/freshsales/verify?hash=b1e736d195b059f99b62c8c08003c1286931a8c22cc9e9c7dced97b013efc3a5" | jq -e '.changed == false'Pinned hash b1e736d195b0, from Oct 25, 2026, 13:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.usefulapi/freshsales/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.usefulapi/freshsales)Source: MCP Registry · repository. Synced Oct 25, 2026, 13:17 UTC.