logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ai-powered-freshdesk-integration-service

A middleware platform enabling large language models to programmatically manipulate Freshdesk customer support tickets and associated data via its RESTful API. This functionality streamlines support workflows through automated ticket lifecycle management, agent record inspection, and communication handling.

Author

ai-powered-freshdesk-integration-service logo

effytech

MIT License

Quick Info

GitHub GitHub Stars 27
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

apisapifreshdeskfreshdesk apifreshdesk automateautomate support

Freshdesk AI Orchestration Module

Smithery Status

This module serves as an intermediary layer, allowing generative AI agents to interface directly with the Freshdesk helpdesk system to execute complex customer service operations.

Core Capabilities

  • Freshdesk API Connectivity: Secure, structured access to all necessary Freshdesk endpoints.
  • Autonomous Agent Operations: Empowers LLMs to manage support queues without manual intervention.
  • Automated Lifecycle Control: Full capability for ticket generation, status modification, and correspondence management.

Available Toolset

The service exposes the following functions for AI invocation:

Ticket Manipulation Tools

  • create_ticket: Submits a new support case.
  • Parameters:

    • subject (string, mandatory): The title of the issue.
    • description (string, mandatory): Detailed problem statement.
    • source (number, mandatory): Identifier for the channel of submission.
    • priority (number, mandatory): Severity level assignment.
    • status (number, mandatory): Initial state of the ticket.
    • email (string, optional): Contact email for the requester.
    • requester_id (number, optional): Internal user ID of the requester.
    • custom_fields (object, optional): Key-value pairs for bespoke fields.
    • additional_fields (object, optional): Extra top-level attributes for the ticket record.
  • update_ticket: Modifies attributes of an existing ticket.

  • Parameters:

    • ticket_id (number, mandatory): Unique identifier of the record to alter.
    • ticket_fields (object, mandatory): A map of attributes and their new values.
  • delete_ticket: Permanently removes a specified ticket.

  • Parameters:

    • ticket_id (number, mandatory): The ID of the ticket to be purged.
  • search_tickets: Executes a query against the ticket database.

  • Parameters:

    • query (string, mandatory): The Lucene-style search expression.
  • get_ticket_fields: Retrieves the schema definition for ticket properties.

  • Parameters:

    • None
  • get_tickets: Fetches a paginated list of support cases.

  • Parameters:

    • page (number, optional): Page index for results.
    • per_page (number, optional): Count of items per result set.
  • get_ticket: Retrieves the full details for one ticket.

  • Parameters:

    • ticket_id (number, mandatory): Identifier of the desired ticket.
  • get_ticket_conversation: Fetches the historical thread of communication.

  • Parameters:

    • ticket_id (number, mandatory): The relevant ticket identifier.
  • create_ticket_reply: Adds an external reply to the ticket timeline.

  • Parameters:

    • ticket_id (number, mandatory): Target ticket reference.
    • body (string, mandatory): Text content of the response.
  • create_ticket_note: Adds an internal, non-visible comment.

  • Parameters:

    • ticket_id (number, mandatory): Target ticket reference.
    • body (string, mandatory): Content of the internal memo.
  • update_ticket_conversation: Edits the content of an existing communication item.

  • Parameters:

    • conversation_id (number, mandatory): Identifier for the communication entry.
    • body (string, mandatory): The revised text.
  • view_ticket_summary: Views the current ticket summary content.

  • Parameters:

    • ticket_id (number, mandatory): Identifier of the ticket in question.
  • update_ticket_summary: Replaces the ticket's summary field.

  • Parameters:

    • ticket_id (number, mandatory): Target ticket ID.
    • body (string, mandatory): The new summary text.
  • delete_ticket_summary: Clears the ticket summary field.

  • Parameters:
    • ticket_id (number, mandatory): Target ticket ID.

Agent Management Tools

  • get_agents: Lists all registered support personnel.
  • Parameters:

    • page (number, optional): Index for pagination.
    • per_page (number, optional): Result count limit.
  • view_agent: Retrieves the profile of a specific agent.

  • Parameters:

    • agent_id (number, mandatory): ID of the agent record.
  • create_agent: Provisions a new user account within Freshdesk.

  • Parameters:

    • agent_fields (object, mandatory): Required details for agent creation.
  • update_agent: Modifies an existing agent's configuration.

  • Parameters:

    • agent_id (number, mandatory): Target agent identifier.
    • agent_fields (object, mandatory): Updated agent attributes.
  • search_agents: Finds agents matching a textual criterion.

  • Parameters:
    • query (string, mandatory): The search term or filter expression.

Contact and Company Tools

  • list_contacts: Fetches the directory of system contacts.
  • Parameters:

    • page (number, optional): Page number for contact listing.
    • per_page (number, optional): Maximum contacts to return.
  • get_contact: Views the details of a specific contact entity.

  • Parameters:

    • contact_id (number, mandatory): ID of the customer/user record.
  • search_contacts: Queries the contact database.

  • Parameters:

    • query (string, mandatory): Search filter string.
  • update_contact: Edits details for a known contact.

  • Parameters:

    • contact_id (number, mandatory): Identifier of the contact.
    • contact_fields (object, mandatory): Data structure containing field updates.
  • list_companies: Retrieves the list of associated organizations.

  • Parameters:

    • page (number, optional): Page offset for results.
    • per_page (number, optional): Result count limit.
  • view_company: Gets the profile for a specified organization.

  • Parameters:

    • company_id (number, mandatory): Identifier of the corporate entity.
  • search_companies: Searches for organizations.

  • Parameters:

    • query (string, mandatory): Search predicate.
  • find_company_by_name: Locates an organization using its registered name.

  • Parameters:

    • name (string, mandatory): The organization's official designation.
  • list_company_fields: Displays the available structure for company records.

  • Parameters:
    • None

