Skip to main content
Glama
byndcloud

Unofficial Dex CRM MCP Server

by byndcloud
README.md
# Unofficial Dex CRM MCP Server

An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that exposes the [Dex personal CRM](https://getdex.com/) 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

## Prerequisites

- Node.js >= 18
- A [Dex](https://getdex.com/) account with an API key ([Dex Professional](https://getdex.com/pricing) plan required)

## Setup

### 1. Install dependencies

```bash
npm install
```

### 2. Build

```bash
npm run build
```

### 3. Get your Dex API Key

Go to [Dex Settings > API](https://getdex.com/appv3/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):

```json
{
  "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):

```json
{
  "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:

```json
{
  "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):

```bash
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](https://github.com/modelcontextprotocol/inspector) UI in your browser. It loads `DEX_API_KEY` from your `.env` file automatically.

```bash
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

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 issues