Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEX_API_KEY | Yes | Your Dex API key, which can be found in Dex Settings > API. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| dex_get_contact | Retrieve a single contact by ID. Automatically fetches the contact's notes/timeline entries and includes them in the response under a 'notes' key. Use notesLimit to control how many notes are fetched (default 50). If the contact has more notes than a single page, pagination is handled automatically. |
| dex_create_contact | Create a new contact. Supports all fields: name, company, job title, emails (contact_emails), phone numbers (contact_phone_numbers), social profiles (linkedin, twitter, facebook, instagram, telegram, tiktok, youtube), addresses (legacy_contact_addresses), custom fields, group and tag associations, and more. |
| dex_update_contact | Update a contact by ID. Only included fields are modified; omitted fields remain unchanged. Supports all fields: name, company, job title, emails (contact_emails array with email/label/ranking), phone numbers (contact_phone_numbers array with phone_number/country_code/label/ranking), social profiles (linkedin, twitter, facebook, instagram, telegram, tiktok, youtube), addresses (legacy_contact_addresses), custom field values, group associations (groups_contacts), tag associations (tags_contacts with append/remove), related contacts, birthday, archival status, and more. |
| dex_delete_contact | Permanently delete a contact by ID. Removes the contact and all associated data. |
| dex_merge_contacts | Merge two or more duplicate contacts into one. The first ID in the group becomes the primary contact that is kept and enriched with data from the others. You can merge multiple groups at once. |
| dex_list_contacts | List contacts with advanced filtering, pagination, and field selection. Use 'where' to filter by starred, archived, frequency, birthday, location, job title, tags, groups, and more. Examples: find today's birthdays (where.hasBirthday), contacts with a keep-in-touch frequency (where.hasFrequency), monthly contacts (where.hasFrequency='monthly'), starred contacts (where.isStarred=true). |
| dex_create_group | Create a new group for organizing contacts. |
| dex_update_group | Update a group's name or emoji by ID. |
| dex_delete_group | Permanently delete a group. The contacts in the group are not deleted. |
| dex_list_group_contacts | List all contacts that belong to a specific group. Supports pagination. |
| dex_add_contacts_to_group | Add one or more contacts to a group by providing their IDs. |
| dex_remove_contacts_from_group | Remove one or more contacts from a group. The contacts themselves are not deleted. |
| dex_create_tag | Create a new tag with a name and optional color for categorizing contacts. |
| dex_update_tag | Update a tag's name or color by ID. |
| dex_delete_tag | Permanently delete a tag. It is removed from all contacts it was assigned to. |
| dex_manage_contact_tags | Manage tag-contact associations. Actions: 'add' assigns existing tags to contacts, 'remove' unassigns tags from contacts, 'create_and_assign' creates new tags by name and assigns them to a single contact (reuses existing tags with the same name). |
| dex_create_reminder | Create a new reminder, optionally linked to contacts. Supports recurrence (e.g. 'weekly', 'monthly'). |
| dex_update_reminder | Update a reminder by ID. Modify text, due date/time, linked contacts, recurrence, completion status, and notification flags. |
| dex_delete_reminder | Permanently delete a reminder. For recurring reminders, this stops all future occurrences. |
| dex_create_note | Create a new note or timeline entry. Requires event_time (ISO datetime). Use meeting_type to categorize: 'call', 'coffee', 'email', 'meal', 'meeting', 'networking', 'note', 'other', 'party', 'text'. The meeting_type_id is resolved automatically from the note types API. Associate contacts via timeline_items_contacts array of { contact_id }. The note text goes in the 'note' field. |
| dex_update_note | Update a note by ID. Can modify the note text, event_time, meeting_type ('call', 'coffee', 'email', 'meal', 'meeting', 'networking', 'note', 'other', 'party', 'text'), associated contacts (timeline_items_contacts), or custom_emoji. The meeting_type_id is resolved automatically. |
| dex_delete_note | Permanently delete a note by ID. Removes the timeline entry from all associated contacts. |
| dex_list_custom_fields | Retrieve all custom field definitions. Custom fields allow adding structured data to contacts beyond the built-in fields. |
| dex_create_custom_field | Create a new custom field definition that can be set on any contact. |
| dex_update_custom_field | Update a custom field definition by ID (e.g. rename it). |
| dex_delete_custom_field | Permanently delete a custom field and remove its values from all contacts. |
| dex_search | Search across Dex entities by keyword. Set 'entity' to choose what to search: 'contacts' (name, email, company), 'groups', 'tags', 'reminders', 'notes' (timeline entries), or 'views'. For reminders you can also filter by startDate, endDate, and isComplete. For contacts you can filter by archived status. |
| dex_get_current_user | Retrieve the profile of the currently authenticated user including name, email, time zone, and subscription plan. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |