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
- Claude
- Cursor
- Other clients
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?”
/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.
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_fieldonly adds select options;update_field_optionsrenames, 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_visibilitywaits for your approval in Dench before it narrows, andupdate_objectwaits 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 withsave_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 standardsearch 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 torun_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 assequenceId and emailMailboxAccountIds.
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.
limittakes 1 to 50 (20 if you leave it out); any other value, such as0or-5, answersvalidation_failedinstead of being reduced. Pass the returnednextCursor, unchanged, ascursorto get the next page; a cursor the tool didn’t hand out answersinvalid_cursor. A few tools page their own way:list_view_recordsby page number, and the web and data tools by the page token they return. - Every tool that takes a
cursorreturns its rows asitems, withnextCursorbeside them (nullon the last page), plus any fields of its own such astotalormessage. The one exception issearch, which returnsresultsas AI apps’ company-knowledge search expects. Tools that used to returncontinueCursorandisDonestill do, for older clients:continueCursorequalsnextCursor, andisDoneis true whennextCursorisnull. Rows that used to come back aspagenow come back asitems. - Each tool call has 25 seconds. If a write runs out of time, it returns
outcome_unknownbecause it may still finish. Check the result before trying again. - Each connection can make 300 requests and 60 writes per minute.
Troubleshooting
Join a workspace before connecting an AI app
Join a workspace before connecting an AI app
Your Dench account isn’t a member of any workspace yet. Create or join
one at dench.com, then connect again.
insufficient_scope
insufficient_scope
The tool needs a permission you didn’t grant. Disconnect, connect again,
and tick that permission on the consent screen.
approval_required
approval_required
Approve the request in Approvals, then
let the app call again with the
approval_id it was given.validation_failed
validation_failed
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.invalid_cursor
invalid_cursor
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.not_found for an id
not_found for an id
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.Object not found
Object not found
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.Inbox tools return an empty page
Inbox tools return an empty page
No email inbox or LinkedIn account is connected to the workspace. Connect
one in Dench. See Integrations.