Model Context Protocol

Your workspace, as tools an agent can use.

An MCP server is a short list of things you are willing to let an AI client do in your workspace. You choose the list. It acts as you, and never more than you.

What actually happens

A tool call is an ordinary API call wearing a different coat. It reaches the same /v1 the REST API does, through the same permission, rate and audit gates. That is why there is only one place a permission bug could live.

How a tool call reaches your workspace An AI client calls your MCP server, which calls the VeruSuite API with your own credential, which reaches your workspace. The client never holds a workspace credential. AI client Claude, Cowork, an agent holds an OAuth token Your MCP server the tools you chose mcp.veruapis.com Your workspace mail, calendar, contacts via /v1, as you tool call your credential The client never holds a workspace credential Every call passes the same permission, rate and audit gates as the REST API

Connecting a client

Three steps, and the credential never leaves your browser.

1

Build the server

In the console, choose a template or tick individual tools. Anyone in your workspace can connect to it afterwards, each acting as themselves.

2

Point the client at it

Give the client the server's address. No credential: the client will ask for one itself.

claude mcp add --transport http mail \
  https://mcp.veruapis.com/s/your-server-id
3

Approve it once

The client opens a browser, you sign in, and a consent screen shows exactly what is being granted and whose account it acts as. Approve it and the client holds a token of its own, which you can withdraw at any time.

A client that cannot run the authorization flow

Some clients only take a static header. The console shows a credential once, at creation, and the configuration to paste it into. It is yours alone: withdrawing it leaves everyone else on the server working.

{
  "mcpServers": {
    "mail": {
      "type": "http",
      "url": "https://mcp.veruapis.com/s/your-server-id",
      "headers": { "Authorization": "Bearer vak_live_..." }
    }
  }
}

Before you hand over a mailbox

The four things worth knowing, none of which are obvious.

A tool that is not on the list does not exist

Anything you did not tick is unknown to the client, and the permission behind it was never granted to the credential. A read-only server cannot be talked into sending mail.

It acts as you, not as the workspace

Each person connects with their own credential and reads their own mailbox. An administrator sharing a server does not share their access, and a permission your role does not allow is withheld from your connection.

Message content is untrusted

Mail and calendar entries are written by strangers, and a model reads them beside its own instructions. Everything that arrives from outside is marked as data to report on, never as instructions to follow.

Everything is logged

Every call records who acted, which server, which tool and what happened, kept for a year. Agent traffic is distinguishable from a script's, because "what did the assistant do" is a different question.

Every tool

78 tools: 32 read, 46 change or send.

Calendar 14 can write
Tool What it does Permission it needs
calendar_find_slots Find a time that works calendar.freebusy.read
calendar_freebusy Query free/busy calendar.freebusy.read
calendar_get_calendar Get a calendar calendar.events.read
calendar_get_event Get an event calendar.events.read
calendar_list_calendar_events List events in a calendar calendar.events.read
calendar_list_calendars List calendars calendar.events.read
calendar_list_events List events calendar.events.read
calendar_create_calendar writes Create a calendar calendar.events.write
calendar_create_event writes Create an event calendar.events.write
calendar_delete_calendar writes Delete a calendar calendar.events.write
calendar_delete_event writes Delete an event calendar.events.write
calendar_rsvp writes Respond to an invitation calendar.events.write
calendar_update_calendar writes Update a calendar calendar.events.write
calendar_update_event writes Update an event calendar.events.write
Contacts 6 can write
Tool What it does Permission it needs
contacts_get_contact Get a contact contacts.read
contacts_list_address_books List address books contacts.read
contacts_list_contacts List contacts contacts.read
contacts_create_contact writes Create a contact contacts.write
contacts_delete_contact writes Delete a contact contacts.write
contacts_update_contact writes Update a contact contacts.write
Documents 11 can write
Tool What it does Permission it needs
documents_get_document Get a document docs.documents.read
documents_list_comments List comments docs.comments.read
documents_list_documents List documents docs.documents.read
documents_copy_document writes Copy a document docs.documents.write
documents_create_comment writes Post a comment docs.comments.write
documents_create_document writes Create a document docs.documents.write
documents_delete_comment writes Delete a comment docs.comments.write
documents_delete_document writes Delete a document docs.documents.write
documents_restore_document writes Restore a document docs.documents.write
documents_update_comment writes Edit or resolve a comment docs.comments.write
documents_update_document writes Update a document docs.documents.write
Files 15 can write
Tool What it does Permission it needs
files_get_file Get file metadata docs.documents.readfiles.read
files_get_upload Get upload status files.read
files_list_files List files docs.documents.readfiles.read
files_list_folders List folders files.read
files_list_permissions List file permissions files.read
files_abort_upload writes Abort an upload files.write
files_complete_upload writes Complete an upload files.write
files_create_folder writes Create a folder files.write
files_create_upload writes Start an upload files.write
files_delete_file writes Delete a file docs.documents.writefiles.write
files_delete_folder writes Delete a folder files.write
files_share_file writes Share a file files.share
files_unshare_file writes Revoke file access files.share
files_update_file writes Rename or move a file docs.documents.writefiles.write
files_update_folder writes Rename or move a folder files.write
Identity 2
Tool What it does Permission it needs
identity_get_current_user Get the current user identity.read
identity_list_groups List groups directory.read
Mail 21 can write
Tool What it does Permission it needs
mail_get_attachment Download an attachment mail.messages.read
mail_get_message Get a message mail.messages.read
mail_get_settings Get display preferences mail.settings.read
mail_list_attachments List attachments mail.messages.read
mail_list_drafts List drafts mail.messages.read
mail_list_filters List mail filters mail.settings.read
mail_list_folders List mail folders mail.folders.read
mail_list_messages List messages mail.messages.read
mail_create_draft writes Create a draft mail.messages.write
mail_create_filter writes Create a mail filter mail.settings.write
mail_create_folder writes Create a mail folder mail.folders.write
mail_delete_draft writes Delete a draft mail.messages.write
mail_delete_filter writes Delete a mail filter mail.settings.write
mail_delete_folder writes Delete a mail folder mail.folders.write
mail_delete_message writes Delete a message mail.messages.write
mail_move_messages writes Move messages mail.messages.write
mail_replace_draft writes Replace a draft mail.messages.write
mail_send_message writes Send an email mail.send
mail_update_flags writes Change flags and labels mail.messages.write
mail_update_folder writes Rename a mail folder mail.folders.write
mail_update_settings writes Update display preferences mail.settings.write
Spreadsheets 9 can write
Tool What it does Permission it needs
spreadsheets_batch_get_values Read several ranges sheets.values.read
spreadsheets_get_spreadsheet List the sheets in a spreadsheet sheets.values.read
spreadsheets_get_state Get the current state sheets.values.read
spreadsheets_get_values Read a range sheets.values.read
spreadsheets_append_values writes Append rows sheets.values.write
spreadsheets_batch_update writes Change a spreadsheet's structure sheets.structure.write
spreadsheets_batch_update_values writes Write several ranges sheets.values.write
spreadsheets_clear_values writes Clear a range sheets.values.write
spreadsheets_put_values writes Write a range sheets.values.write

Each tool is one endpoint, documented in full in the API reference.

Start with a read-only server

The safest thing to try first: an assistant that can read your mail and calendar and change nothing. Add write tools when you know what you want.