Skip to main content
Glama
Unofficial Dex CRM MCP Server

Unofficial Dex CRM MCP Server

by byndcloud

Unofficial Dex CRM MCP Server

An MCP (Model Context Protocol) server that exposes the Dex personal CRM API to AI assistants like Cursor, Claude Desktop, VS Code Copilot, and any MCP-compatible client.

Features

  • 27 focused tools covering all core Dex CRM operations

  • Contacts: get, create, update, delete, merge duplicates

  • Groups: create, update, delete, list/add/remove members

  • Tags: create, update, delete, manage tag-contact associations

  • Reminders: create, update, delete

  • Notes/Timeline: create, update, delete (with note type support)

  • Custom Fields: list, create, update, delete

  • Unified search across contacts, groups, tags, reminders, notes, and views

  • User profile

Related MCP server: PipeDrive MCP Server

Prerequisites

Setup

1. Install dependencies

npm install

2. Build

npm run build

3. Get your Dex API Key

Go to Dex Settings > API and copy your API key.

4. Configure your AI client

Cursor

Add to .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global):

{
  "mcpServers": {
    "dex": {
      "command": "node",
      "args": ["/absolute/path/to/unnoficial-dex-mcp/dist/index.js"],
      "env": {
        "DEX_API_KEY": "dex_your_api_key_here"
      }
    }
  }
}

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "dex": {
      "command": "node",
      "args": ["/absolute/path/to/unnoficial-dex-mcp/dist/index.js"],
      "env": {
        "DEX_API_KEY": "dex_your_api_key_here"
      }
    }
  }
}

VS Code

Add to .vscode/mcp.json in your project root:

{
  "mcpServers": {
    "dex": {
      "command": "node",
      "args": ["/absolute/path/to/unnoficial-dex-mcp/dist/index.js"],
      "env": {
        "DEX_API_KEY": "dex_your_api_key_here"
      }
    }
  }
}

Development

Run the server in development mode (with hot reload via tsx):

DEX_API_KEY=dex_your_key npm run dev

Testing with MCP Inspector

The project includes a built-in inspect script that opens the MCP Inspector UI in your browser. It loads DEX_API_KEY from your .env file automatically.

npm run build
npm run inspect

This starts the inspector at http://localhost:6274 where you can browse all tools and invoke them interactively.

Note: Requires Node.js >= 18. If using nvm: nvm use 21 (or any 18+) before running.

Available Tools (27)

Tool

Description

Search

dex_search

Unified search across contacts, groups, tags, reminders, notes, and views

Contacts

dex_get_contact

Get full contact details by ID (includes tags, groups, notes)

dex_create_contact

Create a new contact

dex_update_contact

Update a contact by ID

dex_delete_contact

Delete a contact by ID

dex_merge_contacts

Merge duplicate contacts into one

Groups

dex_create_group

Create a new group

dex_update_group

Update a group's name or emoji

dex_delete_group

Delete a group

dex_list_group_contacts

List contacts in a specific group

dex_add_contacts_to_group

Add contacts to a group

dex_remove_contacts_from_group

Remove contacts from a group

Tags

dex_create_tag

Create a new tag

dex_update_tag

Update a tag's name or color

dex_delete_tag

Delete a tag

dex_manage_contact_tags

Add, remove, or create-and-assign tags to contacts

Reminders

dex_create_reminder

Create a reminder (supports recurrence)

dex_update_reminder

Update a reminder

dex_delete_reminder

Delete a reminder

Notes / Timeline

dex_create_note

Create a note (types: meeting, call, email, note, coffee, etc.)

dex_update_note

Update a note

dex_delete_note

Delete a note

Custom Fields

dex_list_custom_fields

List all custom field definitions

dex_create_custom_field

Create a custom field

dex_update_custom_field

Update a custom field

dex_delete_custom_field

Delete a custom field

User

dex_get_current_user

Get current user profile

License

MIT

Available Tools

28 tools
dex_add_contacts_to_groupC

Add one or more contacts to a group by providing their IDs.

Inputs: groupId (required), contactIds (required).

dex_create_contactB

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.

Inputs: contact (required).

dex_create_custom_fieldC

Create a new custom field definition that can be set on any contact.

Inputs: custom_field (required).

dex_create_groupC

Create a new group for organizing contacts.

Inputs: name (required), emoji.

dex_create_noteA

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.

Inputs: note (required).

