Skip to main content
Glama
effytech

Freshdesk MCP server

by effytech

create_contact_field

Add custom contact fields in Freshdesk to store and organize specific customer information, enhancing support ticket management and personalization.

Instructions

Create a contact field in Freshdesk.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contact_field_fieldsYes

Implementation Reference

  • The handler function for create_contact_field tool that validates input using ContactFieldCreate schema, makes POST request to Freshdesk API /contact_fields endpoint to create the field, and returns the response.
    @mcp.tool() async def create_contact_field(contact_field_fields: Dict[str, Any]) -> Dict[str, Any]: """Create a contact field in Freshdesk.""" # Validate input using Pydantic model try: validated_fields = ContactFieldCreate(**contact_field_fields) # Convert to dict for API request contact_field_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/contact_fields" headers = { "Authorization": f"Basic {base64.b64encode(f'{FRESHDESK_API_KEY}:X'.encode()).decode()}" } async with httpx.AsyncClient() as client: response = await client.post(url, headers=headers, json=contact_field_data) return response.json()
  • Pydantic BaseModel schema defining the structure and validation rules for the input parameters to create_contact_field tool.
    class ContactFieldCreate(BaseModel): label: str = Field(..., description="Display name for the field (as seen by agents)") label_for_customers: str = Field(..., description="Display name for the field (as seen by customers)") type: str = Field( ..., description="Type of the field", pattern="^(custom_text|custom_paragraph|custom_checkbox|custom_number|custom_dropdown|custom_phone_number|custom_url|custom_date)$" ) editable_in_signup: bool = Field( default=False, description="Set to true if the field can be updated by customers during signup" ) position: int = Field( default=1, description="Position of the company field" ) required_for_agents: bool = Field( default=False, description="Set to true if the field is mandatory for agents" ) customers_can_edit: bool = Field( default=False, description="Set to true if the customer can edit the fields in the customer portal" ) required_for_customers: bool = Field( default=False, description="Set to true if the field is mandatory in the customer portal" ) displayed_for_customers: bool = Field( default=False, description="Set to true if the customers can see the field in the customer portal" ) choices: Optional[List[Dict[str, Union[str, int]]]] = Field( default=None, description="Array of objects in format {'value': 'Choice text', 'position': 1} for dropdown choices" )
  • Registration of the create_contact_field tool using the @mcp.tool() decorator.
    @mcp.tool()

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