Skip to main content
Dench is the AI revenue engine and CRM. The Dench MCP connector brings your workspace into the AI apps you already use. Claude, Cursor, or any MCP client can then do what the Dench CLI does: read and update your CRM, views, analytics, comments, tasks, meetings, and files, read your inbox, campaigns, and memory, search the web and Dench’s people and company data, and run actions in the apps you connected to Dench.
Server URL: https://mcp.dench.com/mcp. You sign in with OAuth, choose one workspace, and approve the permissions the app gets. Connected-app actions that aren’t read-only wait for your approval in Dench before they run.

Connect

1

Add the connector

If Dench is listed in Claude’s connector directory, open it and click Connect. Otherwise, open Settings → Connectors, choose Add custom connector, and enter:
On Team and Enterprise plans, an owner may need to add the connector for the organization first.
2

Sign in and approve

Claude opens Dench in your browser. Sign in, choose a workspace and permissions, and click Approve. See Sign in and choose a workspace.
3

Use it

Turn Dench on for a chat, then ask something like “What are my open tasks in Dench?”
For Claude Code, add the server, then run /mcp and choose dench to sign in:
Clients sign in with the OAuth authorization-code flow and PKCE (S256). Dench supports dynamic client registration and client ID metadata documents, and publishes discovery metadata at https://mcp.dench.com/.well-known/oauth-protected-resource/mcp. The server only accepts access tokens issued through this flow. Dench API keys and dench signin sessions don’t work here; use them with the CLI or API.

Sign in and choose a workspace

When you connect, your AI app opens Dench in your browser.
1

Sign in to Dench

Click Continue with Google, or enter your email and type the 6-digit code Dench sends you. If you’re already signed in, you skip this step.
2

Choose a workspace

Pick one workspace from the list of every workspace you belong to. The one you’re currently in is selected. The app works only in that workspace and acts as you.
3

Choose permissions and approve

Review the app’s name and where it redirects. Apps that Dench hasn’t verified are marked unverified. Tick the permissions you want to grant, then click Approve. You return to your AI app, connected.
To use another workspace or change permissions, disconnect and connect again.

Permissions

The consent screen lists four permissions. The app only sees the tools for the permissions you approve, and Dench checks them again on every call. For a read-only connection, untick Create and update workspace data and Act in your connected apps.

Tools

The connector offers the same actions as the Dench CLI: both run the same Dench operations, and a check in Dench’s build fails when a CLI command has no MCP tool and no recorded reason for leaving it out. With the first three permissions it offers 235 tools; the outreach permission adds 60 more. In the Permission column, Read, Write, and Connected apps stand for Read your workspace, Create and update workspace data, and Act in your connected apps. No tool can approve or reject a request. Signing in, billing, saved setups and secrets, and approving or rejecting stay with the CLI and the app. Deletes have their own tools (Deletes), which AI apps mark as destructive.

CRM records

Field names in record data must match the object’s fields (list_fields); Dench also accepts common aliases in any case, such as name for a task’s title field and Owner for its Assignee, exactly as the CLI does. query_records pages through a whole object in index order; find_records sorts and returns up to 200 rows; list_records previews the newest 200 and says truncated: true when there are older records. assigned_to (me, unassigned, or a member) scopes a read to one person’s records without changing any view. Tools that take an object_name also accept it as object (for example "people", "company", or a label such as "Contacts"), tools that take a record’s entry_id also accept it as record_id, and campaign tools accept sequence_id for sequenceId. list_records, query_records, and get_record leave empty fields out of each record, so a field you don’t see has no value. An id that isn’t a record of that object, including a malformed one, answers not_found.

Objects, fields, and statuses

For example, ask “Create a Content table in Dench with Name, Type, Channel, and Status selects, a Publish date, a Link, and Notes.” The app calls create_object with one entry per field:
  • Every object already has a rich-text Notes field, so a requested Notes text field is reported as existing rather than created twice.
  • Dench creates the object and its fields together. If any field is rejected, such as a relation to an object that doesn’t exist, nothing is created and the error names the field, so the app can fix it and call again.
  • update_field only adds select options; update_field_options renames, recolors, or reorders them. No tool removes an option, a field, or an object.
  • Changing who can see an object’s records is for workspace admins. Narrowing an object to its owners hides every record without an owner from everyone. set_object_visibility waits for your approval in Dench before it narrows, and update_object waits for it before any visibility change.

Views and sidebar

Analytics

Record details, comments, and notes

Tasks and subtasks

Meetings

A meeting is private to its owner and invitees until it is shared with the workspace. Create and update the meeting record itself with the record tools.

Members, notifications, and settings

Files and saved lists

Dench chats, routines, and apps

start_chat hands a task to Dench’s own agent; it never skips Dench’s approvals. Chats and routine runs use AI credits.

Workspace context, rules, and memory

Approval requests

Connected apps

connect_app returns a link: you open it and sign in to the app before the connection exists. disconnect_app waits for your approval in Dench.

Web, people, and company data

