# How to integrate Freshdesk MCP with Claude Code

```json
{
  "title": "How to integrate Freshdesk MCP with Claude Code",
  "toolkit": "Freshdesk",
  "toolkit_slug": "freshdesk",
  "framework": "Claude Code",
  "framework_slug": "claude-code",
  "url": "https://composio.dev/toolkits/freshdesk/framework/claude-code",
  "markdown_url": "https://composio.dev/toolkits/freshdesk/framework/claude-code.md",
  "updated_at": "2026-05-12T10:12:22.256Z"
}
```

## Introduction

Manage your Freshdesk directly from Claude Code with zero worries about OAuth hassles, API-breaking issues, or reliability and security concerns.
You can do this in two different ways:
- Via [Composio Connect](https://dashboard.composio.dev/login?utm_source=toolkits&utm_medium=framework_template&utm_campaign=claude-code&utm_content=composio_connect&next=%2F~%2Forg%2Fconnect%2Fclients%2Fclaude-code) - Direct and easiest approach
- Via [Composio SDK](https://docs.composio.dev/docs?utm_source=toolkits&utm_medium=framework_template&utm_campaign=claude-code&utm_content=composio_sdk) - Programmatic approach with more control

## Also integrate Freshdesk with

- [ChatGPT](https://composio.dev/toolkits/freshdesk/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/freshdesk/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/freshdesk/framework/claude-agents-sdk)
- [Claude Cowork](https://composio.dev/toolkits/freshdesk/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/freshdesk/framework/codex)
- [Cursor](https://composio.dev/toolkits/freshdesk/framework/cursor)
- [VS Code](https://composio.dev/toolkits/freshdesk/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/freshdesk/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/freshdesk/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/freshdesk/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/freshdesk/framework/cli)
- [Google ADK](https://composio.dev/toolkits/freshdesk/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/freshdesk/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/freshdesk/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/freshdesk/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/freshdesk/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/freshdesk/framework/crew-ai)

## TL;DR

- Only one MCP URL to connect multiple apps with Claude Code with zero auth hassles.
- Programmatic tool calling allows LLMs to write its code in a remote workbench to handle complex tool chaining. Reduces to-and-fro with LLMs for frequent tool calling.
- Handling Large tool responses out of LLM context to minimize context rot.
- Dynamic just-in-time access to 20,000 tools across 1000+ other Apps for cross-app workflows. It loads the tools you need, so LLMs aren't overwhelmed by tools you don't need.

## Connect Freshdesk to Claude Code

### Connecting Freshdesk to Claude Code using Composio
1. Add the Composio MCP to Claude

```bash
claude mcp add --scope user --transport http composio https://connect.composio.dev/mcp
```

## What is Claude Code?

Claude Code is Anthropic's command line developer tool that lets you use Claude directly inside your terminal. Instead of switching between your editor, browser, and chat, you can stay in your project folder and ask Claude to help you build, debug, refactor, and understand code right where you're working.
Key features include:
- Terminal-Native Experience: Work with Claude directly in your command line without switching contexts
- MCP Support: Built-in support for Model Context Protocol servers to extend Claude's capabilities
- Project Context: Claude understands your project structure and can read, write, and modify files
- Interactive Development: Ask questions, debug code, and get help in real-time while coding
- Multi-Platform: Works on macOS, Linux, WSL, and Windows

## What is the Freshdesk MCP server, and what's possible with it?

The Freshdesk MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Freshdesk account. It provides structured and secure access to your support desk, so your agent can create tickets, fetch or update customer issues, reply to conversations, and automate ticket management on your behalf.
- Automated ticket creation and triage: Instantly generate new support tickets for incoming customer queries, ensuring nothing gets lost in the shuffle.
- Ticket lookup and status updates: Ask your agent to find, view, or update any ticket, including changing status, priority, or details based on evolving customer needs.
- Streamlined customer replies: Have your agent draft or send replies directly to customers, keeping conversations moving and improving response times.
- Effortless ticket list retrieval: Quickly pull lists of all tickets—filtered by status, priority, or other criteria—to get a real-time overview of the support pipeline.
- Ticket deletion and cleanup: Direct your agent to close or remove outdated or resolved tickets, keeping your Freshdesk workspace tidy and efficient.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `FRESHDESK_ADD_NOTE_TO_TICKET` | Add Note to Ticket | Tool to add a private or public note to an existing ticket in Freshdesk. Use when you need to add internal comments or public notes to a ticket. Notes can be private (agent-only) or public, and can include HTML content. |
| `FRESHDESK_ADD_TICKET_USER_ACCESS` | Add Ticket User Access | Tool to add agent access to a specific ticket in Freshdesk. Use when you need to grant agent(s) permission to view or interact with a ticket. The endpoint accepts agent IDs (not contact IDs) and returns the list of agent IDs that have access to the ticket. |
| `FRESHDESK_ADD_WATCHER` | Add Watcher to Ticket | Tool to add the authenticated user as a watcher to a Freshdesk ticket. Use when you need to follow a ticket's progress and receive email notifications for updates like replies or status changes. The API automatically uses the authenticated user's credentials and does not require additional parameters. |
| `FRESHDESK_BULK_UNWATCH_TICKETS` | Bulk Unwatch Tickets | Tool to remove the authenticated user as a watcher from multiple Freshdesk tickets in bulk. Use when you need to stop following multiple tickets at once and stop receiving email notifications for their updates. The API automatically uses the authenticated user's credentials. |
| `FRESHDESK_BULK_UPDATE_TICKETS` | Bulk Update Tickets | Tool to update multiple tickets simultaneously in bulk. The bulk update operation runs asynchronously in the background, and returns a job_id to track progress. Use when you need to modify the same properties across multiple tickets efficiently. |
| `FRESHDESK_CANCEL_CONTACT_IMPORT` | Cancel Contact Import | Tool to cancel an ongoing contact import operation in Freshdesk. Use when you need to halt a contact import process that is currently running. |
| `FRESHDESK_CREATE_ADMIN` | Create Admin Group | Tool to create a new admin group in Freshdesk. Use when you need to create a new admin group with specific agents, escalation settings, and automatic assignment configuration. |
| `FRESHDESK_CREATE_ADMIN_GROUP` | Create Admin Group | Tool to create a new admin-level support agent group in Freshdesk. Use when you need to create groups for organizing support agents and managing ticket routing at the admin level. |
| `FRESHDESK_CREATE_ADMIN_TICKET_FIELD` | Create Admin Ticket Field | Tool to create a new custom ticket field in Freshdesk. Use when you need to add a new field definition for capturing additional ticket information (e.g., priority level, customer type, issue category). The field type can be text, number, dropdown, checkbox, date, or paragraph. |
| `FRESHDESK_CREATE_ADMIN_TICKET_FIELD_SECTION` | Create Admin Ticket Field Section | Tool to create a new section within a ticket field in Freshdesk. Use when you need to add conditional field sections that appear based on selected dropdown choices. |
| `FRESHDESK_CREATE_AGENTS` | Create Multiple Agents | Tool to create multiple agents in Freshdesk in a single bulk operation. Use when you need to add multiple agents at once. This is an asynchronous operation that returns a job_id for tracking the creation status. |
| `FRESHDESK_CREATE_CANNED_RESPONSE` | Create Canned Response | Tool to create a new canned response in Freshdesk. Use when you need to create a reusable message template that agents can quickly insert into tickets. |
| `FRESHDESK_CREATE_CANNED_RESPONSE_BULK` | Bulk Create Canned Responses | Tool to create multiple canned responses in bulk via asynchronous operation. Use when you need to add multiple canned responses at once to your Freshdesk account. Returns a job_id that can be used to track the operation status. |
| `FRESHDESK_CREATE_CANNED_RESPONSE_FOLDER` | Create Canned Response Folder | Tool to create a new canned response folder in Freshdesk. Use when you need to organize canned response templates into folders. |
| `FRESHDESK_CREATE_COMPANIES` | Create Company | Tool to create a new company in Freshdesk. Use when you need to add a customer organization to your Freshdesk account. Companies can hold multiple contacts and are automatically associated with contacts based on email domain matching. |
| `FRESHDESK_CREATE_CONTACT` | Create Contact | Tool to create a new contact in Freshdesk. Use when you need to add a customer or user to your Freshdesk account. IMPORTANT: The 'employee_id' custom field is mandatory for this Freshdesk instance. |
| `FRESHDESK_CREATE_CONTACT_FIELDS` | Create Contact Field | Tool to create a new custom contact field in Freshdesk. Use when you need to add a new field definition for storing custom contact information (e.g., job title, department, customer type). The field type can be text, number, dropdown, checkbox, date, or paragraph. |
| `FRESHDESK_CREATE_DISCUSSION_CATEGORY` | Create Discussion Category | Tool to create a new discussion category in Freshdesk forums. |
| `FRESHDESK_CREATE_DISCUSSION_FORUM_TOPIC` | Create Discussion Forum Topic | Tool to create a new topic in a Freshdesk discussion forum. Use when you need to post a new discussion topic or thread in a specific forum. |
| `FRESHDESK_CREATE_DISCUSSION_TOPIC_COMMENT` | Create Discussion Topic Comment | Tool to create a new comment on a discussion forum topic. Use when you need to add a comment to an existing topic in Freshdesk discussions. |
| `FRESHDESK_CREATE_EMAIL` | Create Email Mailbox | Tool to create a new email mailbox in Freshdesk. Use when you need to add a support email address that automatically creates tickets from incoming emails. Requires valid product_id and group_id. |
| `FRESHDESK_CREATE_FORUM` | Create Forum | Tool to create a new forum within a category in Freshdesk discussions. Use when you need to add a new forum to organize discussions within a specific category. |
| `FRESHDESK_CREATE_SLA_POLICIES` | Create SLA Policy | Tool to create a new SLA (Service Level Agreement) policy in Freshdesk. Use when you need to establish service level targets for ticket response and resolution times based on priority levels. |
| `FRESHDESK_CREATE_SOLUTION_ARTICLE` | Create Solution Article | Tool to create a new solution article in a Freshdesk knowledge base folder. Use when you need to add documentation, FAQs, or help content to your knowledge base. |
| `FRESHDESK_CREATE_SOLUTION_CATEGORY` | Create Solution Category | Tool to create a new solution category in Freshdesk's knowledge base. Use when you need to organize solution articles and folders under a new category. |
| `FRESHDESK_CREATE_TICKET` | Create Ticket | Creates a new ticket in Freshdesk. REQUIRED FIELDS: - subject and description are always required - At least ONE requester identifier is REQUIRED: requester_id, email, phone, facebook_id, twitter_id, or unique_external_id CONDITIONAL REQUIREMENTS: - If phone is provided without email, name becomes MANDATORY NOTE ON ATTACHMENTS: - attachments field expects multipart/form-data format, not file paths |
| `FRESHDESK_CREATE_TICKET_FORMS` | Create Ticket Form | Tool to create a new ticket form in Freshdesk. Use when you need to create a custom ticket form for organizing support requests. |
| `FRESHDESK_CREATE_TICKET_OUTBOUND_EMAIL` | Create Ticket via Outbound Email | Tool to create a ticket by sending an outbound email to external recipients. Use when you need to initiate a support conversation via email. The ticket is automatically created with 'Closed' status and assigned to the sending agent to avoid unnecessary SLA timers. |
| `FRESHDESK_CREATE_TICKET_TIME_ENTRY` | Create Ticket Time Entry | Tool to create a time entry for a specific ticket in Freshdesk. Use when you need to log time spent working on a ticket. Time entries track work duration and can be marked as billable or non-billable for billing and reporting purposes. |
| `FRESHDESK_CREATE_TRANSLATED_SOLUTION_CATEGORY` | Create Translated Solution Category | Tool to create a translated version of an existing solution category. Use when you need to add multilingual support to your knowledge base by creating category translations in different languages. |
| `FRESHDESK_CURRENTLY_AUTHENTICATED_AGENT` | Currently Authenticated Agent | Tool to retrieve profile information for the currently authenticated agent. Use when you need to get details about the agent whose API credentials are being used for authentication. |
| `FRESHDESK_DELETE_ADMIN_GROUP` | Delete Admin Group | Tool to delete an admin group from Freshdesk. Use when you need to disband an admin group from your Freshdesk account. Note: Deleting a group only disbands it and does not delete the members of the group. |
| `FRESHDESK_DELETE_AGENT` | Delete Agent | Tool to permanently delete an agent from Freshdesk. Use when you need to remove an agent from your Freshdesk account. Note: You cannot delete yourself. The API prevents self-deletion as a security measure. When an agent is deleted, they are downgraded to a contact in the Freshdesk system. |
| `FRESHDESK_DELETE_AUTOMATION_RULE` | Delete Automation Rule | Permanently deletes an automation rule from Freshdesk by its type and rule ID. Use this action to remove workflow automation rules that are no longer needed. This action is idempotent - deleting an already-deleted rule will succeed without error. WARNING: This action is irreversible. The automation rule will be permanently deleted and cannot be recovered. Ensure you have the correct rule_id before proceeding. |
| `FRESHDESK_DELETE_COMPANY` | Delete Company | Tool to permanently disband a company from Freshdesk. Use when you need to delete a company from your Freshdesk account. Note: Deleting a company only disbands it and does not delete the customers inside it. Once disbanded, the company cannot be restored. |
| `FRESHDESK_DELETE_COMPANY_FIELD` | Delete Company Field | Tool to permanently delete a custom company field from Freshdesk. Use when you need to remove a company field that is no longer needed. Note: This action is irreversible and will delete all data stored in that field across all companies. Only custom fields can be deleted, not default fields. |
| `FRESHDESK_DELETE_CONTACT` | Delete Contact | Tool to soft delete a contact from Freshdesk. Use when you need to move a contact from All Contacts to Deleted Contacts view. Future communications from the contact will be directed to SPAM. The contact can be restored later - for permanent deletion, use hard_delete_contact instead. |
| `FRESHDESK_DELETE_CONTACT_FIELD` | Delete Contact Field | Permanently delete a custom contact field from Freshdesk. Use this action when you need to remove a custom contact field that is no longer needed. Important notes: - This action is IRREVERSIBLE - all data stored in this field across all contacts will be permanently deleted - Only custom fields can be deleted - system/default fields (name, email, phone, etc.) cannot be deleted - If you attempt to delete a default field, the API will return an error |
| `FRESHDESK_DELETE_CONVERSATION` | Delete Conversation | Tool to permanently delete a conversation from a ticket in Freshdesk. Use when you need to remove a specific conversation from a ticket. Note: Once deleted, the conversation cannot be restored. |
| `FRESHDESK_DELETE_DISCUSSION_CATEGORY` | Delete Discussion Category | Permanently deletes a forum discussion category from Freshdesk. Use this action to remove an entire discussion category. This is a destructive operation and cannot be undone. Make sure you have the correct category_id before executing. Prerequisites: - The category_id must correspond to an existing discussion category - Use FRESHDESK_LIST_DISCUSSIONS to find available category IDs Common error scenarios: - 404: Category not found (invalid category_id or already deleted) - 401: Authentication failed (invalid API key) - 403: Insufficient permissions |
| `FRESHDESK_DELETE_DISCUSSION_COMMENT` | Delete Discussion Comment | Tool to permanently delete a comment from a discussion in Freshdesk. Use when you need to remove a specific comment from a discussion thread. Note: Once deleted, the comment cannot be restored. |
| `FRESHDESK_DELETE_DISCUSSION_FORUM` | Delete Discussion Forum | Tool to permanently delete a discussion forum in Freshdesk. Use when you need to remove a specific forum. Note: Once deleted, the forum cannot be restored. |
| `FRESHDESK_DELETE_DISCUSSIONS_FORUMS_FOLLOW` | Unmonitor Forum | Tool to unfollow/unmonitor a discussion forum in Freshdesk. Use when you need to stop monitoring a specific forum. The operation removes the following status for the specified user from the forum. This is an idempotent operation - calling it multiple times or on an already-unfollowed forum will succeed without error. Note: Following forums is typically done through the Freshdesk web UI by end users. This action allows programmatic unfollowing via API. |
| `FRESHDESK_DELETE_DISCUSSIONS_TOPICS_FOLLOW` | Unmonitor Topic | Tool to unfollow/unmonitor a discussion topic in Freshdesk. Use when you need to stop monitoring a specific topic. The operation removes the following status for the specified user from the topic. |
| `FRESHDESK_DELETE_DISCUSSION_TOPIC` | Delete Discussion Topic | Tool to permanently delete a discussion topic in Freshdesk. Use when you need to remove a specific topic from forums. Note: Once deleted, the topic cannot be restored. |
| `FRESHDESK_DELETE_EMAIL_MAILBOXES` | Delete Email Mailbox | Tool to permanently delete an email mailbox from Freshdesk. Use when you need to remove an email mailbox configuration. Note: This action is irreversible. Once deleted, emails sent to the mailbox's address will not generate tickets. Requires admin-level permissions to access the email/mailboxes endpoint. |
| `FRESHDESK_DELETE_GROUP` | Delete Group | Tool to permanently disband a group from Freshdesk. Use when you need to delete a group from your Freshdesk account. Note: Deleting a group only disbands it and does not delete the members of the group. Once disbanded, the group cannot be restored. |
| `FRESHDESK_DELETE_MULTIPLE_TICKETS` | Delete Multiple Tickets | Asynchronously deletes multiple tickets in bulk. Returns a job_id to track deletion progress. Deleted tickets are moved to Trash and can be restored within 30 days. |
| `FRESHDESK_DELETE_SECTION` | Delete Section | Tool to permanently delete a section from a ticket field in Freshdesk. Use when you need to remove a section that is no longer needed. Note: The section must be empty before deletion. This action is irreversible. |
| `FRESHDESK_DELETE_SKILL` | Delete Skill | Tool to permanently delete a skill from Freshdesk. Use when you need to remove a skill from your Freshdesk account. This operation is permanent and cannot be undone. |
| `FRESHDESK_DELETE_SOLUTION_ARTICLE` | Delete Solution Article | Tool to permanently delete a solution article and its translated versions in Freshdesk. Use when you need to remove a solution article that is no longer needed. Note: This operation is irreversible and cannot be undone. |
| `FRESHDESK_DELETE_SOLUTION_CATEGORY` | Delete Solution Category | Permanently delete a solution category from Freshdesk's knowledge base. Use this tool when you need to remove a solution category that is no longer needed. This operation is irreversible and will also delete all translated versions of the category. Note: Categories containing folders may need to have their folders removed first. |
| `FRESHDESK_DELETE_SOLUTION_FOLDER` | Delete Solution Folder | Tool to permanently delete a solution folder and its translated versions in Freshdesk. Use when you need to remove a solution folder that is no longer needed. Note: This operation is irreversible and cannot be undone. |
| `FRESHDESK_DELETE_TICKET` | Delete Ticket | Tool to permanently delete a ticket from Freshdesk. Use when you need to remove a ticket from your Freshdesk account. Note: Once deleted, the ticket cannot be restored. |
| `FRESHDESK_DELETE_TICKET_FIELD` | Delete Ticket Field | Permanently delete a custom ticket field from Freshdesk. Use this tool when you need to remove a custom ticket field that is no longer needed. This action is irreversible and will delete all data stored in that field across all tickets. Important: Only custom fields (those with 'cf_' prefix) can be deleted. Default system fields like 'subject', 'status', 'priority', etc. cannot be deleted and will return an error. |
| `FRESHDESK_DELETE_TICKET_FORM` | Delete Ticket Form | Tool to permanently delete a ticket form from Freshdesk. Use when you need to remove a ticket form that is no longer needed. Note: This action is irreversible and once deleted, the ticket form cannot be restored through standard API operations. |
| `FRESHDESK_DELETE_TICKET_FORMS` | Delete Ticket Form Field | Tool to permanently delete a specific field from a ticket form in Freshdesk. Use when you need to remove a custom field that is no longer needed from a ticket form. Note: This action is irreversible and only custom fields can be deleted, not default fields which are interlinked with system functionalities. |
| `FRESHDESK_DELETE_TICKET_SUMMARY` | Delete Ticket Summary | Tool to delete the AI-generated summary of a ticket in Freshdesk. Use when you need to remove a ticket's summary. Note: Once deleted, the summary cannot be restored. |
| `FRESHDESK_DELETE_TICKET_USER_ACCESS` | Delete Ticket User Access | Tool to remove all agent access from a specific ticket in Freshdesk. Use when you need to revoke all agent permissions from a ticket. This removes all user accesses that were previously granted via the Add Ticket User Access endpoint. |
| `FRESHDESK_DELETE_TIME_ENTRY` | Delete Time Entry | Tool to permanently delete a time entry from Freshdesk. Use when you need to remove a specific time entry. Note: Once deleted, the time entry cannot be restored. |
| `FRESHDESK_EXPORT_CONTACTS` | Export Contacts | Tool to initiate an asynchronous export of contacts from Freshdesk to CSV file. Use when you need to export contact data for backup, sync with external databases, or data analysis. The API returns an export job ID which can be used to retrieve the download URL once processing completes. |
| `FRESHDESK_GET_ACCOUNT` | Get Account | Tool to view Freshdesk account information. Use when you need to retrieve comprehensive account details including organization information, agent counts, timezone, data center location, plan tier, address, and primary contact information. |
| `FRESHDESK_GET_AGENT` | Get Agent | Tool to retrieve detailed information about a specific agent by ID. Use when you need to view a particular agent's profile, contact information, availability status, and role assignments. |
| `FRESHDESK_GET_AGENT_AVAILABILITY` | Get Agent Availability | Tool to retrieve availability information for a specific agent. Use when you need to check an agent's availability across different channels, their assignment limits, and current workload. |
| `FRESHDESK_GET_AGENTS` | Search Agents Autocomplete | Tool to search for agents using autocomplete functionality in Freshdesk. Use when you need to quickly find agents by name or email keyword for autocomplete suggestions. |
| `FRESHDESK_GET_BUSINESS_HOURS` | Get Business Hours | Retrieves all business hours configurations from Freshdesk. Use this tool to get a complete list of all business hour configurations including working hours schedules, time zones, and whether each configuration is set as the default for the account. No input parameters are required. Returns an array of all business hour configurations with their schedules for each day of the week. |
| `FRESHDESK_GET_CANNED_RESPONSE_FOLDERS` | Get Canned Response Folders | Tool to retrieve all canned response folders from Freshdesk. Use when you need to list available folders for organizing canned responses. Note: Empty folders (folders without canned responses) are not listed in the API response. |
| `FRESHDESK_GET_COMPANIES` | Get Companies | Tool to retrieve all companies from a Freshdesk account with pagination support. Use when you need to list companies representing customer organizations. |
| `FRESHDESK_GET_COMPANY` | Get Company | Tool to retrieve detailed information about a specific company by ID. Use when you need to view a particular company's details, domains, and custom fields. |
| `FRESHDESK_GET_COMPANY_FIELDS` | Get Company Fields | Tool to retrieve all company fields configured in Freshdesk. Use when you need to get the complete list of company field definitions including default fields (name, description, domains, etc.) and custom fields with their metadata. |
| `FRESHDESK_GET_CONTACT` | Get Contact | Tool to retrieve detailed information about a specific contact by ID. Use when you need to view a particular contact's profile, contact information, and custom fields. |
| `FRESHDESK_GET_CONTACT_FIELDS` | Get Contact Fields | Tool to retrieve all contact fields configured in Freshdesk. Use when you need to get the complete list of contact field definitions including default fields (name, email, phone, etc.) and custom fields with their metadata. |
| `FRESHDESK_GET_CONTACTS` | Get Contacts | Tool to retrieve all contacts from a Freshdesk account. Use when you need to list contacts, optionally filtered by email, phone, mobile, company, state, or modification date. Results are paginated; iterate through pages using `page` and `per_page` (max 100) to retrieve the full dataset. |
| `FRESHDESK_GET_DISCUSSION_CATEGORY` | Get Discussion Category | Tool to view details of a specific forum category in Freshdesk. Use when you need to retrieve information about a discussion category including its name, description, and timestamps. |
| `FRESHDESK_GET_DISCUSSION_TOPIC` | View Discussion Topic | Tool to retrieve detailed information about a specific discussion topic by ID. Use when you need to view a topic's details, status, and metadata. |
| `FRESHDESK_GET_EMAIL_MAILBOX` | Get Email Mailbox | Tool to retrieve detailed information about a specific email mailbox by ID. Use when you need to view configuration details, status, and settings of a particular email mailbox. |
| `FRESHDESK_GET_FOLDER_RESPONSES` | Get Folder Responses | Tool to retrieve all canned responses within a specific folder in Freshdesk. Use when you need to list all response templates stored in a particular folder. |
| `FRESHDESK_GET_IMPORTED_CONTACTS` | Get Imported Contacts | Tool to retrieve details of all contact import operations in Freshdesk. Use when you need to view import history, check import status, or get information about failed imports. |
| `FRESHDESK_GET_JOB` | Get Job | Tool to view the status of a bulk job operation. Use when you need to check the status of bulk ticket updates or bulk ticket deletions. |
| `FRESHDESK_GET_SCENARIO_AUTOMATIONS_JSON` | List All Scenario Automations | Tool to list all scenario-based automations in Freshdesk. Use when you need to retrieve the complete list of scenario automations with their configurations. |
| `FRESHDESK_GET_SEARCH` | Filter Tickets | Tool to search and filter tickets in Freshdesk using flexible query syntax. Use when you need to find tickets based on status, priority, tags, custom fields, dates, or other ticket attributes with complex filtering logic. |
| `FRESHDESK_GET_TICKETS` | Get Tickets | Retrieves a list of tickets from Freshdesk. Tickets are returned under `response_data` in the response object. |
| `FRESHDESK_GET_TICKET_TIME_ENTRIES` | Get Ticket Time Entries | Tool to retrieve all time entries for a specific ticket in Freshdesk. Use when you need to view time logs associated with a particular ticket. |
| `FRESHDESK_GET_TICKET_USER_ACCESS` | Get Ticket User Access | Tool to retrieve agent access information for a specific ticket in Freshdesk. Use when you need to check which agents have permission to view or interact with a ticket. Returns a list of agent IDs that have access to the specified ticket. |
| `FRESHDESK_GET_TRANSLATED_SOLUTION_CATEGORY` | Get Translated Solution Category | Tool to view a translated solution category in Freshdesk. Use when you need to retrieve a solution category in a specific language other than the default language. |
| `FRESHDESK_HARD_DELETE_CONTACT` | Hard Delete Contact | Tool to permanently delete a contact from Freshdesk. Use when you need to completely remove a contact's profile, tickets, calls, forum topics, ratings, and notes (useful for GDPR compliance). By default, the contact must be soft-deleted first unless force=true is used. This deletion is irreversible. |
| `FRESHDESK_IMPORT_CONTACT` | Import Contact | Tool to import contacts in bulk from a CSV file to Freshdesk. Use when you need to create multiple contacts at once from a CSV file with field mappings. |
| `FRESHDESK_LIST_ADMIN_GROUPS` | List Admin Groups | Tool to list all admin groups in Freshdesk. Use when you need to retrieve all groups configured in the account with their members, escalation settings, and configuration details. |
| `FRESHDESK_LIST_ALL_AGENTS_IN_A_GROUP` | List All Agents in a Group | Tool to retrieve all agents associated with a specific group in Freshdesk. Use when you need to get the list of agents assigned to a particular group. |
| `FRESHDESK_LIST_ALL_SECTIONS_FOR_TICKET_FIELD` | List All Sections for a Ticket Field | Tool to retrieve all dynamic sections for a specific ticket field in Freshdesk. Use when you need to view all sections associated with a dropdown field that controls dynamic field visibility. |
| `FRESHDESK_LIST_ALL_SKILLS` | List All Skills | Tool to retrieve all skills configured in Freshdesk account. Use when you need to get the complete list of skills available for ticket routing and agent assignment. |
| `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS` | List All Ticket Conversations | Tool to retrieve all conversations of a specific ticket in Freshdesk. Use when you need to view all messages, notes, and replies associated with a ticket. |
| `FRESHDESK_LIST_AUTOMATION_RULES` | List Automation Rules | Tool to list all automation rules for a specific automation type in Freshdesk. Use when you need to retrieve all automation rules for ticket creation, time-based triggers, or ticket updates. |
| `FRESHDESK_LIST_DISCUSSIONS` | List All Forum Categories | Tool to retrieve all forum categories (discussions) from Freshdesk. Use when you need to list all discussion categories available in the account. Supports pagination via page parameter. |
| `FRESHDESK_LIST_DISCUSSIONS_TOPICS` | List All Topics in a Forum | Tool to retrieve all discussion topics within a specified forum in Freshdesk. Use when you need to list topics in a specific forum. Supports pagination and filtering by user participation. |
| `FRESHDESK_LIST_EMAIL` | List Email Mailboxes | Tool to retrieve all email mailbox configurations from Freshdesk account. Use when you need to view support email addresses, mailbox settings, or filter mailboxes by product, group, or status. |
| `FRESHDESK_LIST_EMAIL_CONFIGS` | List All Email Configs | Retrieve all email configurations from a Freshdesk account. Returns a list of email configs including support email addresses, associated products, groups, and active status. Useful for viewing mailbox configurations or finding email config IDs needed for other operations. |
| `FRESHDESK_LIST_FORUMS_IN_CATEGORY` | List Forums in Category | Tool to retrieve all forums within a specified category in Freshdesk. Use when you need to list all forums that exist within a specific forum category. Supports pagination via page and per_page parameters. |
| `FRESHDESK_LIST_MONITORED_TOPICS` | List Monitored Topics | Tool to retrieve all discussion topics that are monitored/followed by a specific user in Freshdesk. Use when you need to list topics a user is following. |
| `FRESHDESK_LIST_PARTICIPATED_TOPICS` | List Participated Topics | Tool to retrieve discussion topics that a user has participated in by creating or commenting. Use when you need to list topics where a specific user has been active. Only admins can fetch topics for other users; without user_id, returns authenticated user's topics. |
| `FRESHDESK_LIST_PRODUCTS` | List All Products | Tool to retrieve all products configured in Freshdesk account. Use when you need to get the complete list of products available for support and ticket categorization. |
| `FRESHDESK_LIST_ROLES` | List All Roles | Tool to retrieve all roles available in the Freshdesk system with their permissions and details. Use when you need to get the complete list of roles for agents and collaborators. |
| `FRESHDESK_LIST_SATISFACTION_RATINGS` | List Satisfaction Ratings | Tool to retrieve all customer satisfaction survey ratings from Freshdesk. Use when you need to view satisfaction ratings, optionally filtered by creation date. By default, only returns results from the previous month unless created_since parameter is specified. |
| `FRESHDESK_LIST_SLA_POLICIES` | List All SLA Policies | Tool to retrieve all SLA (Service Level Agreement) policies in Freshdesk. Use when you need to get the complete list of SLA policies with their configurations, targets, and applicability conditions. |
| `FRESHDESK_LIST_SOLUTION_ARTICLES` | List Solution Articles | Tool to retrieve all solution articles within a specified folder in Freshdesk. Use when you need to list all articles that exist within a specific solution folder. |
| `FRESHDESK_LIST_SOLUTION_CATEGORIES` | List Solution Categories | Tool to retrieve all solution categories in Freshdesk. Use when you need to list all available solution categories in the knowledge base. |
| `FRESHDESK_LIST_SOLUTION_FOLDERS` | List Solution Folders | Tool to retrieve all folders within a specified solution category in Freshdesk. Use when you need to list all folders that exist within a specific solution category. |
| `FRESHDESK_LIST_SOLUTIONS_CATEGORY_FOLDERS_TRANSLATED` | List Translated Category Folders | Tool to retrieve all translated solution folders in a category. Use when you need to list all folders in a specific language for a given solution category. |
| `FRESHDESK_LIST_SOLUTION_SUBFOLDERS` | List Solution Subfolders | Tool to list all subfolders within a specific solution folder in Freshdesk. Use when you need to retrieve the child folders of a parent folder in the knowledge base hierarchy. |
| `FRESHDESK_LIST_SPECIFIC_SECTION_DETAILS` | List a Specific Section Details | Tool to retrieve details of a specific section within a ticket field in Freshdesk. Use when you need to view information about a particular dynamic section including its label, associated choices, and contained fields. |
| `FRESHDESK_LIST_SURVEYS` | List All Surveys | Tool to retrieve all surveys from a Freshdesk account. Use when you need to view the list of surveys, optionally filtered by state (active or inactive). Note that only one survey can be active at any given time. |
| `FRESHDESK_LIST_TICKET_FIELDS` | List All Ticket Fields | Tool to list all ticket fields configured in Freshdesk. Use when you need to retrieve metadata about all ticket field definitions including both default and custom fields. |
| `FRESHDESK_LIST_TICKET_FORMS` | List Ticket Forms | Tool to retrieve all ticket forms from Freshdesk. Use when you need to view the list of available ticket forms, optionally with pagination or portal associations. |
| `FRESHDESK_LIST_TICKET_SATISFACTION_RATINGS` | List Ticket Satisfaction Ratings | Tool to list all satisfaction ratings of a ticket. Use when you need to retrieve customer feedback and survey responses for a specific ticket. |
| `FRESHDESK_LIST_TICKETS_WATCHERS` | List Ticket Watchers | Tool to list all watchers subscribed to a specific Freshdesk ticket. Use when you need to see who is following a ticket and receiving notifications for updates. |
| `FRESHDESK_LIST_TIME_ENTRIES` | List Time Entries | Tool to retrieve all time entries from Freshdesk with optional filtering by company, agent, execution time range, and billable status. Use when you need to view time logs across tickets with support for pagination. |
| `FRESHDESK_LIST_TOPIC_COMMENTS2` | List Topic Comments (Paginated) | Tool to list all comments on a specific discussion topic with pagination support. Use when you need to retrieve comments from a topic with control over page size and pagination. |
| `FRESHDESK_LIST_TRANSLATED_SOLUTION_ARTICLES` | List Translated Solution Articles | Tool to view all translated solution articles in a folder for a specific language. Use when you need to retrieve all articles from a folder in a particular language translation. |
| `FRESHDESK_LIST_TRANSLATED_SUBFOLDERS` | List Translated Subfolders | Tool to list all translated subfolders within a parent folder in Freshdesk. Use when you need to retrieve subfolders in a specific language for a given folder. |
| `FRESHDESK_PATCH_ADMIN_GROUPS_AGENTS` | Update Group Agents | Tool to add or remove agents in a Freshdesk group. Use when you need to modify the list of agents assigned to a specific group by providing an array of agent IDs. |
| `FRESHDESK_REMOVE_WATCHER` | Remove Watcher from Ticket | Tool to remove the authenticated user as a watcher from a Freshdesk ticket. Use when you need to stop receiving email notifications for ticket updates like replies or status changes. The API automatically uses the authenticated user's credentials and does not require additional parameters. |
| `FRESHDESK_REPLY_TO_FORWARD_TICKET` | Reply to Forward Ticket | Tool to reply to or forward a ticket to external email addresses. Use when you need to send a ticket reply to specific email recipients outside the normal ticket flow. |
| `FRESHDESK_REPLY_TO_TICKET` | Reply to Ticket | Tool to create a public reply to an existing support ticket in Freshdesk. Use when an agent needs to respond to a ticket. The reply is sent to the ticket requester and any CC'd recipients. Supports both plain text and HTML content, file attachments, and email distribution control. |
| `FRESHDESK_SEARCH_AGENTS` | Search Agents | Tool to search and filter agents in Freshdesk. Use when you need to find agents by email, phone, mobile, or state (fulltime/occasional). |
| `FRESHDESK_SEARCH_COMPANIES` | Search Companies | Tool to search and filter companies in Freshdesk using query strings with custom fields. Use when you need to find companies based on searchable fields like created_at, updated_at, or custom company fields. Note: Standard fields like 'name' are NOT searchable and will cause validation errors. |
| `FRESHDESK_SEARCH_COMPANY` | Search Companies Autocomplete | Tool to search for companies using autocomplete functionality in Freshdesk. Use when you need to quickly find companies by name or partial name keyword for autocomplete suggestions. |
| `FRESHDESK_SEARCH_CONTACTS` | Search Contacts | Tool to search and filter contacts in Freshdesk using query-based search. Use when you need to find contacts based on fields like email, phone, mobile, company_id, or other searchable contact attributes. |
| `FRESHDESK_SEARCH_CONTACTS_AUTOCOMPLETE` | Search Contacts Autocomplete | Tool to search for contacts using autocomplete functionality in Freshdesk. Use when you need to quickly find contacts by name, email, or other contact attributes for autocomplete suggestions. |
| `FRESHDESK_SEARCH_SOLUTION_ARTICLES` | Search Solution Articles | Tool to search solution articles in Freshdesk knowledge base by keyword. Use when you need to find articles by searching titles and content. |
| `FRESHDESK_TOGGLE_TIMER` | Toggle Timer | Tool to toggle the timer on a time entry to start or stop time tracking. Use when you need to start tracking time on a stopped timer or stop a currently running timer. |
| `FRESHDESK_UPDATE_ADMIN_GROUP` | Update Admin Group | Tool to update an existing admin-level support agent group in Freshdesk. Use when you need to modify group details such as name, description, assigned agents, or escalation settings at the admin level. |
| `FRESHDESK_UPDATE_ADMIN_TICKET_FIELD` | Update Admin Ticket Field | Tool to update an existing ticket field configuration in Freshdesk. Use when you need to modify field properties such as labels, visibility settings, or requirement flags. |
| `FRESHDESK_UPDATE_ADMIN_TICKET_FIELD_SECTION` | Update Admin Ticket Field Section | Tool to update a section within a ticket field in Freshdesk. Use when you need to modify section properties like label, associated choices, or contained fields. |
| `FRESHDESK_UPDATE_AGENT` | Update Agent | Tool to update an existing agent's information in Freshdesk. Use when you need to modify agent details such as email, permissions, signature, skills, groups, roles, or focus mode. |
| `FRESHDESK_UPDATE_AGENT_AVAILABILITY` | Update Agent Availability | Tool to update agent availability settings in Freshdesk. Use when you need to modify an agent's load settings by changing assignment limits for different channels. |
| `FRESHDESK_UPDATE_AUTOMATIONS` | Update Automation Rule | Tool to update an existing automation rule in Freshdesk. Use when you need to modify automation rule properties like name, description, active status, conditions, or actions. Supports ticket creation rules (type 1), time-based triggers (type 3), and ticket update rules (type 4). |
| `FRESHDESK_UPDATE_CANNED_RESPONSE` | Update Canned Response | Tool to update an existing canned response in Freshdesk. Use when you need to modify the title, content, folder location, visibility, or group access of a canned response template. |
| `FRESHDESK_UPDATE_CANNED_RESPONSE_FOLDER` | Update Canned Response Folder | Updates the name of an existing canned response folder in Freshdesk. Use this to rename folders that organize canned response templates. |
| `FRESHDESK_UPDATE_COMPANIES` | Update Company | Tool to update an existing company's information in Freshdesk. Use when you need to modify company details, domains, or custom fields. |
| `FRESHDESK_UPDATE_CONTACT` | Update Contact | Tool to update an existing contact's information in Freshdesk. Use when you need to modify contact details such as name, email, phone, job title, or custom fields. |
| `FRESHDESK_UPDATE_CONTACT_FIELD` | Update Contact Field | Tool to update a contact field's configuration in Freshdesk. Use when you need to modify field properties like labels, requirements, or visibility settings for agents and customers. |
| `FRESHDESK_UPDATE_CONTACT_MAKE_AGENT` | Make Agent | Tool to convert a contact into an agent in Freshdesk. Use when you need to grant a contact access to the helpdesk as an agent with specific permissions and roles. |
| `FRESHDESK_UPDATE_CONVERSATIONS` | Update Conversation | Tool to update the content of a conversation note in Freshdesk. Use when you need to modify existing public or private notes. Note: Only public and private notes can be edited, not incoming replies. The 'private' parameter cannot be modified. |
| `FRESHDESK_UPDATE_DISCUSSION_CATEGORY` | Update Discussion Category | Tool to update an existing discussion category in Freshdesk forums. Use when you need to modify the name or description of a forum category. |
| `FRESHDESK_UPDATE_DISCUSSION_COMMENT` | Update Discussion Comment | Tool to update an existing comment in a discussion forum. Use when you need to edit the content of a comment in Freshdesk discussions. |
| `FRESHDESK_UPDATE_DISCUSSION_FORUM` | Update Discussion Forum | Tool to update an existing discussion forum in Freshdesk. Use when you need to modify forum details such as name, description, category, type, or visibility settings. |
| `FRESHDESK_UPDATE_DISCUSSION_TOPIC` | Update Discussion Topic | Tool to update an existing discussion topic in Freshdesk. Use when you need to modify a topic's title, message, lock status, or other properties. |
| `FRESHDESK_UPDATE_EMAIL_SETTINGS` | Update Email Settings | Tool to update mailbox settings for email handling in Freshdesk. Use when you need to configure email behavior such as personalized replies, ticket threading, auto-response detection, or agent conversation settings. |
| `FRESHDESK_UPDATE_NOTIFICATION_EMAIL_BCC` | Update Automatic BCC Emails | Tool to update automatic BCC email addresses for all ticket communications in Freshdesk. Use when you need to configure which email addresses should automatically receive BCC copies of all outgoing emails. |
| `FRESHDESK_UPDATE_SLA_POLICIES` | Update SLA Policy | Tool to update an existing SLA (Service Level Agreement) policy in Freshdesk. Use when you need to modify service level targets, policy settings, or applicability conditions for an SLA policy. |
| `FRESHDESK_UPDATE_SOLUTION_CATEGORY` | Update Solution Category | Tool to update an existing solution category in Freshdesk. Use when you need to modify the name or description of a solution category. |
| `FRESHDESK_UPDATE_SOLUTION_FOLDER` | Update Solution Folder | Tool to update an existing solution folder in Freshdesk knowledge base. Use when you need to modify folder properties such as name, description, visibility settings, or folder hierarchy. |
| `FRESHDESK_UPDATE_SOLUTIONS` | Update Solution Article | Tool to update an existing solution article in Freshdesk. Use when you need to modify the title, description, status, tags, or SEO metadata of a solution article. All parameters are optional; only include fields you want to update. |
| `FRESHDESK_UPDATE_TICKET` | Update Ticket | Tool to update an existing ticket in Freshdesk. Use when you need to modify ticket attributes like subject, priority, status, description, or custom fields. |
| `FRESHDESK_UPDATE_TICKET_BULK_WATCH` | Bulk Add Watcher to Tickets | Tool to add the authenticated user as a watcher to multiple tickets in a single bulk operation. Use when you need to follow multiple tickets and receive email notifications for their updates. Returns lists of succeeded and failed ticket IDs. |
| `FRESHDESK_UPDATE_TICKET_FORMS` | Update Ticket Form | Tool to update an existing ticket form in Freshdesk. Use when you need to modify ticket form properties like title, description, default status, or field configurations. |
| `FRESHDESK_UPDATE_TICKET_SUMMARY` | Update Ticket Summary | Tool to update the AI-generated summary of a ticket in Freshdesk. Use when you need to modify or set the summary content for a ticket. The summary provides a concise overview of the ticket's content and history. |
| `FRESHDESK_UPDATE_TICKET_USER_ACCESS` | Update Ticket User Access | Tool to update agent access to a specific ticket in Freshdesk by adding or removing agents. Use when you need to grant or revoke agent permission to view or interact with a ticket. Returns the list of agent IDs that have access after the update. |
| `FRESHDESK_UPDATE_TIME_ENTRY` | Update Time Entry | Tool to update an existing time entry in Freshdesk. Use when you need to modify time entry details such as duration, notes, billable status, or agent assignment. Note: start_time cannot be updated if the timer is running, and timer_running cannot be set to its current value. |
| `FRESHDESK_VIEW_A_CANNED_RESPONSE` | View a Canned Response | Tool to view details of a specific canned response in Freshdesk. Use when you need to retrieve information about a canned response including its title, content, folder location, and attachments. |
| `FRESHDESK_VIEW_AUTOMATIONS` | View Automation Rule | Tool to view details of a specific automation rule in Freshdesk. Use when you need to retrieve comprehensive information about an automation rule including its triggers, conditions, and actions. |
| `FRESHDESK_VIEW_BUSINESS_HOUR` | View a Business Hour | Tool to retrieve a specific business hour configuration from Freshdesk. Use when you need to view detailed information about business hours including working schedule, time zone, and holiday list. |
| `FRESHDESK_VIEW_COMPANY_FIELD` | View a Company Field | Tool to retrieve details of a specific company field by ID. Use when you need to view configuration and metadata for a single company field including its type, position, and choices for dropdown fields. |
| `FRESHDESK_VIEW_CONTACT_FIELD` | View a Contact Field | Tool to retrieve details of a specific contact field by ID. Use when you need to view configuration and metadata for a single contact field including its type, position, and customer/agent requirements. |
| `FRESHDESK_VIEW_EMAIL` | View Email Mailbox Settings | Tool to retrieve mailbox settings for the Freshdesk account. Use when you need to view email configuration settings such as threading options, requester creation settings, and agent conversation permissions. |
| `FRESHDESK_VIEW_EMAIL_CONFIGS` | View Email Config | Tool to view details of a specific email configuration in Freshdesk. Use when you need to retrieve information about an email config including its associated product, group, and email addresses. |
| `FRESHDESK_VIEW_GROUP` | View Group | Tool to view details of a specific admin group in Freshdesk. Use when you need to retrieve information about a group including its members, escalation settings, and automatic assignment configuration. |
| `FRESHDESK_VIEW_NOTIFICATIONS` | View Automatic BCC Emails | Tool to view automatic BCC email addresses configured in Freshdesk. Use when you need to retrieve the list of email addresses that are automatically added as BCC to outgoing emails from the helpdesk. |
| `FRESHDESK_VIEW_PRODUCTS` | View Product | Tool to retrieve detailed information about a specific product by ID. Use when you need to view a particular product's details including name, description, primary email, and default status. |
| `FRESHDESK_VIEW_ROLES` | View a Role | Tool to view detailed information about a specific role by ID. Use when you need to retrieve a particular role's name, description, default status, and agent type. |
| `FRESHDESK_VIEW_SETTINGS` | View Helpdesk Settings | Tool to retrieve helpdesk settings from Freshdesk. Use when you need to view language configuration including primary language, supported languages, portal languages, and help widget languages. |
| `FRESHDESK_VIEW_SKILL` | View a Skill | Tool to retrieve a specific skill from Freshdesk by ID. Use when you need to view detailed information about a particular skill including its name, rank, associated agents, and routing conditions. |
| `FRESHDESK_VIEW_SOLUTION_CATEGORY` | View Solution Category | Tool to view a specific solution category by ID in Freshdesk. Use when you need to retrieve detailed information about a single solution category including its name, description, and visibility settings. |
| `FRESHDESK_VIEW_SOLUTION_FOLDER` | View Solution Folder | Tool to view a specific solution folder by ID in Freshdesk. Use when you need to retrieve detailed information about a solution folder including its name, description, hierarchy, and visibility settings. |
| `FRESHDESK_VIEW_SOLUTIONS` | View Solution Article | Tool to view a specific solution article by ID in Freshdesk. Use when you need to retrieve detailed information about a single article including its content, metadata, SEO data, and engagement metrics. |
| `FRESHDESK_VIEW_TICKET` | View Ticket | Views an existing ticket in Freshdesk. Ticket details are returned nested under `response_data` in the tool response. |
| `FRESHDESK_VIEW_TICKET_FIELD` | View a Ticket Field | Tool to retrieve a single ticket field configuration from Freshdesk. Use when you need to view detailed information about a specific ticket field including its type, position, visibility settings, and validation requirements. |
| `FRESHDESK_VIEW_TICKET_FORM_FIELD` | View a Ticket Form's Field | Tool to retrieve a specific field from a ticket form in Freshdesk. Use when you need to view detailed configuration of a field including its type, position, visibility, and requirement settings. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Freshdesk MCP server is an implementation of the Model Context Protocol that connects Claude Code (and other AI assistants like Claude and Cursor) directly to your Freshdesk account. It provides structured and secure access so Claude can perform Freshdesk operations on your behalf.
With Composio's managed implementation, you don't have to create your own developer app. For production, if you're building an end product, we recommend using your own credentials. The managed server helps you prototype fast and go from 0-1 faster.

## Step-by-step Guide

### 1. Prerequisites

Before starting, make sure you have:
- Claude Pro, Max, or API billing enabled Anthropic account
- Composio API Key
- A Freshdesk account
- Basic knowledge of Python or TypeScript

### 1. Install Claude Code

To install Claude Code, use one of the following methods based on your operating system:
```bash
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash

# Windows PowerShell
irm https://claude.ai/install.ps1 | iex

# Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
```

### 2. Set up Claude Code

Open a terminal, go to your project folder, and start Claude Code:
- Claude Code will open in your terminal
- Follow the prompts to sign in with your Anthropic account
- Complete the authentication flow
- Once authenticated, you can start using Claude Code
```bash
cd your-project-folder
claude
```

### 3. Set up environment variables

Create a .env file in your project root with the following variables:
- COMPOSIO_API_KEY authenticates with Composio (get it from [Composio dashboard](https://dashboard.composio.dev/login?utm_source=toolkits&utm_medium=framework_template&utm_campaign=claude-code&utm_content=api_key&next=%2F~%2Forg%2Fconnect%2Fclients%2Fclaude-code))
- USER_ID identifies the user for session management (use any unique identifier)
```bash
COMPOSIO_API_KEY=your_composio_api_key_here
USER_ID=your_user_id_here
```

### 4. Install Composio library

No description provided.
```python
pip install composio-core python-dotenv
```

```typescript
npm install @composio/core dotenv
```

### 5. Generate Composio MCP URL

No description provided.
```python
import os
from composio import Composio
from dotenv import load_dotenv

load_dotenv()

COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
USER_ID = os.getenv("USER_ID")

composio_client = Composio(api_key=COMPOSIO_API_KEY)

composio_session = composio_client.create(
    user_id=USER_ID,
    toolkits=["freshdesk"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url

print(f"MCP URL: {COMPOSIO_MCP_URL}")
print(f"\nUse this command to add to Claude Code:")
print(f'claude mcp add --transport http freshdesk-composio "{COMPOSIO_MCP_URL}" --headers "X-API-Key:{COMPOSIO_API_KEY}"')
```

```typescript
import 'dotenv/config';
import { Composio } from '@composio/core';

const { COMPOSIO_API_KEY, USER_ID } = process.env;

if (!COMPOSIO_API_KEY || !USER_ID) {
  throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
}

const composioClient = new Composio({ apiKey: COMPOSIO_API_KEY });

const composioSession = await composioClient.create(USER_ID, {
  toolkits: ['freshdesk'],
});

const composioMcpUrl = composioSession?.mcp.url;

console.log(`MCP URL: ${composioMcpUrl}`);
console.log(`\nUse this command to add to Claude Code:`);
console.log(`claude mcp add --transport http freshdesk-composio "${composioMcpUrl}" --headers "X-API-Key:${COMPOSIO_API_KEY}"`);
```

### 6. Run the script and copy the MCP URL

No description provided.
```python
python generate_mcp_url.py
```

```typescript
node --loader ts-node/esm generate_mcp_url.ts
# or if using tsx
tsx generate_mcp_url.ts
```

### 7. Add Freshdesk MCP to Claude Code

In your terminal, add the MCP server using the command from the previous step. The command format is:
- claude mcp add registers a new MCP server with Claude Code
- --transport http specifies that this is an HTTP-based MCP server
- The server name (freshdesk-composio) is how you'll reference it
- The URL points to your Composio Tool Router session
- --headers includes your Composio API key for authentication
After running the command, close the current Claude Code session and start a new one for the changes to take effect.
```bash
claude mcp add --transport http freshdesk-composio "YOUR_MCP_URL_HERE" --headers "X-API-Key:YOUR_COMPOSIO_API_KEY"

# Then restart Claude Code
exit
claude
```

### 8. Verify the installation

Check that your Freshdesk MCP server is properly configured.
- This command lists all MCP servers registered with Claude Code
- You should see your freshdesk-composio entry in the list
- This confirms that Claude Code can now access Freshdesk tools
If everything is wired up, you should see your freshdesk-composio entry listed:
```bash
claude mcp list
```

### 9. Authenticate Freshdesk

The first time you try to use Freshdesk tools, you'll be prompted to authenticate.
- Claude Code will detect that you need to authenticate with Freshdesk
- It will show you an authentication link
- Open the link in your browser (or copy/paste it)
- Complete the Freshdesk authorization flow
- Return to the terminal and start using Freshdesk through Claude Code
Once authenticated, you can ask Claude Code to perform Freshdesk operations in natural language. For example:
- "Create a new ticket for a customer issue"
- "List all open tickets assigned to me"
- "Update ticket status to resolved for ticket 12345"

## Complete Code

```python
import os
from composio import Composio
from dotenv import load_dotenv

load_dotenv()

COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
USER_ID = os.getenv("USER_ID")

composio_client = Composio(api_key=COMPOSIO_API_KEY)

composio_session = composio_client.create(
    user_id=USER_ID,
    toolkits=["freshdesk"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url

print(f"MCP URL: {COMPOSIO_MCP_URL}")
print(f"\nUse this command to add to Claude Code:")
print(f'claude mcp add --transport http freshdesk-composio "{COMPOSIO_MCP_URL}" --headers "X-API-Key:{COMPOSIO_API_KEY}"')
```

```typescript
import 'dotenv/config';
import { Composio } from '@composio/core';

const { COMPOSIO_API_KEY, USER_ID } = process.env;

if (!COMPOSIO_API_KEY || !USER_ID) {
  throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
}

const composioClient = new Composio({ apiKey: COMPOSIO_API_KEY });

const composioSession = await composioClient.create(USER_ID, {
  toolkits: ['freshdesk'],
});

const composioMcpUrl = composioSession?.mcp.url;

console.log(`MCP URL: ${composioMcpUrl}`);
console.log(`\nUse this command to add to Claude Code:`);
console.log(`claude mcp add --transport http freshdesk-composio "${composioMcpUrl}" --headers "X-API-Key:${COMPOSIO_API_KEY}"`);
```

## Conclusion

You've successfully integrated Freshdesk with Claude Code using Composio's MCP server. Now you can interact with Freshdesk directly from your terminal using natural language commands.
Key features of this setup:
- Terminal-native experience without switching contexts
- Natural language commands for Freshdesk operations
- Secure authentication through Composio's managed MCP
- Tool Router for dynamic tool discovery and execution
Next steps:
- Try asking Claude Code to perform various Freshdesk operations
- Add more toolkits to your Tool Router session for multi-app workflows
- Integrate this setup into your development workflow for increased productivity
You can extend this by adding more toolkits, implementing custom workflows, or building automation scripts that leverage Claude Code's capabilities.

## How to build Freshdesk MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/freshdesk/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/freshdesk/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/freshdesk/framework/claude-agents-sdk)
- [Claude Cowork](https://composio.dev/toolkits/freshdesk/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/freshdesk/framework/codex)
- [Cursor](https://composio.dev/toolkits/freshdesk/framework/cursor)
- [VS Code](https://composio.dev/toolkits/freshdesk/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/freshdesk/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/freshdesk/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/freshdesk/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/freshdesk/framework/cli)
- [Google ADK](https://composio.dev/toolkits/freshdesk/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/freshdesk/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/freshdesk/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/freshdesk/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/freshdesk/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/freshdesk/framework/crew-ai)

## Related Toolkits

- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Asana](https://composio.dev/toolkits/asana) - Asana is a collaborative work management platform for teams to organize and track projects. It streamlines teamwork, boosts productivity, and keeps everyone aligned on goals.
- [Google Tasks](https://composio.dev/toolkits/googletasks) - Google Tasks is a to-do list and task management tool integrated into Gmail and Google Calendar. It helps you organize, track, and complete tasks across your Google ecosystem.
- [Linear](https://composio.dev/toolkits/linear) - Linear is a modern issue tracking and project planning tool for fast-moving teams. It helps streamline workflows, organize projects, and boost productivity.
- [Jira](https://composio.dev/toolkits/jira) - Jira is Atlassian’s platform for bug tracking, issue tracking, and agile project management. It helps teams organize work, prioritize tasks, and deliver projects efficiently.
- [Clickup](https://composio.dev/toolkits/clickup) - ClickUp is an all-in-one productivity platform for managing tasks, docs, goals, and team collaboration. It streamlines project workflows so teams can work smarter and stay organized in one place.
- [Monday](https://composio.dev/toolkits/monday) - Monday.com is a customizable work management platform for project planning and collaboration. It helps teams organize tasks, automate workflows, and track progress in real time.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Aeroleads](https://composio.dev/toolkits/aeroleads) - Aeroleads is a B2B lead generation platform for finding business emails and phone numbers. Grow your sales pipeline faster with powerful prospecting tools.
- [Agiled](https://composio.dev/toolkits/agiled) - Agiled is an all-in-one business management platform for CRM, projects, and finance. It helps you streamline workflows, consolidate client data, and manage business processes in one place.
- [Ascora](https://composio.dev/toolkits/ascora) - Ascora is a cloud-based field service management platform for service businesses. It streamlines scheduling, invoicing, and customer operations in one place.
- [Autobound](https://composio.dev/toolkits/autobound) - Autobound is an AI-powered sales engagement platform that crafts hyper-personalized outreach and insights. It helps sales teams boost response rates and close more deals through tailored content and recommendations.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Beeminder](https://composio.dev/toolkits/beeminder) - Beeminder is an online goal-tracking platform that uses monetary pledges to keep you motivated. Stay accountable and hit your targets with real financial incentives.
- [Better proposals](https://composio.dev/toolkits/better_proposals) - Better Proposals is a web-based tool for crafting and sending professional proposals. It helps teams impress clients and close deals faster with slick, easy-to-use templates.
- [Bidsketch](https://composio.dev/toolkits/bidsketch) - Bidsketch is a proposal software that helps businesses create professional proposals quickly and efficiently. It streamlines the proposal process, saving time while boosting client win rates.
- [Bolna](https://composio.dev/toolkits/bolna) - Bolna is an AI platform for building conversational voice agents. It helps businesses automate support and streamline interactions through natural, voice-powered conversations.
- [Botsonic](https://composio.dev/toolkits/botsonic) - Botsonic is a no-code AI chatbot builder for easily creating and deploying chatbots to your website. It empowers businesses to offer conversational experiences without writing code.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Freshdesk MCP?

With a standalone Freshdesk MCP server, the agents and LLMs can only access a fixed set of Freshdesk tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Freshdesk and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Claude Code?

Yes, you can. Claude Code fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Freshdesk tools.

### Can I manage the permissions and scopes for Freshdesk while using Tool Router?

Yes, absolutely. You can configure which Freshdesk scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Freshdesk data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
