Skip to main content
Glama
forterro

freshservice-mcp

by forterro

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FRESHSERVICE_APIKEYNoYour Freshservice API key (required for local development with stdio transport, not needed for OAuth2 via gateway)
FRESHSERVICE_DOMAINNoYour Freshservice domain (e.g., yourcompany.freshservice.com)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
discover_form_fieldsA

Discover the form-field definitions for an entity type in your Freshservice organisation.

    Returns the list of fields (name, label, type, required, choices…) that
    your org has configured.  Results are cached locally for 1 hour.

    Args:
        entity_type: One of 'ticket', 'change', 'agent', 'requester', 'asset_type'
        force_refresh: Set to true to bypass the cache and re-fetch from Freshservice
    
clear_field_cacheB

Clear the cached form-field definitions.

    Args:
        entity_type: Specific entity to clear ('ticket', 'change', …) or omit to clear all.
    
manage_ticketB

Unified ticket operations.

    Args:
        action: One of 'create', 'update', 'delete', 'get', 'list', 'filter', 'get_fields'
        ticket_id: Required for get, update, delete
        subject: Ticket subject (create)
        description: Ticket body — HTML (create)
        source: Source enum (1=Email,2=Portal,3=Phone…) (create)
        priority: 1=Low,2=Medium,3=High,4=Urgent (create/update)
        status: 2=Open,3=Pending,4=Resolved,5=Closed (create/update)
        email: Requester email (create — required if no requester_id)
        requester_id: Requester ID (create — required if no email)
        custom_fields: Key-value custom field pairs
        ticket_fields: Dict of fields to update (update action)
        query: Filter query string, e.g. "priority:3 AND status:2" (filter)
        page: Page number (list/filter)
        per_page: Items per page 1-100 (list)
        workspace_id: Workspace filter (filter)
    
manage_ticket_conversationA

Manage ticket conversations — replies, notes, updates.

    Args:
        action: 'reply', 'add_note', 'update', 'list'
        ticket_id: Required for reply, add_note, list
        conversation_id: Required for update
        body: HTML body content (reply, add_note, update)
        from_email: Sender email (reply)
        user_id: Agent user ID (reply)
        cc_emails: CC email list (reply)
        bcc_emails: BCC email list (reply)
    
manage_service_catalogC

Service catalog operations.

    Args:
        action: 'list_items', 'get_requested_items', 'place_request'
        ticket_id: Ticket ID (get_requested_items)
        display_id: Service item display ID (place_request)
        email: Requester email (place_request)
        requested_for: Email of person for whom request is placed (place_request)
        quantity: Number of items (place_request, default 1)
        page: Page number (list_items)
        per_page: Items per page (list_items)
    
manage_changeA

Unified change operations.

    Args:
        action: One of 'create', 'update', 'delete', 'get', 'list', 'filter',
                'close', 'move', 'get_fields'
        change_id: Required for get, update, delete, close, move
        requester_id: Initiator ID (create — MANDATORY)
        subject: Change subject (create — MANDATORY)
        description: HTML description (create — MANDATORY)
        priority: 1=Low, 2=Medium, 3=High, 4=Urgent
        impact: 1=Low, 2=Medium, 3=High
        status: 1=Open, 2=Planning, 3=Awaiting Approval, 4=Pending Release,
                5=Pending Review, 6=Closed
        risk: 1=Low, 2=Medium, 3=High, 4=Very High
        change_type: 1=Minor, 2=Standard, 3=Major, 4=Emergency
        group_id: Agent group ID
        agent_id: Agent ID
        department_id: Department ID
        category: Category string
        sub_category: Sub-category string
        item_category: Item category string
        planned_start_date: ISO datetime
        planned_end_date: ISO datetime
        reason_for_change: Planning field — reason (text/HTML)
        change_impact: Planning field — impact analysis (text/HTML)
        rollout_plan: Planning field — rollout plan (text/HTML)
        backout_plan: Planning field — backout plan (text/HTML)
        custom_fields: Custom fields dict
        assets: Assets list (associated CIs), e.g. [{"display_id": 1}]
        impacted_services: Impacted services list, e.g. [{"display_id": 167456}]
            NOTE: This is different from 'assets'. Assets = associated CIs,
            impacted_services = business services affected by the change.
        maintenance_window_id: Maintenance Window ID to associate with
            this Change. On create, applied via follow-up PUT. On update,
            sent as {"maintenance_window": {"id": <value>}}.
            Use this to link a Change to an existing Maintenance Window.
        change_result_explanation: Result explanation (close)
        workspace_id: Target workspace (move / list / filter)
        query: Filter query string (list/filter)
        view: View name or ID (list)
        sort: Sort field (list)
        order_by: 'asc' or 'desc' (list)
        updated_since: ISO datetime (list)
        page: Page number
        per_page: Items per page 1-100
    
