What is Double's MCP server?
Double's MCP (Model Context Protocol) gives your AI agents tools to read and make updates to your account. This lets you manage your clients, teammates, and tasks through an AI assistant without switching apps.
For example, you could ask your AI assistant:
My teammate Melissa will be out of office next week, can you reassign their tasks to Jillian?
Here's a transcript of an onboarding meeting I had with a client - please create some action items as tasks in the General task section. I want these to be due at the end of the week and assigned to Ryan.
I'd like to know how my team's performing. Which users are completing the most work, and which are routinely completing their tasks late? Could you provide me with a score for each of them?
I need some calendar reminders - can you create tasks in my google calendar for all of the Double tasks that are due today and assigned to me?
Connecting AI agents with Double
Double's MCP currently supports custom connections with Claude, ChatGPT, and Microsoft Copilot.
Claude
In the Claude desktop app, open the sidebar menu
Navigate to Customize → Connectors
Click the + button then Add custom connector:
Name = Double
Remote MCP server URL = https://api.doublehq.com/mcp
You can also configure permissions to control what your agent is allowed to perform inside of your Double account. We recommend setting read-only tools to Always allow by default, but setting permissions for write tools more granularly as you get used to working with the MCP.
If you're using a Team or Enterprise Claude plan, an Owner will need to add the custom connector before teammates can enable it. Once the owner has added the connector to the organization, each team member will be able to connect it individually.
ChatGPT
From the ChatGPT webpage, click on your account profile icon in the bottom left-hand corner
Navigate to Settings → Apps
Beside Advanced Settings, press Create app:
Name = Double
MCP server URL = https://api.doublehq.com/mcp
Demo: ChatGPT
Gemini CLI
To access MCP servers using Gemini, you’ll first need to set up Gemini CLI. For more details on this process, please see Gemini’s article here: Getting Started with Gemini CLI
Find and edit your Gemini settings file (~/.gemini/settings.json)
In your terminal, you can type “subl ~/.gemini/settings.json” followed by enter to access this file directly
Paste the following text immediately before the final “]” in the text file:
"mcpServers": {"double": {
"url": "https://api.doublehq.com/mcp"
Save your file using its existing name. It should look something like the image below:
To authenticate your credentials, type “/mcp auth double” and sign into your Double account
Microsoft Copilot
In the Copilot Studio webpage, navigate to Tools and add a new tool
Select Model Context Protocol
Name: Double MCP (or your own custom name)
Server Description: This is used to connect with Double's MCP (or your own custom description)
Authentication: OAuth 2.0
Type: Dynamic discovery
Create your tool, then next to “Connection” you can create a new connection. You will be prompted to sign into your Double account to complete your connection
You should now be able to input prompts in your M365 Teams application to access Double’s MCP server. We recommend sending the prompt “send a ping to Double” - this should return “pong”
If this returns an error and prompts you to visit your connection manager, please follow the link provided by Microsoft to reconnect your tool to the agent
You can also configure permissions to control what your tool is allowed to perform inside of your Double account. We recommend allowing permissions for read-only tools (tools starting with “list” or “get”), but setting permissions for write tools more granularly as you get used to working with the MCP.
Tools
The MCP server supports the following tools:
Read-only tools:
Tool Name | Tool Description |
get_client | Returns client details for a single client |
get_end_close | Returns status and assignee for a specific close period |
get_posts | Lists portal posts (client questions) for a client |
get_property_columns | Gets all property column definitions for the practice, including available options |
get_tags | Lists available tags for client questions (non-transaction posts) |
get_task | Returns details for a single task |
get_task_templates | Retrieves all task templates available for the practice, including tasks within them |
get_user | Returns details for a specific user |
list_activity_log | Retrieves activity log entries with optional filters for client, user, contact, and date |
list_activity_log_actions | Returns all valid activity log action values usable as filters |
list_client_properties | Lists all custom properties and their values for a client |
list_clients | Lists clients & client information |
list_comments | Retrieves comments with optional filters for client, type, task, thread, and date |
list_contacts | Lists portal contacts in the current practice |
list_end_close_statuses | Lists all available statuses for monthly close periods |
list_end_closes | Lists monthly close periods along with status and assignee |
list_notes | Lists all notes for a client |
list_sections | Lists all valid task sections where tasks can be manually created |
list_tasks | Lists tasks along with status, assignee, and due dates |
list_timers | Retrieves time tracking entries with optional filters for user, client, workstream, and date |
list_users | Lists users along with their names, emails, and roles |
list_workstreams | Lists available workstreams for time tracking |
ping | Health check — returns pong |
Write/delete tools:
Tool Name | Tool Description |
add_post | Creates a new non-transaction portal question for a client |
add_task_comment | Adds a comment to a task |
add_timer | Creates a new time tracking entry |
create_client | Creates a new unconnected client |
create_closing_task | Creates a new task in a closing task section for a specific close period |
create_contact | Creates a new portal contact |
create_custom_task | Creates a new task in a custom task section |
create_firm_task | Creates a practice-level firm task not tied to any specific client |
create_note | Creates a new note for a client |
update_closing_task | Updates an existing closing task |
update_contact | Updates an existing portal contact |
update_custom_task | Updates an existing custom task |
update_end_close | Updates a monthly close period |
update_firm_task | Updates a practice-level firm task |
Getting Started with Double's MCP Server
Here's a quick overview of how to get started with Double's new MCP server.
Pro Tip
Specifically tell the AI agent to use the Double MCP to action your request