Deployment Guide

Installation via Smithery CLI

Install this handler into your local Claude environment using the Smithery utility:

bash npx -y @smithery/cli install @effytech/freshdesk_mcp --client claude

Prerequisites for Operation

  1. Active subscription to Freshdesk.
  2. A generated Freshdesk API Access Key.
  3. The uvx utility must be installed on the execution machine (pip install uv or use platform equivalents).

Configuration Steps

  1. Obtain your unique API credential from the Freshdesk administration section.
  2. Define the requisite domain and authentication token in your environment setup.

Integration with Claude Desktop

Ensure the following configuration block is merged into your claude_desktop_config.json file:

"mcpServers": { "freshdesk-mcp": { "command": "uvx", "args": [ "freshdesk-mcp" ], "env": { "FRESHDESK_API_KEY": "", "FRESHDESK_DOMAIN": "" } } }

Note: Substitute <YOUR_FRESHDESK_API_KEY> and <YOUR_FRESHDESK_DOMAIN> (e.g., corpname.freshdesk.com) with your actual credentials.

Operational Examples

After setup, you can direct Claude to perform tasks such as:

  • "Provision a new service request: Subject 'Urgent Billing Inquiry,' details provided via email a101@acme.com, set urgency to maximum."
  • "Transition ticket 12345 into the 'Solved' status immediately."
  • "Generate a roster of all tickets currently flagged as 'Critical' and assigned to agent Jane Smith."
  • "Retrieve the recent support history for customer ID associated with email a101@acme.com over the last month."

Manual Server Activation

For diagnostic or direct testing, execute the module from the command line:

bash uvx freshdesk-mcp --env FRESHDESK_API_KEY= --env FRESHDESK_DOMAIN=

Debugging Guidance

  • Double-check credential accuracy (API key and domain).
  • Confirm network path availability to Freshdesk services.
  • Monitor active usage against Freshdesk API request quotas.
  • Verify that uvx is resolvable within the system's PATH.

This software component is distributed under the permissive MIT License. Refer to the LICENSE file within the source repository for complete licensing terms.

[WIKIPEDIA NOTE]: XMLHttpRequest (XHR) is an Application Programming Interface (API) implemented as a JavaScript object designed to facilitate asynchronous, bi-directional communication between a web browser and a remote server. Its methods enable client-side scripts to dispatch HTTP requests post-page-load and assimilate returned data. XHR is foundational to the concept of Asynchronous JavaScript and XML (AJAX). Before its widespread adoption, server interaction was predominantly handled via traditional hyperlink navigations or form submissions, which mandated full-page reloads.

== Historical Context == The foundational concept for XMLHttpRequest was introduced around 2000 by developers working on Microsoft Outlook. This technique was first materialized in the Internet Explorer 5 browser release (1999). Notably, the initial implementations did not use the standardized XMLHttpRequest nomenclature; instead, developers relied on COM object instantiation patterns like ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). By the time Internet Explorer 7 surfaced in 2006, the standardized XMLHttpRequest identifier had achieved universal support across major browser engines, including Mozilla's Gecko (2002), Apple's Safari 1.2 (2004), and Opera 8.0 (2005).

=== Standardization Trajectory === The World Wide Web Consortium (W3C) formalized the structure by publishing an initial Working Draft specification for the XHR object on April 5, 2006. This was followed by the Level 2 specification Working Draft on February 25, 2008, which introduced features like event progress monitoring, cross-origin request facilitation, and binary stream handling. The Level 2 enhancements were eventually merged back into the primary specification by late 2011. Development responsibility was transitioned to the WHATWG consortium near the close of 2012, where it is now maintained as a living document utilizing Web IDL definitions.

== Operational Flow == The canonical sequence for employing XMLHttpRequest involves several discrete programming phases:

  1. Instantiation: Create an instance of the XMLHttpRequest object via its constructor.
  2. Configuration: Invoke the open() method to declare the HTTP verb, specify the target Uniform Resource Identifier (URI), and select synchronous or asynchronous execution mode.
  3. Asynchronous Listener Setup: If operating asynchronously, register a callback function designed to process state transitions.
  4. Transmission: Start the network transfer by executing the send() method, optionally passing request body data.
  5. Response Handling: Monitor the object's readyState property within the event listener. Upon reaching state 4 (the 'done' state), the server's response payload is accessible, typically within the responseText attribute.

Beyond these fundamentals, XHR offers robust control over request execution. Custom HTTP headers can be injected to guide server processing, data uploads can occur via the send() argument, and responses can be parsed directly from JSON into native JavaScript objects or streamed incrementally. Furthermore, requests can be programmatically terminated early or configured with a timeout threshold to prevent indefinite blocking.

== Inter-Domain Communication (CORS) ==

During the nascent stages of the World Wide Web, security restrictions prevented scripts loaded from one domain from directly making requests to a different domain, a policy known as the Same-Origin Policy. This early limitation was found to pose significant obstacles to the development of dynamic web applications...

See Also

`