manage_change_noteA

Manage notes on a change.

    Args:
        action: 'create', 'view', 'list', 'update', 'delete'
        change_id: The change ID
        note_id: Required for view, update, delete
        body: Note body HTML (create, update)
    
manage_change_taskA

Manage tasks on a change.

    Args:
        action: 'create', 'view', 'list', 'update', 'delete'
        change_id: The change ID
        task_id: Required for view, update, delete
        title: Task title (create)
        description: Task description (create)
        task_status: Task status int (create/update)
        task_priority: Task priority int (create/update)
        assigned_to_id: Agent ID to assign (create/update)
        task_group_id: Group ID (create/update)
        due_date: ISO date (create/update)
        task_fields: Dict of fields (update — alternative to individual params)
    
manage_change_time_entryA

Manage time entries on a change.

    Args:
        action: 'create', 'view', 'list', 'update', 'delete'
        change_id: The change ID
        time_entry_id: Required for view, update, delete
        time_spent: Format "hh:mm" (create/update)
        note: Work description (create/update)
        te_agent_id: Agent ID who did the work (create)
        executed_at: ISO datetime (create)
    
manage_change_approvalA

Manage approvals and approval groups for a change.

    Args:
        action: 'list_groups', 'create_group', 'update_group', 'cancel_group',
                'list', 'view', 'remind', 'cancel', 'set_chain_rule'
        change_id: The change ID
        approval_id: Approval ID (view, remind, cancel)
        approval_group_id: Approval group ID (update_group, cancel_group)
        name: Group name (create_group, update_group)
        approver_ids: List of agent IDs (create_group, update_group)
        approval_type: 'everyone' or 'any' (create_group, update_group)
        approval_chain_type: 'parallel' or 'sequential' (set_chain_rule)
    
manage_assetC

Unified asset operations.

    Args:
        action: One of 'create', 'update', 'delete', 'delete_permanently',
                'restore', 'get', 'list', 'search', 'filter', 'move',
                'get_types', 'get_type'
        display_id: Asset display ID (get, update, delete, restore, move, details)
        asset_type_id: Asset type ID (create — MANDATORY, get_type)
        name: Asset name (create — MANDATORY)
        asset_tag: Asset tag (e.g. 'ASSET-9')
        impact: 'low', 'medium', or 'high' (default: 'low')
        usage_type: 'permanent' or 'loaner' (default: 'permanent')
        description: Asset description
        user_id: User ID (Used By)
        location_id: Location ID
        department_id: Department ID
        agent_id: Agent ID (Managed By)
        group_id: Group ID (Managed By Group)
        assigned_on: ISO date when assigned
        workspace_id: Workspace ID (create, list, move)
        type_fields: Asset-type-specific fields dict
        asset_fields: Generic update fields dict (update — alternative to explicit params)
        search_query: Search by name/tag/serial (search)
        filter_query: Filter expression (filter)
        include: Include extra data, e.g. 'type_fields' (list, get)
        order_by: Sort field (list)
        order_type: 'asc' or 'desc' (list)
        trashed: Include trashed assets (list, search)
        page: Page number
        per_page: Items per page
    
manage_asset_detailsB

