MCP Server
The DragApp MCP server exposes 43 tools across 11 categories, giving any MCP-compatible AI client full access to your boards, emails, cards, contacts, knowledge base, analytics, and automations.
Built on the Model Context Protocol standard. Open source, MIT licensed.
Installation
Run directly with npx (recommended). No install needed:
npx -y @dragapp/mcp-serverOr install globally:
npm install -g @dragapp/mcp-serverAuthentication
The MCP server authenticates using your DragApp API key, passed as the DRAG_API_KEY environment variable.
Get your API key from DragApp settings.
Your API key grants full access to your DragApp workspace. Keep it secret and never commit it to version control.
Client setup
Add the following JSON to your AI client's MCP configuration file:
{
"mcpServers": {
"dragapp": {
"command": "npx",
"args": ["-y", "@dragapp/mcp-server"],
"env": {
"DRAG_API_KEY": "your-api-key"
}
}
}
}Config file locations
| Client | Config path |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| ChatGPT | ChatGPT Desktop app settings |
| Gemini | Gemini Desktop app settings |
| Copilot | Copilot Desktop app settings |
| Cursor | .cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Claude Code | ~/.claude.json or .mcp.json |
Tool reference
43 tools across 11 categories. Each tool is automatically available to any connected MCP client.
| Tool | Description |
|---|---|
list_threads | List email threads in a specific column of a board |
get_thread | Get a single email message with full HTML body |
reply_to_thread | Reply to an existing email thread |
send_new_email | Send a new email from a board |
search_threads | Search for threads across all boards |
filter_threads | Filter threads by label, assignee, or status |
move_thread | Move a thread to a different column |
move_threads_bulk | Move multiple threads at once |
Boards
5| Tool | Description |
|---|---|
list_boards | List all boards the authenticated user has access to |
get_board | Get details of a specific board |
list_columns | List all columns in a board |
list_board_members | List all members of a board |
list_teams | List all teams in the workspace |
Cards
6| Tool | Description |
|---|---|
list_cards_in_column | List all cards in a specific column |
get_card | Get details of a specific card |
create_card | Create a new card in a column |
update_card | Update card properties (title, description, assignee, due date) |
move_card | Move a card to a different column or position |
archive_card | Archive a card |
Labels
4| Tool | Description |
|---|---|
list_labels | List all labels available on a board |
add_label_to_thread | Add a label to an email thread |
remove_label_from_thread | Remove a label from an email thread |
toggle_labels | Toggle label visibility on a board |
Comments
2| Tool | Description |
|---|---|
add_comment | Add an internal comment to a card or thread |
get_comment | Get details of a specific comment |
Tasks
1| Tool | Description |
|---|---|
create_task | Create a task (checklist item) on a card |
Contacts
3| Tool | Description |
|---|---|
search_contacts | Search contacts by name or email address |
get_contact_conversations | Get all conversations with a specific contact |
create_contact | Create a new contact in the workspace |
Knowledge Base
5| Tool | Description |
|---|---|
list_articles | List all articles in the knowledge base |
get_article | Get the full content of a knowledge base article |
create_article | Create a new knowledge base article |
update_article | Update an existing knowledge base article |
search_knowledge | Search the knowledge base by query |
Analytics
4| Tool | Description |
|---|---|
get_response_times | Get response time metrics for a board |
get_avg_response_time | Get the average response time across boards |
get_daily_activity | Get daily activity metrics (threads created, replied, resolved) |
get_closed_activity | Get metrics on closed/resolved threads |
Automations
3| Tool | Description |
|---|---|
list_automations | List all automations configured on a board |
toggle_automation | Enable or disable a specific automation |
toggle_ai_drafts | Enable or disable AI draft generation on a board |
Examples
Natural language prompts and the tools the AI client will call behind the scenes.
“Show me unread emails on the Support board”
list_boards → list_columns → list_threads
The AI client finds the Support board, identifies the correct column, and lists threads with their subjects, senders, and timestamps.
“Reply to the latest email from Sarah”
search_threads → get_thread → reply_to_thread
Searches across boards for threads from Sarah, retrieves the full message, then composes and sends a reply.
“What's our average response time this week?”
get_avg_response_time
Calls the analytics tool directly to return the average response time with period comparisons.
“Create a card on the Sprint board with this bug report”
list_boards → list_columns → create_card
Finds the Sprint board, identifies the right column (e.g. Backlog), and creates a card with the bug details.
“Assign all billing-related threads to Sarah”
filter_threads → move_threads_bulk
Filters threads by the BILLING label, then moves them to Sarah's assigned column in bulk.
“Search our knowledge base for the refund policy”
search_knowledge
Searches the knowledge base and returns matching articles with excerpts.
Development
Clone the repository and run locally:
git clone https://github.com/nick-timms/drag-mcp-server.git
cd drag-mcp-server
npm install
npm run build
DRAG_API_KEY=your-key node dist/index.jsFor development with auto-rebuild:
npm run devLinks
GitHub repository: source code, issues, contributions
npm package: @dragapp/mcp-server
Model Context Protocol: MCP specification
REST API docs: DragApp REST API reference
License: MIT
Need help?
Help center: guides and tutorials
support@dragapp.com: email support
GitHub issues: bug reports and feature requests