Skip to main content
Glama
jonnyanarx

Freshsales MCP Server

by jonnyanarx

update_deal

Update an existing Freshsales CRM deal by changing its stage, amount, owner, or other fields using the deal ID. Keep deal records accurate without manual edits.

Instructions

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
tagsNo
amountNo
deal_idYesDeal ID
owner_idNo
contact_idNo
custom_fieldNo
deal_type_idNo
deal_stage_idNoSee list_field_choices(module="deals", field="deal_stage_id")
expected_closeNo
lead_source_idNo
deal_pipeline_idNo
sales_account_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It conveys that this is a mutation but says nothing about whether it is a partial or full update (only deal_id is required, which strongly suggests partial), permission requirements, reversibility, or what happens to unspecified fields. For a 13-parameter write tool with zero annotation coverage, that is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the core action front-loaded and the examples parenthetically appended, so nothing is wasted. It is arguably too short for a 13-parameter tool, but that is a completeness issue rather than a conciseness flaw.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a mutation tool with no annotations, no output schema, a nested custom_field object, and 15% schema coverage across 13 parameters, the description is far too thin. It should at minimum clarify partial-update semantics and the custom_field handling to let an agent invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 15% — just deal_id and deal_stage_id are documented, and the latter usefully points at list_field_choices. The description mentions only three fields (stage, amount, owner) out of thirteen, so the remaining ten parameters (tags, custom_field, expected_close, pipeline, sales_account, etc.) are undocumented in both schema and description. The description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Update an existing deal") and illustrates the operation with concrete examples (stage move, amount/owner change). The update_* naming pattern makes it distinguishable from create_deal, view_deal, list_deals, and search_deals without opening the schema, though the description itself does not name those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word "existing" implies this is for records that already exist, but there is no explicit when-to-use guidance, no mention of when to prefer create_deal or search_deals first, and no stated prerequisites such as needing a valid deal_id. Usage is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.