Retrieve asset sub-resources.

    Args:
        action: 'components', 'assignment_history', 'requests', 'contracts'
        display_id: The asset display ID
    
manage_asset_relationshipB

Manage asset relationships.

    Args:
        action: 'list_for_asset', 'list_all', 'get', 'create', 'delete',
                'get_types', 'job_status'
        display_id: Asset display ID (list_for_asset)
        relationship_id: Relationship ID (get)
        relationship_ids: List of rel IDs to delete (delete)
        relationships: List of relationship dicts for bulk create (create).
            Each dict: {relationship_type_id, primary_id, primary_type,
                        secondary_id, secondary_type}
        job_id: Job ID returned by async operations (job_status)
        page: Page number (list_all)
        per_page: Items per page (list_all)
    
get_meA

Return the identity of the currently authenticated user.

When an OAuth token is present (forwarded by ContextForge), the tool decodes the JWT payload to extract the user's email, then queries the Freshservice agents API to return the full agent profile. Falls back to GET /api/v2/agents/me when using API key authentication (local dev / stdio).

manage_agentC

Unified agent operations.

    Args:
        action: 'create', 'update', 'get', 'list', 'filter', 'get_fields'
        agent_id: Required for get, update
        first_name: MANDATORY for create
        email: Agent email (create)
        query: Filter query string (filter)
        page/per_page: Pagination (list)
    
manage_agent_groupC

Manage agent groups.

    Args:
        action: 'create', 'update', 'get', 'list'
        group_id: Required for get, update
        name: Group name (create — MANDATORY)
        description: Group description
        agent_ids: List of agent IDs in the group
        auto_ticket_assign: Auto-assign tickets
        escalate_to: Agent ID for escalation
        unassigned_for: Duration before escalation (e.g. '30m', '1h')
        group_fields: Generic fields dict (update — alternative to explicit params)
    
manage_requesterC

Unified requester operations.

    Args:
        action: 'create', 'update', 'get', 'list', 'filter', 'get_fields', 'add_to_group'
        requester_id: Required for get, update, add_to_group
        first_name: MANDATORY for create
        query: Filter query string (filter)
        include_agents: Include agents in filter results (filter)
        group_id: Group ID (add_to_group)
        page/per_page: Pagination (list)
    
manage_requester_groupA

Manage requester groups.

    Args:
        action: 'create', 'update', 'get', 'list', 'list_members'
        group_id: Required for get, update, list_members
        name: Group name (create — MANDATORY)
        description: Group description
        page/per_page: Pagination (list)
    
manage_solutionA

Unified solution operations for categories, folders, and articles.

    Args:
        action: One of:
            Categories: 'list_categories', 'get_category', 'create_category', 'update_category'
            Folders: 'list_folders', 'get_folder', 'create_folder', 'update_folder'
            Articles: 'list_articles', 'get_article', 'create_article',
                      'update_article', 'publish_article'
        category_id: Category ID (get/update category, list folders, create folder)
        folder_id: Folder ID (get/update folder, list/create articles)
        article_id: Article ID (get/update/publish article)
        name: Name (create/update category or folder)
        title: Article title (create/update article)
        description: Description text/HTML
        visibility: Folder visibility (1=all, 2=logged-in, 3=agents, 4=depts)
        default_category: Mark as default (update_category)
        workspace_id: Workspace ID (create/update category)
        department_ids: Department IDs (create folder)
        article_type: 1=permanent, 2=workaround (create/update article)
        status: 1=draft, 2=published (create/update article)
        tags: Article tags list
        keywords: SEO keywords list
        review_date: ISO date for article review
    
manage_productA

Unified product operations.

    Args:
        action: 'create', 'update', 'get', 'list'
        product_id: Required for get, update
        name: Product name (create — MANDATORY)
        asset_type_id: Asset type ID (create — MANDATORY)
        manufacturer: Manufacturer name
        status: Product status (str or int)
        mode_of_procurement: e.g. 'buy', 'lease'
        depreciation_type_id: Depreciation type ID
        description: HTML description
        description_text: Plain text description
        page/per_page: Pagination (list)
    
