Dovetail MCP server
51 operations0 webhooks
Customer research platform for managing projects, notes, highlights, insights, data, docs, folders, tags, contacts, channels, and files.
Try Dovetail with your agent
Connect Dovetail, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Dovetail on my account, then run one read-only example and show me the result.
Dovetail tools and triggers
Tools are what your agent can do in Dovetail through Corsair's MCP server. Triggers are the Dovetail events a routine can start from.
Docs
- CreateWrite
Tool to create a doc in a Dovetail project with text content, title and/or custom fields. Use when you need to document research findings, store notes, or create structured content within a project. The doc content is stored but not returned in the response.
docs.create
- DeleteDestructive
Tool to delete an existing doc. Use when you need to remove a doc and move it to the project's trash (restorable for 30 days).
docs.delete
- ExportRead-only
Tool to export a doc in HTML or Markdown format. Use when you need to retrieve the full content of a doc from Dovetail in a specific format.
docs.export
- GetRead-only
Tool to retrieve details of a specific doc by ID. Use when you have confirmed the doc ID and need full doc metadata from Dovetail.
docs.get
- Import FileWrite
Tool to import a public file URL as a new doc in Dovetail. Use when you need to create a doc from an external file source. The file must be publicly accessible at the provided URL.
docs.importFile
- ListRead-only
Tool to list docs in a Dovetail workspace with optional filtering, sorting, and pagination. Use when you need to retrieve docs, optionally filtered by project, title, content, or creation date.
docs.list
- List User DocsRead-only
Tool to get a list of docs associated with a user in Dovetail. Use when you need to retrieve documents for a specific user or the authenticated user (use 'me' as user_id).
docs.listUserDocs
- UpdateWrite
Tool to update a doc in Dovetail. Use when you need to modify a doc's title or custom fields.
docs.update
Insights
- CreateWrite
Creates a new insight in Dovetail to store synthesized research findings, observations, or conclusions. Use this tool when you need to document and save key findings from user research, interviews, or data analysis. Insights can optionally be linked to a project for better organization. Returns the created insight's ID, title, creation timestamp, and other metadata. Note: The body content is stored but not included in the response.
insights.create
- DeleteDestructive
Tool to delete an existing insight. Use when you have confirmed the insight ID and want to move it to trash (restorable for 30 days).
insights.delete
- ExportRead-only
Tool to export an insight in HTML or Markdown format. Use when you need to retrieve the full content of an insight for documentation, reporting, or sharing purposes. The exported content includes the insight's title and body in the specified format.
insights.export
- GetRead-only
Tool to retrieve details of a specific insight by ID. Use when you need full insight metadata from Dovetail.
insights.get
- Import FileWrite
Tool to import a file from a public URL as a new insight in Dovetail. Use when you need to create an insight from an external file source such as PDFs, images, or documents. The file must be publicly accessible for Dovetail to fetch and import it. After import, the insight can be analyzed, tagged, and connected to projects.
insights.importFile
- ListRead-only
Tool to get a list of insights associated with a workspace. Use when you need to retrieve insights with optional filtering by project, publication status, or title, and support for cursor-based pagination.
insights.list
- List User InsightsRead-only
List personal insights for a user in Dovetail. Returns a paginated list of insights including their IDs, titles, creation dates, and published status. Use DOVETAIL_GET_TOKEN_INFO to obtain a valid user_id.
insights.listUserInsights
- UpdateWrite
Updates an existing insight in Dovetail, allowing you to modify the title and custom fields. Use when you need to revise insight information, correct titles, or update custom field values.
insights.update
Channels
- CreateWrite
Creates a new channel in Dovetail to organize and collect feedback data. Channels are containers for specific types of customer feedback such as app reviews, NPS responses, churn reasons, product reviews, or support tickets. Use this to set up a new data collection source before importing feedback data.
channels.create
- Create Data PointWrite
Tool to create a data point within a channel. Use after capturing new content to record and classify it in Dovetail.
channels.createDataPoint
- Create TopicWrite
Tool to create a new topic in a Dovetail channel. Requires channel_id, title, and description. Use to organize feedback within channels by creating themed discussion topics.
channels.createTopic
- DeleteDestructive
Tool to delete an existing channel. Use when you need to remove a channel and move it to the project's trash (restorable for 30 days). Confirm the channel ID before calling.
channels.delete
- Delete TopicDestructive
Tool to delete an existing topic. Use when you have confirmed the topic ID and want to move it to trash (restorable for 30 days). Example: "Delete topic with ID 123e4567-e89b-12d3-a456-426614174000."
channels.deleteTopic
- UpdateWrite
Tool to update an existing channel's title or context. Use after confirming the channel ID and fields to change.
channels.update
- Update TopicWrite
Tool to update an existing topic. Use after confirming the topic ID and fields to change. Example: "Update topic with id 123... to have title 'New'".
channels.updateTopic
Data
- CreateWrite
Tool to create a data item in a Dovetail project with text content, title, and/or structured fields. Use when you need to capture and store research data, interview notes, or other content in a project.
data.create
- DeleteDestructive
Tool to delete an existing data item. Use when you have confirmed the data ID and want to move it to trash (restorable for 30 days). Example: "Delete data with ID 1tFfvvAmYPCLUqb9zO8dgN."
data.delete
- ExportRead-only
Tool to export data in HTML or Markdown format. Use when you need to retrieve a formatted version of data items from Dovetail.
data.export
- GetRead-only
Tool to retrieve details of a specific data item by ID. Use when you have confirmed the data ID and need full metadata including custom fields, files, and project information from Dovetail.
data.get
- Import FileWrite
Tool to import a public URL of a file as new data in Dovetail. Use when you need to add external files to a project.
data.importFile
- ListRead-only
Tool to list data items in Dovetail. Use when you need to retrieve, filter, sort, or paginate through your workspace data. Supports filtering by created_at (date range), project_id, and title. Results can be sorted by created_at or title. Uses cursor-based pagination with configurable page size.
data.list
- UpdateWrite
Tool to update a data item in Dovetail. Use when you need to modify the title or fields of an existing data item.
data.update
Notes
- CreateWrite
Tool to create a note in a Dovetail project with text content, title and/or custom fields. Use when you need to document research notes, store interview findings, or create structured content within a project. The note content is stored but not returned in the response.
notes.create
- DeleteDestructive
Tool to delete an existing note. Use when you have confirmed the note ID and want to move it to trash (restorable for 30 days).
notes.delete
- ExportRead-only
Tool to export a note from Dovetail in HTML or Markdown format. Use when you need to retrieve the full content of a note in a specific export format.
notes.export
- GetRead-only
Tool to retrieve details of a specific note. Use when you have confirmed the note ID and need full note metadata from Dovetail.
notes.get
- Import FileWrite
Tool to import a file from a public URL as a new note in Dovetail. Use when you need to create a note by importing content from an accessible file URL (PDF, video, audio, etc.).
notes.importFile
- ListRead-only
List notes in Dovetail workspace with optional pagination and sorting. Use this tool to retrieve notes from your Dovetail workspace. Supports pagination for large result sets and sorting options. Returns note metadata including IDs, titles, timestamps, and associated project information.
notes.list
- UpdateWrite
Tool to update an existing note in Dovetail. Use when you need to modify a note's title, content, or custom fields. Example: "Update note 8IFq5LEC6hV1Vgsu0jPNJ with new title 'Q1 Review'".
notes.update
Contacts
- CreateWrite
Tool to create a new contact in Dovetail. Use when you need to register a contact before logging interactions.
contacts.create
- GetRead-only
Tool to retrieve details of a specific contact. Use when you have confirmed the contact ID and need full contact metadata from Dovetail.
contacts.get
- ListRead-only
Retrieves a paginated list of contacts from a Dovetail workspace. Returns contact IDs, names, creation timestamps, and custom fields. Use cursor-based pagination (limit + start_cursor) to navigate large contact lists efficiently.
contacts.list
- UpdateWrite
Tool to update an existing contact in Dovetail. Use when you need to modify a contact's name, email, or custom fields.
contacts.update
Projects
- CreateWrite
Tool to create a new project in your Dovetail workspace. Use when you need to create a project to organize research data.
projects.create
- GetRead-only
Tool to retrieve details of a specific project. Use when you have confirmed the project ID and need full project metadata from Dovetail.
projects.get
- ListRead-only
Tool to list all projects in Dovetail. Use after authenticating with a valid workspace token when you need to retrieve the full project list.
projects.list
Folders
- GetRead-only
Tool to retrieve details of a specific folder. Use when you have confirmed the folder ID and need full folder metadata from Dovetail.
folders.get
- ListRead-only
Tool to get a list of folders associated with a workspace. Use when you need to retrieve folder hierarchy, search for folders by title, or navigate the folder structure with pagination support.
folders.list
Files
- GetRead-only
Tool to retrieve details of a specific file by its ID. Use when you need file metadata, download URL, or processing status from Dovetail.
files.get
Highlights
- ListRead-only
List highlights from your Dovetail workspace with optional filtering and pagination. Use this action to retrieve highlights that have been created across your notes and projects. Supports filtering by project or note, and cursor-based pagination for large result sets.
highlights.list
Search
- Magic SearchRead-only
Tool to perform a magic search across workspace data. Use when you need to retrieve relevant highlights, notes, insights, channels, themes, or tags by query.
search.magicSearch
Tags
- ListRead-only
List all tags in the authenticated Dovetail workspace. Returns tag details including title, color, highlight count, and timestamps. Supports pagination for workspaces with many tags.
tags.list
Token
- Get InfoRead-only
Retrieves information about the current API token, including its unique identifier and the associated workspace subdomain. Use this to verify which workspace the token belongs to.
token.getInfo
Connect Dovetail to Claude, ChatGPT or Cursor
- 1
Connect Dovetail in Corsair
Add your Dovetail API key once in Corsair. Corsair stores the credential encrypted and makes the Dovetail API calls for your agent, so it never goes into a prompt or a config file. Connect Dovetail
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Dovetail. On a ChatGPT personal plan, connect Dovetail here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Dovetail's read and write operations run right away and its 6 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/dovetail, add the Dovetail plugin, and connect with an API key. Then call methods like corsair.dovetail.api.channels.create() from your app. Corsair syncs data per tenant.
Yes. Dovetail requires an API key from your Dovetail account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Dovetail, GitHub, Notion, Stripe, and the rest. Trigger Dovetail from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for customer research platform for managing projects, notes, highlights, insights, data, docs, folders, tags, contacts, channels, and files. Common builds include sync jobs, admin tooling, and agents that call Dovetail APIs from your backend. Local DB entities let you query synced Dovetail records without hitting the API on every read.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Dovetail API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/dovetail in the open repo. When Dovetail ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Dovetail data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Dovetail data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Dovetail on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 6 destructive Dovetail operations. You can change a link's mode at hub.corsair.dev/me.