alpabon73/dex-mcp-server
If you are the rightful owner of dex-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Dex MCP Server is a Model Context Protocol server that provides AI agents with comprehensive contact relationship management capabilities through the Dex API.
Dex MCP Server
v1.0.0 is now released!
- See and GitHub Releases for highlights and upgrade info.
- How to upgrade:
- Pull the latest code:
git pull --rebase origin main- Ensure your
.envfile is present and contains a validDEX_API_KEY.- Use the
kill-dex-mcp-server.shscript before agent startup if needed.- See
copilot-instructions.mdfor agent/CLI usage and best practices.
A Model Context Protocol (MCP) server that provides AI agents with comprehensive contact relationship management capabilities through the Dex API.
Features
🚀 Contact Management
- Create, Read, Update, Delete contacts with full details
- Search contacts by name, email, or company
- Comprehensive contact fields: name, company, job title, description, emails, phone numbers
📝 Note Management
- Contact-linked notes stored as timeline items
- Create, update, delete notes for any contact
- Search notes by content across all contacts
- Pagination support for large note collections
⏰ Reminder Management
- Set reminders linked to specific contacts
- Complete, update, delete reminders as needed
- Search reminders by text content
- Recurrence support for recurring follow-ups
- Due date tracking with proper date formatting
Installation
Prerequisites
- Node.js 18 or later
- Dex API account and API key
Setup
- Clone this repository:
git clone https://github.com/alpabon73/dex-mcp-server.git
cd dex-mcp-server
- Install dependencies:
npm install
- Configure your Dex API key in
src/index.ts:
const API_KEY = 'your-dex-api-key-here';
- Build the server:
npm run build
Environment Variables
This project requires a Dex API key. Never commit your real API key to a public repository.
- Copy
.env.exampleto.env:cp .env.example .env - Edit
.envand set your real Dex API key:DEX_API_KEY=your-dex-api-key-here - The server will not start unless
DEX_API_KEYis set in your environment or.envfile.
.env is already in .gitignore and will never be committed.
Usage
Standalone Usage
npm start
With AnythingLLM
Add to your MCP server configuration:
{
"servers": {
"dex-mcp": {
"command": "/usr/local/bin/node",
"args": ["/path/to/dex-mcp-server/dist/index.js"],
"env": {}
}
}
}
Available Tools
Contact Tools (6)
get_contacts- Retrieve contacts with paginationget_contact_by_id- Get specific contact detailssearch_contacts- Search by name/company/emailcreate_contact- Add new contactsupdate_contact- Modify existing contactsdelete_contact- Remove contacts
Note Tools (6)
get_notes_by_contact- Get all notes for a contactget_all_notes- Retrieve all notes with paginationsearch_notes- Search notes by contentcreate_note- Add notes to contactsupdate_note- Modify existing notesdelete_note- Remove notes
Reminder Tools (6)
get_reminders_by_contact- Get contact remindersget_all_reminders- Retrieve all reminders with paginationsearch_reminders- Search reminders by textcreate_reminder- Set new remindersupdate_reminder- Modify existing reminderscomplete_reminder- Mark reminders as donedelete_reminder- Remove reminders
Allowed Meeting Types for Notes
When creating a note, you may specify the meeting type using either the display name or the Dex API enum value. The following table shows the accepted values:
| Display Name | Dex API Enum Value |
|---|---|
| Note | note |
| Call | call |
| Text/Messaging | text_messaging |
| Skype/Teams | skype_teams |
| Slack | slack |
| Coffee | coffee |
| Networking | networking |
| Party/Social | party_social |
| Other | other |
| Meal | meal |
| Meeting | meeting |
| Custom | custom |
You may use any of the above display names (case-insensitive, spaces and slashes allowed) or the exact enum value. The system will automatically map your input to the correct Dex API value.
Example Use Cases
- "Add John Smith from TechCorp as a new contact"
- "Set a reminder to follow up with Sarah next week"
- "Search for all notes about the ABC project"
- "Update Mike's job title to Senior Engineer"
- "Show me all pending reminders for this month"
- "Create a note about today's meeting with the client"
Development
Scripts
npm run build- Compile TypeScriptnpm run dev- Run with ts-node for developmentnpm run watch- Watch mode compilationnpm start- Run compiled server
Architecture
- TypeScript for type safety
- Zod for schema validation
- Axios for HTTP requests to Dex API
- MCP SDK for protocol implementation
API Integration
This server integrates with the Dex API using:
- GraphQL endpoint:
https://api.getdex.com/v1/graphql - Timeline items for note storage
- Reminders table with contact junction
- Proper pagination and search capabilities
Code Quality & CI
This project uses TypeScript for type safety and ESLint for code linting. All code is automatically checked for type errors and lint issues in CI (see .github/workflows/ci.yml).
- Run type checks locally:
npm run build # or npx tsc --noEmit - Run linter locally:
npm run lint
All pull requests must pass CI checks before merging.
Issue & PR Templates
- Bug reports and feature requests use GitHub issue templates for consistency.
- All pull requests use a PR template to ensure quality and documentation.
Security & Secrets
- Never commit secrets or API keys.
.envis gitignored and secrets are loaded from environment variables. - If a secret is ever committed, follow the repo's history-scrubbing protocol (see
scrub-git-history.sh).
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Run
npm run lintandnpm run buildto check code quality - Submit a pull request
License
MIT License - see LICENSE file for details
Support
For issues related to:
- Dex API: Check Dex documentation
- MCP Protocol: See MCP specification
- This server: Open an issue in this repository
How to report issues or contribute
- Found a bug or have a feature request? Open an issue
- Want to contribute? See for guidelines.
- Security concerns? See for responsible disclosure.
- For release notes and upgrade info, see and .