manage_problemB

Manage Freshservice problems.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete',
                'filter', 'close', 'restore', 'get_fields',
                'associate_tickets', 'dissociate_ticket', 'list_tickets'.
        problem_id: Problem ID (required for get/update/delete/close/restore
                    and ticket association actions).
        requester_id: Requester user ID (required for create).
        subject: Problem subject (required for create).
        description: HTML description (required for create).
        priority: 1=Low, 2=Medium, 3=High, 4=Urgent (required for create).
        status: 1=Open, 2=Change Requested, 3=Closed (required for create).
        impact: 1=Low, 2=Medium, 3=High (required for create).
        due_by: ISO datetime due date (required for create).
        agent_id: Assigned agent ID.
        group_id: Assigned group ID.
        department_id: Department ID.
        known_error: Mark as known error (boolean).
        category/sub_category/item_category: Problem categorization.
        assets: List of associated assets [{"display_id": N}].
        analysis_fields: Analysis fields dict (problem_cause, symptom, impact).
        custom_fields: Custom fields dict.
        ticket_ids: List of ticket IDs to associate (for 'associate_tickets').
        ticket_id: Single ticket ID (for 'dissociate_ticket').
        query: Filter query for 'filter' action
               (e.g. "priority:3 AND status:1").
        page/per_page: Pagination.
    
manage_problem_noteA

Manage notes on a Freshservice problem.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        problem_id: Problem ID (always required).
        note_id: Note ID (required for get/update/delete).
        body: Note body HTML (required for create/update).
    
manage_problem_taskA

Manage tasks on a Freshservice problem.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        problem_id: Problem ID (always required).
        task_id: Task ID (required for get/update/delete).
        agent_id: Assigned agent ID.
        title: Task title (required for create).
        description: Task description.
        status: 1=Open, 2=In Progress, 3=Completed.
        due_date: ISO datetime due date.
        notify_before: Hours to notify before due date.
        group_id: Assigned group ID.
    
manage_problem_time_entryA

Manage time entries on a Freshservice problem.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        problem_id: Problem ID (always required).
        time_entry_id: Time entry ID (required for get/update/delete).
        agent_id: Agent who performed the work.
        note: Description of work performed.
        time_spent: Time in "hh:mm" format (required for create).
        executed_at: ISO datetime when work was performed.
        task_id: Associated task ID.
        billable: Whether the time is billable.
    
manage_releaseA

Manage Freshservice releases.

    NOTE: Like changes, planning_fields cannot be set on create.
    If you supply them, they will be applied via a follow-up PUT
    automatically.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete',
                'filter', 'restore', 'get_fields'.
        release_id: Release ID (required for get/update/delete/restore).
        subject: Release subject (required for create).
        description: HTML description (required for create).
        priority: 1=Low, 2=Medium, 3=High, 4=Urgent (required for create).
        status: 1=Open, 2=On hold, 3=In Progress, 4=Incomplete, 5=Completed
                (required for create).
        release_type: 1=Minor, 2=Standard, 3=Major, 4=Emergency
                      (required for create).
        planned_start_date: ISO datetime for planned start.
        planned_end_date: ISO datetime for planned end.
        work_start_date: ISO datetime for actual work start.
        work_end_date: ISO datetime for actual work end.
        agent_id: Assigned agent ID.
        group_id: Assigned group ID.
        department_id: Department ID.
        category/sub_category/item_category: Categorization.
        assets: Associated assets [{"display_id": N}].
        planning_fields: Planning fields dict (build_plan, test_plan).
        custom_fields: Custom fields dict.
        query: Filter query for 'filter' action.
        page/per_page: Pagination.
    
manage_release_noteB

Manage notes on a Freshservice release.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        release_id: Release ID (always required).
        note_id: Note ID (required for get/update/delete).
        body: Note body HTML (required for create/update).
    
manage_release_taskA

