Skip to main content
Glama
Thesidman

freshsales-mcp

by Thesidman

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: global search, listing saved views, listing records from a view, fetching a single record by ID, and an escape hatch for arbitrary GET endpoints. No two tools overlap in functionality.

    Naming Consistency5/5

    All tool names consistently follow the 'freshsales_' prefix with a verb_noun pattern (search, list_views, list_records, get_record, raw_request). The naming is uniform and predictable.

    Tool Count5/5

    With five tools, the server is well-scoped for a read-only CRM access layer. It covers search, view discovery, record listing, and detail retrieval without unnecessary bloat.

    Completeness4/5

    The main read workflow (search, discover views, list records, get record details) is well covered, and raw_request provides a fallback for any missing endpoints. However, get_record does not support tasks/appointments even though list_records can return them, leaving a minor gap.

  • Average 3.7/5 across 5 of 5 tools scored. Lowest: 3/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden for behavioral disclosure. It says 'Fetch full details,' which implies a read operation, but doesn't explicitly state read-only behavior, discuss permissions, or mention the impact of the 'include' parameter on response content. This is a significant gap for a tool with no annotation support.

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

    Conciseness5/5

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

    The description is a single, clear, front-loaded sentence with no unnecessary words. It efficiently conveys the primary purpose without fluff.

    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 the tool has 3 parameters, no output schema, and no annotations, the description is too thin. It doesn't explain the 'include' parameter, omits supported modules, and doesn't outline what 'full details' entails. Even for a simple get-by-id tool, this is insufficient for an agent to use it correctly across all valid inputs.

    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?

    The input schema already provides descriptions for 'id' and 'include', and the description merely says 'by its id,' adding little new meaning. It partially lists module values but omits two enum options, making the parameter information less complete than the schema. The 'include' parameter is not explained in the description at all.

    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?

    The description clearly states the tool fetches full details of a single record by id, using the specific verb 'Fetch' and naming the resource types. However, it omits 'tasks' and 'appointments' from the schema enum, making the module list incomplete and therefore slightly imprecise.

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

    Usage Guidelines3/5

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

    The description implies use when you have a record id and need full details, but it doesn't explicitly contrast with sibling tools like search or list_records. No explicit 'when to use' or 'when not to use' guidance is provided.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose the behavioral profile. It mentions listing and pagination but does not describe the response format, sorting, authorization requirements, rate limits, or any other side effects. For a read operation, this is minimal transparency.

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

    Conciseness5/5

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

    The description is two sentences, front-loaded with the core function and a practical prerequisite. It is concise with no filler, achieving high information density.

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

    Completeness3/5

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

    Given no output schema and no annotations, the description omits the return structure and any additional filtering or sorting behaviors. It covers the essential action and pagination but leaves the agent guessing about response fields and edge cases. It is adequate but not comprehensive.

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

    Parameters3/5

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

    Schema description coverage is low (25%). The description adds context that view_id comes from freshsales_list_views and lists the record types, which maps to the module enum. However, it does not elaborate on page or per_page semantics beyond what the schema already provides via defaults and minimum/maximum. The added value is moderate.

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

    Purpose5/5

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

    The description clearly states the tool lists records of multiple types (leads, contacts, deals, accounts, tasks, appointments) belonging to a saved view, with pagination. This distinguishes it from sibling tools like freshsales_search (which searches across criteria) and freshsales_get_record (which retrieves a single record).

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

    Usage Guidelines3/5

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

    The description provides a useful prerequisite: 'Get view_id from freshsales_list_views first.' However, it does not explicitly explain when to use this tool versus freshsales_search for dynamic queries, nor does it state when not to use it. Usage guidance is implied but not explicit.

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

  • 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 burden. It only states the operation is a search, implying a read-only action, but does not disclose return format, pagination, search behavior (e.g., fuzzy matching), or any limitations. Without explicit behavioral context, an agent cannot fully anticipate the tool's response or side effects.

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

    Conciseness5/5

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

    Two sentences with no fluff. The first sentence states the core function, the second gives usage context. Every word earns its place, and front-loading is effective.

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

    Completeness3/5

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

    The tool is simple with 2 parameters and no output schema, so the description covers the core purpose and usage. However, it omits the return structure and any search semantics (e.g., whether it returns a list, ranking, or partial matches). Given no annotations, the description is somewhat minimal for a search tool.

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

    Parameters3/5

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

    The input schema already provides 100% description coverage for both parameters. The description repeats that search can be by name, email, phone, or company, aligning with the query parameter, but adds no new semantic nuance beyond what the schema states. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the tool performs a global search across Freshsales CRM entities (leads, contacts, deals, accounts) by name, email, phone, or company. It uses a specific verb 'search' and resource 'Freshsales CRM', and the scope distinguishes it from sibling tools like list_records or get_record.

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

    Usage Guidelines4/5

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

    The description explicitly says 'Use this first when the user asks about a specific person or company', which provides clear when-to-use guidance. However, it does not explicitly mention when not to use it or name alternative tools, so it lacks full exclusions.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the burden of conveying the tool's safe read-only nature. The verb 'List' implies a read operation, but the description does not disclose details about return values, pagination, or any potential side effects. It adds the context of filtering examples, which helps, but remains minimal for a tool with no annotations.

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

    Conciseness5/5

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

    Two sentences with no fluff. The first sentence leads with the action and resource, the second adds purpose and a workflow tip. Every word earns its place.

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

    Completeness4/5

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

    The tool is simple (single parameter, no output schema), and the description covers its core purpose and usage. It implicitly indicates that returning view_id is part of the result ('Use this to discover a view_id'), which is sufficient for this low-complexity tool. A score lower than 4 would be overly harsh given the context.

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

    Parameters3/5

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

    The schema fully describes the 'module' parameter with an enum, achieving 100% coverage. The description does not add parameter-specific information beyond the schema, so the baseline score of 3 applies.

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

    Purpose5/5

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

    The description clearly states the action ('List') and the resource ('saved views (filters) for a Freshsales module') with concrete examples ('My Leads', 'Open Deals'). It also differentiates from sibling tools by explicitly tying it to discovering a view_id for freshsales_list_records, which is distinct from listing records directly.

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

    Usage Guidelines4/5

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

    Provides an explicit use case: 'Use this to discover a view_id before calling freshsales_list_records.' This effectively positions it relative to a sibling tool. However, it does not mention any when-not-to-use scenarios or alternative contexts, though sibling names imply other use cases.

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

  • Behavior3/5

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

    With no annotations, the description carries the transparency burden. It discloses the HTTP method (GET) and endpoint scope, which implies a read-only operation, but it does not mention authentication requirements, error behavior, or response format, leaving some behavioral ambiguity for a raw request tool.

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

    Conciseness5/5

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

    The description is only two sentences, front-loaded with purpose and examples, and contains no filler. Every word earns its place.

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

    Completeness4/5

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

    For a raw GET escape hatch, the description provides the base URL, path semantics, and usage guidance, which is largely sufficient. The lack of output schema and annotations is somewhat mitigated by the clear scope, though explicitly stating the return format would make it fully complete.

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

    Parameters4/5

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

    The schema already covers both parameters fully, and the description adds value by specifying the base URL and giving example paths. This helps the agent understand how to construct the 'path' parameter beyond the schema's bare description.

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

    Purpose5/5

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

    The description clearly identifies this as an escape hatch for any GET endpoint under the Freshsales API base URL not covered by other tools, with concrete examples like '/leads/filters'. This specific verb+resource+scope fully distinguishes it from the sibling tools.

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

    Usage Guidelines5/5

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

    It explicitly states 'Only use when the other tools can't answer the question' and frames the tool as a fallback for endpoints not covered by other tools. This is excellent when-to-use guidance and names the alternative approach.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

freshsales-mcp MCP server

Copy to your README.md:

Score Badge

freshsales-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Thesidman/freshsales-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server