Skip to main content
Glama
effytech

Freshdesk MCP server

by effytech

update_group

Modify group details in Freshdesk by specifying the group ID and updated fields. Ideal for managing support team structures and permissions efficiently within the Freshdesk MCP server.

Instructions

Update a group in Freshdesk.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
group_fieldsYes
group_idYes

Implementation Reference

  • The main handler function for the 'update_group' tool. It validates input using GroupCreate model, makes a PUT request to Freshdesk API to update the group, and handles errors. The @mcp.tool() decorator registers it as an MCP tool.
    @mcp.tool() async def update_group(group_id: int, group_fields: Dict[str, Any]) -> Dict[str, Any]: """Update a group in Freshdesk.""" try: validated_fields = GroupCreate(**group_fields) # Convert to dict for API request group_data = validated_fields.model_dump(exclude_none=True) except Exception as e: return {"error": f"Validation error: {str(e)}"} url = f"https://{FRESHDESK_DOMAIN}/api/v2/groups/{group_id}" headers = { "Authorization": f"Basic {base64.b64encode(f'{FRESHDESK_API_KEY}:X'.encode()).decode()}" } async with httpx.AsyncClient() as client: try: response = await client.put(url, headers=headers, json=group_data) response.raise_for_status() return response.json() except httpx.HTTPStatusError as e: return { "error": f"Failed to update group: {str(e)}", "details": e.response.json() if e.response else None }
  • Pydantic schema (BaseModel) defining the input structure and validation for group updates (and creations). Used in the update_group handler for validating group_fields.
    class GroupCreate(BaseModel): name: str = Field(..., description="Name of the group") description: Optional[str] = Field(None, description="Description of the group") agent_ids: Optional[List[int]] = Field( default=None, description="Array of agent user ids" ) auto_ticket_assign: Optional[int] = Field( default=0, ge=0, le=1, description="Automatic ticket assignment type (0 or 1)" ) escalate_to: Optional[int] = Field( None, description="User ID to whom escalation email is sent if ticket is unassigned" ) unassigned_for: Optional[UnassignedForOptions] = Field( default=UnassignedForOptions.THIRTY_MIN, description="Time after which escalation email will be sent" )
  • Enum defining options for the 'unassigned_for' field in GroupCreate schema, used in update_group validation.
    class UnassignedForOptions(str, Enum): THIRTY_MIN = "30m" ONE_HOUR = "1h" TWO_HOURS = "2h" FOUR_HOURS = "4h" EIGHT_HOURS = "8h" TWELVE_HOURS = "12h" ONE_DAY = "1d" TWO_DAYS = "2d" THREE_DAYS = "3d"

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/effytech/freshdesk_mcp'

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