These reach outside Dench and use credits, like the same CLI commands. They change nothing in your workspace; save results with save_list or the record tools.

Campaigns

These tools only read. With the first three permissions, an AI app can’t create, edit, launch, pause, or resume a campaign.

Email and LinkedIn

These tools only read. With the first three permissions, an AI app can’t send email through them. If no inbox or LinkedIn account is connected yet, the inbox tools return an empty page with a note instead of an error.

Deletes

Each delete runs the same operation as the CLI’s delete command and is marked destructive, so AI apps can ask before calling it. Archive, pause or disable instead when the data should come back. The outreach permission adds four more: campaigns_builder_discard, campaigns_people_remove, email_identity_delete and email_sequence_step_remove (see Outreach permission).

Search and fetch

For AI apps that use the standard search and fetch tools for company knowledge.

Approval flow

Sending and other sensitive actions don’t run until a person approves them in Dench. This applies to run_action for any connected-app action that isn’t read-only, run_record_action, disconnect_app, changing who can see an object’s records with update_object, narrowing an object with set_object_visibility, and the sending and launching tools under the outreach permission.
1

The app asks

The first call runs nothing. It returns approval_required with an approvalId and a link to approvals in Dench.
2

You decide in Dench

Open Approvals in Dench, review which app asked and what it wants to do, and approve or reject it.
3

The app calls again

After you approve, the app repeats the call with the same arguments and the approval_id. The action runs once.

Runs directly

Connected-app actions whose slug contains FETCH, GET, LIST, SEARCH, READ, or FIND, and no write verb.

Needs approval

Every other connected-app action, including anything that sends, creates, updates, or deletes, or that Dench can’t classify.
  • Each approval covers one call with those exact arguments, from the connection that asked. If the arguments change or the call fails, the app needs a new approval.
  • AI apps can’t approve their own requests. There is no tool that decides an approval.
  • These approvals always apply to AI apps connected over MCP, even though the workspace runs Dench’s own agents with Full access.

Outreach permission

Manage and send outreach is off unless you tick it on the consent screen. It always starts unticked, even when the app asks for it. With it, the app gets 60 more tools. Their arguments keep the API’s own names, such as sequenceId and emailMailboxAccountIds.
Adding people to a campaign that is already running starts outreach to them right away.
Approval is in addition to Dench’s usual checks. Sending still enforces sender ownership and suppression rules. Launching still needs a current readiness fingerprint and, when required, your acknowledgement of the LinkedIn risk.

Disconnect

In Dench, open Settings → API keys. Under Connected AI apps, click Disconnect next to the app to revoke its access. Removing the connector in your AI app stops that app from calling Dench, but only disconnecting in Dench revokes the connection itself.

Limits

  • A list tool returns at most 50 items per page. limit takes 1 to 50 (20 if you leave it out); any other value, such as 0 or -5, answers validation_failed instead of being reduced. Pass the returned nextCursor, unchanged, as cursor to get the next page; a cursor the tool didn’t hand out answers invalid_cursor. A few tools page their own way: list_view_records by page number, and the web and data tools by the page token they return.
  • Every tool that takes a cursor returns its rows as items, with nextCursor beside them (null on the last page), plus any fields of its own such as total or message. The one exception is search, which returns results as AI apps’ company-knowledge search expects. Tools that used to return continueCursor and isDone still do, for older clients: continueCursor equals nextCursor, and isDone is true when nextCursor is null. Rows that used to come back as page now come back as items.
  • Each tool call has 25 seconds. If a write runs out of time, it returns outcome_unknown because it may still finish. Check the result before trying again.
  • Each connection can make 300 requests and 60 writes per minute.

Troubleshooting

Your Dench account isn’t a member of any workspace yet. Create or join one at dench.com, then connect again.
The tool needs a permission you didn’t grant. Disconnect, connect again, and tick that permission on the consent screen.
Approve the request in Approvals, then let the app call again with the approval_id it was given.
An argument doesn’t match the tool’s schema, such as a limit above 50, or a required argument is missing (job_id: Required). The error names each argument to fix and why, all in one answer, and nothing runs until they’re fixed. Dench never quietly changes the value.
The cursor isn’t one this tool handed out: it was edited, cut short, or came from another tool. Pass nextCursor from the tool’s previous page exactly as returned, or leave cursor out to start from the first page.
The id doesn’t name anything in this workspace: it was mistyped, the item was deleted, or it belongs to another workspace. get_record, get_routine, list_routine_runs, update_routine, run_routine, get_saved_list, update_saved_list and delete_document answer not_found for it, and the writes change nothing. List the items again, for example with list_routines, list_saved_lists or list_documents, and use an id from the result.
The error lists every object in the workspace, starting with people, company, and task, with display labels in brackets. availableObjects holds the same list. Call again with one of those names as object_name.
No email inbox or LinkedIn account is connected to the workspace. Connect one in Dench. See Integrations.

Support and privacy

For help, email support@dench.com. To learn how Dench handles your data, read the privacy policy.