dex_create_reminderC

Create a new reminder, optionally linked to contacts. Supports recurrence (e.g. 'weekly', 'monthly').

Inputs: text (required), dueDate (required), dueTime, contactIds, +2 more.

dex_create_tagC

Create a new tag with a name and optional color for categorizing contacts.

Inputs: name (required), color.

dex_delete_contactA

Permanently delete a contact by ID. Removes the contact and all associated data.

Inputs: contactId (required).

dex_delete_custom_fieldA

Permanently delete a custom field and remove its values from all contacts.

Inputs: customFieldId (required).

dex_delete_groupA

Permanently delete a group. The contacts in the group are not deleted.

Inputs: groupId (required).

dex_delete_noteA

Permanently delete a note by ID. Removes the timeline entry from all associated contacts.

Inputs: noteId (required).

dex_delete_reminderA

Permanently delete a reminder. For recurring reminders, this stops all future occurrences.

Inputs: reminderId (required).

dex_delete_tagA

Permanently delete a tag. It is removed from all contacts it was assigned to.

Inputs: tagId (required).

dex_get_contactA

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.

Inputs: contactId (required), includeNotes, notesLimit.

dex_get_current_userA

Retrieve the profile of the currently authenticated user including name, email, time zone, and subscription plan.

Inputs: no named parameters.

dex_list_contactsB

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).

Inputs: take, skip, cursor, where, +2 more.

dex_list_custom_fieldsB

Retrieve all custom field definitions. Custom fields allow adding structured data to contacts beyond the built-in fields.

Inputs: no named parameters.

dex_list_group_contactsA

List all contacts that belong to a specific group. Supports pagination.

Inputs: groupId (required), take, cursor.

dex_manage_contact_tagsA

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).

Inputs: action (required), contactIds, tagIds, contactId, +1 more.

dex_merge_contactsA

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.

Inputs: contactIds (required).

dex_remove_contacts_from_groupC

Remove one or more contacts from a group. The contacts themselves are not deleted.

Inputs: groupId (required), contactIds (required).

dex_update_contactB

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.

Inputs: contactId (required), data (required).

dex_update_custom_fieldC

Update a custom field definition by ID (e.g. rename it).

Inputs: customFieldId (required), custom_field (required).

dex_update_groupC

Update a group's name or emoji by ID.

Inputs: groupId (required), name, emoji.

dex_update_noteB

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.

Inputs: noteId (required), note (required).

dex_update_reminderB

Update a reminder by ID. Modify text, due date/time, linked contacts, recurrence, completion status, and notification flags.

Inputs: reminderId (required), reminder (required).

dex_update_tagC

Update a tag's name or color by ID.

Inputs: tagId (required), name, color.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 28 tools

    Disambiguation5/5

    Each tool has a distinct purpose with clear boundaries, such as dex_create_contact for creation, dex_update_contact for updates, and dex_list_contacts for listing. The actions (add, create, delete, get, list, manage, merge, remove, search, update) are well-defined and target specific resources (contacts, groups, tags, notes, reminders, custom fields), eliminating ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent 'dex_verb_noun' pattern with snake_case, such as dex_create_contact, dex_update_contact, and dex_delete_contact. This uniformity makes the tools predictable and easy to understand across the entire set.

    Tool Count3/5

    With 28 tools, the count is borderline high for a CRM server, potentially overwhelming for agents. While the tools cover comprehensive operations, a more streamlined set might improve usability without sacrificing functionality.

    Completeness5/5

    The toolset provides complete CRUD and lifecycle coverage for all core CRM entities (contacts, groups, tags, notes, reminders, custom fields), including advanced features like merging contacts, managing associations, and searching. No obvious gaps exist for typical agent workflows in this domain.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A comprehensive MCP server for Bitrix24 CRM integration that enables AI agents to manage contacts, deals, tasks, leads, and companies. It also provides advanced tools for sales team monitoring, performance analytics, and automated CRM search capabilities.
      9 npm
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A comprehensive MCP server for the Pipedrive CRM API, enabling AI assistants to read, write, and analyze CRM data conversationally through 100 tools including performance reporting and loss analysis.
      101 npm
      8
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A comprehensive MCP server that connects AI assistants to GoHighLevel CRM, enabling management of contacts, conversations, calendars, pipelines, payments, and more through 60+ tools.
      64
      40 npm
      1
      MIT