Manage tasks on a Freshservice release.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        release_id: Release ID (always required).
        task_id: Task ID (required for get/update/delete).
        title: Task title (required for create).
        description: Task description.
        status: 1=Open, 2=In Progress, 3=Completed.
        due_date: ISO datetime due date.
        notify_before: Hours to notify before due date.
        group_id: Assigned group ID.
    
manage_release_time_entryA

Manage time entries on a Freshservice release.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        release_id: Release ID (always required).
        time_entry_id: Time entry ID (required for get/update/delete).
        agent_id: Agent who performed the work.
        note: Description of work performed.
        time_spent: Time in "hh:mm" format (required for create).
        executed_at: ISO datetime when work was performed.
        task_id: Associated task ID.
        billable: Whether the time is billable.
    
manage_departmentB

Manage Freshservice departments.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete',
                'filter', 'get_fields'.
        department_id: Department ID (required for get/update/delete).
        name: Department name (required for create).
        description: Description text.
        head_user_id: User ID of department head.
        prime_user_id: User ID of department prime contact.
        domains: List of email domains for the department.
        custom_fields: Custom field values dict.
        query: Filter query string for 'filter' action
               (e.g. "name:'Engineering'").
        page/per_page: Pagination.
    
manage_locationB

Manage Freshservice locations.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete', 'filter'.
        location_id: Location ID (required for get/update/delete).
        name: Location name (required for create).
        line1/line2/city/state/country/zipcode: Address fields.
        contact_name: Contact person name.
        email: Contact email.
        phone: Contact phone.
        parent_location_id: Parent location ID for hierarchical locations.
        query: Filter query for 'filter' action (e.g. "name:'New York'").
        page/per_page: Pagination.
    
manage_projectA

Manage Freshservice Projects (NewGen).

    Projects let you plan, prioritize, manage, and track work within
    the service desk. You can associate tickets, changes, problems,
    and assets to projects.

    Args:
        action: One of 'create', 'update', 'get', 'list', 'delete',
                'archive', 'restore', 'get_fields', 'get_templates',
                'add_members', 'get_memberships',
                'create_association', 'get_associations', 'delete_association',
                'get_versions', 'get_sprints'.
        project_id: Project ID (required for most actions except create,
            list, get_fields, get_templates).
        name: Project name (create — MANDATORY, max 255 chars).
        description: Project description (HTML or plain text).
        key: Project key — starts with letter, letters+numbers, max 10 chars.
            Auto-generated from name if omitted on create.
        project_type: 0=Software, 1=Business (create — MANDATORY).
        status_id: 1=Yet to start, 2=In Progress, 3=Completed.
        priority_id: 1=Low, 2=Medium, 3=High, 4=Urgent.
        manager_id: User ID of the project manager.
        start_date: Start date (yyyy-mm-dd).
        end_date: End date (yyyy-mm-dd).
        visibility: 0=Private, 1=Public (default 1).
        sprint_duration: Sprint duration in days (default 14).
        custom_fields: Custom fields dict.
        project_template_id: Template ID (create only).
        members: List of members to add (add_members).
            Format: [{"email": "user@example.com", "role": 1}]
            role: 1 or 2 (project admin vs member).
        module_name: Association module — 'tickets', 'problems',
            'changes', or 'assets' (create/get/delete_association).
        ids: List of IDs to associate (create_association).
        association_id: Entity ID to dissociate (delete_association).
        filter: Filter for list — 'completed', 'incomplete', 'archived',
            'open', 'in_progress'. Default shows open + completed.
        page/per_page: Pagination (list, max 100 per page).
    
manage_project_taskA

Manage Freshservice Project Tasks (NewGen).

    Tasks organize project work — epics, user stories, subtasks, etc.
    Each task has a type, status, priority, assignee, and can be linked
    to sprints, versions, and parent tasks.

    Args:
        action: One of 'create', 'update', 'get', 'list', 'filter',
                'delete', 'get_task_types', 'get_task_type_fields',
                'get_task_statuses', 'get_task_priorities',
                'create_note', 'list_notes', 'update_note', 'delete_note',
                'create_association', 'get_associations', 'delete_association'.
        project_id: Project ID (required for all actions).
        task_id: Task ID (required for get/update/delete and note/association ops).
        title: Task title (create — MANDATORY).
        description: Task description (HTML or plain text).
        type_id: Task type ID — obtain via get_task_types (create — MANDATORY).
        status_id: Task status ID — obtain via get_task_statuses.
        priority_id: Task priority ID — obtain via get_task_priorities.
        assignee_id: User ID to assign the task to.
        reporter_id: User ID of the reporter (defaults to creator).
        parent_id: Parent task/epic ID for subtasks.
        planned_start_date: ISO datetime (yyyy-mm-ddThh:mm:ssZ).
        planned_end_date: ISO datetime (yyyy-mm-ddThh:mm:ssZ).
        planned_effort: Effort string, e.g. '1w 2d 3h 4m'.
        story_points: Story points for the task.
        sprint_id: Sprint ID — obtain via manage_project get_sprints.
        version_id: Version ID — obtain via manage_project get_versions.
        custom_fields: Custom fields dict.
        note_id: Note ID (update_note / delete_note).
        content: Note content — HTML (create_note / update_note).
        module_name: Association module — 'tickets', 'problems',
            'changes', or 'assets' (association operations).
        ids: Entity IDs to associate (create_association).
        association_id: Entity ID to dissociate (delete_association).
        query: Filter query for 'filter' action. Format:
            "priority_id:3 AND created_at:>'2025-01-01'"
        filter: Predefined filter for 'list' — 'all', etc.
        page/per_page: Pagination.
    
manage_status_pageA

Unified Status Page operations: maintenance windows, incidents, components.

    IMPORTANT — Publishing a maintenance on the Status Page:
        To publish a maintenance, you MUST provide either change_id or
        maintenance_window_id. The rules are:

        1. If the Change already has a maintenance_window (check via
           manage_change action='get' → maintenance_window.id), use change_id.
        2. If the Change has NO maintenance_window (maintenance_window is
           empty {}), you MUST first create a Maintenance Window using
           manage_maintenance_window action='create' with name, description,
           start_time, end_time, AND change_id (to auto-associate the MW
           with the Change). Then use the returned maintenance_window_id here.
        3. You can also use maintenance_window_id directly if you already
           know the MW ID.

        Required fields for create_maintenance:
          - title, description, started_at, ended_at, impacted_services
          - impacted_services format: [{"id": <service_component_id>, "status": 5}]
            status values: 1=Operational, 5=Under maintenance, 10=Degraded,
            20=Partial outage, 30=Major outage
          - Get available service component IDs via action='list_components'

    Args:
        action: One of:
          Pages:        'list_pages'
          Components:   'list_components', 'get_component'
          Maintenance:  'list_maintenance', 'create_maintenance', 'update_maintenance',
                        'get_maintenance', 'delete_maintenance'
          Maintenance Updates: 'create_maintenance_update', 'list_maintenance_updates',
                        'update_maintenance_update', 'delete_maintenance_update'
          Incidents:    'list_incidents', 'create_incident', 'update_incident',
                        'get_incident', 'delete_incident'
          Incident Updates: 'create_incident_update', 'list_incident_updates',
                        'update_incident_update', 'delete_incident_update'
          Statuses:     'list_incident_statuses', 'list_maintenance_statuses'
          Subscribers:  'list_subscribers', 'get_subscriber', 'create_subscriber',
                        'update_subscriber', 'delete_subscriber'
        status_page_id: Status page ID (auto-discovered if omitted).
        change_id: Change ID — maintenance CRUD from a change. The change
            MUST have an associated maintenance_window or the API returns 404.
            Check via manage_change get → if maintenance_window is empty {},
            use manage_maintenance_window to create one first, then pass
            maintenance_window_id instead.
        maintenance_window_id: Maintenance Window ID — maintenance CRUD from a MW.
            Use this when the change has no built-in MW, or for standalone MW
            publishing. Create a MW first via manage_maintenance_window action='create'.
        ticket_id: Ticket ID — incident CRUD (required for create/update/get/delete,
            not needed for list_incidents).
        maintenance_id: Maintenance ID (get/update/delete maintenance, maintenance updates)
        incident_id: Incident ID (get/update/delete incident, incident updates)
        update_id: Update ID (update/delete maintenance/incident updates)
        component_id: Service component ID (get_component)
        subscriber_id: Subscriber ID (get/update/delete subscriber)
        title: Title (create maintenance/incident) — Mandatory
        description: HTML description
        started_at: ISO datetime — start time (maintenance/incident)
        ended_at: ISO datetime — end time (maintenance)
        impacted_services: [{id, status}] — 1=Operational, 5=Under maintenance,
            10=Degraded, 20=Partial outage, 30=Major outage — Mandatory for create_maintenance
        notifications: Array of notification dicts [{trigger, options: {value}}]
            trigger: 1=On start, 2=Before start, 3=On complete
        is_private: Private maintenance/incident (default false)
        body: Update body text (maintenance/incident updates)
        update_status: Status string for updates
        email: Subscriber email (create_subscriber — Mandatory)
        service_ids: List of service IDs the subscriber is subscribed to
        subscribe_all_services: true = notify for all services
        subscriber_type: 1=External, 2=Agent, 3=Requester
        timezone: Subscriber timezone (e.g. "UTC")
        page/per_page: Pagination
    
manage_maintenance_windowA

Manage Freshservice Maintenance Windows.

    Maintenance Windows are time-based windows used to schedule planned
    maintenance. They can be associated with Changes and are REQUIRED
    to publish a maintenance on a Status Page.

    ONE-STOP WORKFLOW — Create MW + associate Change + publish on Status Page:
        Call action='create' with:
          - name, description, start_time, end_time (MW fields)
          - change_id (auto-associates MW with the Change)
          - impacted_services (triggers auto-publish on Status Page)

        This single call will:
          a) Create the Maintenance Window
          b) Associate it with the Change (if change_id provided)
          c) Publish it on the Status Page (if impacted_services provided)
          d) Return MW details, association status, and Status Page maintenance

        impacted_services format: [{"id": <service_component_id>, "status": N}]
          Status: 1=Operational, 5=Under maintenance, 10=Degraded,
                  20=Partial outage, 30=Major outage
        To find service_component IDs, use manage_status_page
          action='list_components'.

        ALTERNATIVE: You can also do each step separately:
          - manage_maintenance_window create (without impacted_services)
          - manage_change update with maintenance_window_id
          - manage_status_page create_maintenance with maintenance_window_id

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        maintenance_window_id: MW ID (required for get/update/delete).
        change_id: Change ID — if provided on 'create', the new MW
            is automatically associated with this Change.
        name: MW name (required for create).
        description: MW description.
        start_time: ISO datetime — window start (required for create).
        end_time: ISO datetime — window end (required for create).
        workspace_id: Workspace ID (required for create; auto-discovered
            if omitted).
        alert_suppression: Suppress alerts during window (default false).
        impacted_services: If provided on 'create', auto-publishes a
            maintenance on the Status Page after creating the MW.
            Format: [{"id": <service_component_id>, "status": <int>}]
            Status: 1=Operational, 5=Under maintenance, 10=Degraded,
                    20=Partial outage, 30=Major outage.
        notifications: Status Page notification triggers (optional).
            Format: [{"trigger": N, "options": {"value": V}}]
            Trigger: 1=On start, 2=Before start, 3=On complete.
        is_private: Mark the Status Page maintenance as private.
        page/per_page: Pagination (list).
    
manage_canned_responseB

Manage canned responses.

    Args:
        action: 'list', 'get', 'list_folders', 'get_folder'
        response_id: Required for get
        folder_id: Required for get_folder
    
manage_workspaceA

Manage workspaces.

    Args:
        action: 'list', 'get'
        workspace_id: Required for get
    

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/forterro/freshservice_mcp'

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