Skip to content

These pages describe PrivacyFence 7.0.2. Download it · What changed

Tools reference

Every connector tool PrivacyFence offers an MCP client, and the gate each one goes through. This page is generated by scripts/generate_tools_reference.py from the connectors' own tool definitions and the gate table in src/privacyfence/auto_accept.py. Don't edit it by hand.

A connector's tools appear only after its organization config is installed and you have signed in to that service (see Connecting a service). The privacyfence_* tools that PrivacyFence adds itself (eight always, plus privacyfence_propose_scoped_token where token proposals are on: always on a local install, by the administrator's choice in organization mode) are not connector tools and have no gate; they are described in How PrivacyFence works.

Gates

Gate What happens when the AI system calls the tool
auto Runs straight away with no card. Still recorded in the audit log.
review A read. You see a card showing what would be released before the result goes back to the AI system, unless an auto-accept rule covers the call.
popup A write or other change. You approve it on a card before it happens, unless an auto-accept rule covers the call.

A tool's gate is fixed in code; no setting moves a tool to a different gate. Auto-accept rules, PII detection, the privacy filter and passkey step-up all act within these gates: see Approvals and policy. What the Always allow button proposes for each review and popup tool is listed in the Always allow reference.

Direction is what the tool itself declares: read tools change nothing in the connected service; write tools create, change or send something. A few write tools are auto because they create something empty and disclose nothing (for example drive_create_blank_file).

What it does is the first sentence of the description the AI system is shown for the tool.

When you deny a call

A denied review or popup call fails with an error whose text always starts Request denied by user.. A plain Deny adds a default instruction:

Request denied by user. Don't retry the same call; ask the user how to proceed.

When you deny with an intent, a note, or both, the AI system gets them instead. The intent is one of stop, wrong_target, rewrite or different_approach, sent as fixed guidance text; the note is your own text, cleaned of control and invisible characters, at most 500 characters, and quoted as a JSON string after a fixed label so it can't be mistaken for PrivacyFence's own words:

Request denied by user. The user chose "Wrong target": the user says the target is wrong
(recipient, file, folder, record or account). Correct the target, then ask again. User's note
(written by the person who denied this request; JSON string): "Just send it to Anna."

(One line in reality.) An AI system that collects the decision with privacyfence_await_approval instead still sees "denied" as that approval's status, and the feedback under one extra key:

{
  "3f2a…": "denied",
  "denial_feedback": {
    "3f2a…": {"intent": "wrong_target", "note": "Just send it to Anna.", "guidance": "The user says the target is wrong (…). Correct the target, then ask again."}
  }
}

denial_feedback appears only when a denied approval in that call has feedback; intent, note and guidance are null when absent. The note is never written to the audit log, which records only the intent and the note's length. See ADR 0083 and ADR 0084.

Re-issuing a denied call within the approval's ledger lifetime (5 minutes by default) fails without a new card. A read's denial is reused for every identical call in that window, from any session. The text is the same, with one sentence after the prefix saying the denial was reused:

Request denied by user. This is not an error and the user was not asked again: PrivacyFence
reused the user's denial of an identical request made 2 minutes ago, as it does for identical
requests for 5 minutes after a decision. Don't retry the same call; ask the user how to proceed.

(One line in reality.) See ADR 0090.

Summary

Connector Tools auto review popup
Gmail 20 5 3 12
Google Drive 26 8 4 14
Google Calendar 14 6 1 7
Google Contacts 7 3 0 4
Google Tasks 8 3 0 5
Apps Script 4 1 2 1
Slack 12 7 3 2
Telegram 5 2 2 1
Salesforce 9 1 4 4
Jira 13 6 3 4
Confluence 12 7 3 2
Jira Assets 8 3 5 0
Grist 11 2 3 6
Peek 12 2 3 7
Miro 10 3 3 4
Total 171 59 39 73

Gmail

Tool Direction Gate What it does
gmail_list_filters read auto List all Gmail filters with their criteria and actions.
gmail_list_labels read auto List all Gmail labels (system and user-created).
gmail_list_message_attachments read auto List attachment names, MIME types, and sizes for a Gmail message.
gmail_list_messages read auto Search Gmail and return matching message summaries (id, thread_id, subject, sender, date).
gmail_list_threads read auto Search Gmail and return matching thread summaries (id, snippet).
gmail_download_attachment read review Download a Gmail attachment's content.
gmail_get_message read review Fetch a single Gmail message by id, including body, metadata, and attachment list.
gmail_get_thread read review Fetch a full Gmail thread by id, including all messages.
gmail_add_label write popup Add a label to a Gmail message.
gmail_archive_message write popup Archive a Gmail message by removing it from the Inbox.
gmail_create_draft write popup Create a Gmail draft.
gmail_create_draft_with_attachments write popup Create a Gmail draft with one or more local-file attachments.
gmail_create_filter write popup Create a Gmail filter.
gmail_create_label write popup Create a Gmail label.
gmail_remove_label write popup Remove a label from a Gmail message.
gmail_reply_all_draft write popup Create a Gmail draft replying to all participants of a message (original sender plus To/Cc recipients, excluding yourself), staying in the same thread.
gmail_reply_all_draft_with_attachments write popup Create a Gmail draft replying to all participants of a message (original sender plus To/Cc recipients, excluding yourself), staying in the same thread, with one or more local-file attachments.
gmail_reply_draft write popup Create a Gmail draft replying to a single message, staying in the same thread (sets threadId plus In-Reply-To/References so it actually threads, unlike gmail_create_draft).
gmail_reply_draft_with_attachments write popup Create a Gmail draft replying to a single message, staying in the same thread, with one or more local-file attachments.
gmail_update_filter write popup Replace an existing Gmail filter's criteria and actions, identified by filter_id (from gmail_list_filters).

Google Drive (including Sheets and Docs)

Tool Direction Gate What it does
drive_create_blank_file write auto Create a new blank Drive file.
drive_get_file_metadata read auto Fetch metadata for a single Drive file by id (name, owners, times, sharing status).
drive_list_files read auto Search Google Drive and return matching file metadata (id, name, mime_type, owners, sharing status).
drive_list_folder read auto List the direct children of a Drive folder by id.
drive_list_revisions read auto List the saved versions (revision history) of a Drive file by id: when each was saved and by whom.
drive_list_shared_drives read auto List all Google Workspace Shared Drives the user can access (returns id and name for each).
drive_sheets_create write auto Create a new Google Sheets spreadsheet, optionally with named tabs.
drive_sheets_get_metadata read auto List the tabs in a spreadsheet (id, title, index, row/column count).
drive_download_file read review Download a Drive file.
drive_get_file_content read review Fetch the content of a Drive file by id.
drive_get_revision_content read review Fetch the content of one earlier saved version of a Drive file, by file id and revision id.
drive_sheets_get_values read review Read a range of cells from a spreadsheet: display values by default, or the underlying values, or formulas instead of computed results, and optionally cell formatting alongside them.
drive_add_comment write popup Add a comment to a Drive file.
drive_copy_file write popup Copy a Drive file into a folder.
drive_docs_edit_content write popup Replace one occurrence of existing text in a Google Doc with new Markdown, without touching the rest of the document.
drive_docs_format_content write popup Apply formatting (bold, italic, highlight, text color) to existing text in a Google Doc, located the same way as drive_docs_edit_content, without changing the text itself.
drive_move_file write popup Move a Drive file to a different folder.
drive_sheets_add_sheet write popup Add a new tab to an existing spreadsheet.
drive_sheets_delete_dimensions write popup Delete rows or columns from a sheet tab, including any values, formulas, and formatting they contain.
drive_sheets_format_range write popup Apply formatting to a range in a spreadsheet: bold/italic, colors, number format, horizontal/vertical alignment, text wrap, column width, frozen rows/columns, and merged cells.
drive_sheets_insert_dimensions write popup Insert blank rows or columns into a sheet tab, shifting existing content after the insertion point.
drive_sheets_rename_sheet write popup Rename an existing tab in a spreadsheet.
drive_sheets_write_range write popup Write values and/or formulas into a range of an existing spreadsheet.
drive_upload_file write popup Upload any file (e.g. a PDF or image) to Drive as a new file — use this instead of drive_write_file_content for any binary file, since that tool only writes UTF-8 text.
drive_write_doc_content write popup Write Markdown content to a Google Doc with rich formatting.
drive_write_file_content write popup Write content to an existing Drive file.

Google Calendar

Tool Direction Gate What it does
calendar_get_event_visibility read auto Get a calendar event's visibility setting (default, public, private, or confidential) without fetching its full details (attendees, description, etc.) the way calendar_get_event_details does.
calendar_get_free_busy read auto Query colleagues' schedules for a time range.
calendar_list_calendars read auto List all Google Calendars for the authenticated user.
calendar_list_colors read auto List Calendar's fixed event color palette: each color's id, name (e.g. "Tomato", "Sage"), and hex background/foreground.
calendar_list_events read auto List events from a calendar (id, title, start_time, end_time, all_day, status).
calendar_list_rooms read auto List meeting rooms and resource calendars from the organization's room directory.
calendar_get_event_details read review Fetch full details of a calendar event including attendees, description and location.
calendar_create_event write popup Create a new calendar event.
calendar_create_out_of_office write popup Create an out-of-office event on the primary calendar.
calendar_delete_event write popup Delete a calendar event.
calendar_set_event_color write popup Set a calendar event's color.
calendar_set_event_visibility write popup Set a calendar event's visibility.
calendar_set_working_location write popup Set your working-location presence (office or home) for a single day on the primary calendar — the same picker Google Calendar's web UI exposes.
calendar_update_event write popup Update an existing calendar event.

Google Contacts

Tool Direction Gate What it does
contacts_get read auto Fetch a single contact by resource name (e.g. 'people/c12345').
contacts_list read auto List contacts from the user's Google address book.
contacts_search read auto Search contacts by name or email address.
contacts_add_label write popup Add a label to a contact, creating the label if it doesn't already exist.
contacts_create write popup Create a new contact in the user's Google address book.
contacts_remove_label write popup Remove a label from a contact.
contacts_update write popup Update a contact's fields.

Google Tasks

Tool Direction Gate What it does
tasks_get_task read auto Fetch a single task by id.
tasks_list_task_lists read auto List all Google Task lists.
tasks_list_tasks read auto List tasks in a task list.
tasks_complete_task write popup Mark a task as completed.
tasks_create_task write popup Create a new task.
tasks_move_task write popup Move a task from one list to another.
tasks_uncomplete_task write popup Mark a task as not completed.
tasks_update_task write popup Update a task's title, notes, or due date.

Apps Script

Tool Direction Gate What it does
apps_script_list_projects read auto List standalone Google Apps Script projects visible to the user (id, name, last-modified time).
apps_script_get_content read review Fetch the full source of a Google Apps Script project -- every file (.gs/.html) plus the appsscript.json manifest.
apps_script_get_execution_log read review Read the result of the most recent run(s) of a script that the user triggered themselves outside PrivacyFence (status, duration, which function ran) -- not a live console.log transcript.
apps_script_write_content write popup Write new source to a Google Apps Script project.

Slack

Tool Direction Gate What it does
slack_get_read_state read auto Get your own Slack read state for a few specific messages you already have, without reading them again.
slack_list_channels read auto List Slack channels visible to the user (id, name, privacy, topic, purpose, member count).
slack_list_dms read auto List 1:1 direct-message conversations visible to the user (id, other participant).
slack_list_group_chats read auto List group-DM conversations visible to the user (id, name, participants).
slack_refresh_channel_cache read auto Force an immediate refresh of PrivacyFence's local cache of Slack channel/DM/group-DM names, used to resolve which conversation a message belongs to in search results and history/thread reads without a per-message conversations.info call.
slack_refresh_user_cache read auto Force an immediate refresh of PrivacyFence's local cache of Slack workspace member names/emails, used to resolve message authors in channel history, thread replies, and search results without a per-message users.info call.
slack_resolve_permalink read auto Parse a Slack message permalink (from a message's "Copy link") into the channel id, timestamp, and (if the link points at a threaded reply) thread root timestamp needed by slack_get_channel_history/slack_get_thread_replies.
slack_get_channel_history read review Fetch recent messages in a Slack channel.
slack_get_thread_replies read review Fetch all replies in a Slack thread.
slack_search_messages read review Search Slack messages by query, participant, time window, or a combination.
slack_create_group_chat write popup Create (or reopen the existing) group-DM conversation with the given participants and return its channel id, ready for slack_send_message.
slack_send_message write popup Send a message to a Slack channel or DM.

Telegram

Tool Direction Gate What it does
telegram_list_chats read auto List Telegram chats (id, name, type, unread count).
telegram_refresh_chat_cache read auto Force an immediate refresh of PrivacyFence's local cache of Telegram chat/group/channel names, used to resolve which chat a message belongs to in search results and chat history without a per-message lookup.
telegram_get_messages read review Fetch recent messages from a Telegram chat by chat id.
telegram_search_messages read review Search messages across Telegram chats by keyword.
telegram_send_message write popup Send a message to a Telegram chat or user by chat id.

Salesforce

Tool Direction Gate What it does
salesforce_list_reports read auto List Salesforce reports accessible to the user.
salesforce_export_report read review Write every row of a Salesforce report to a CSV or JSON file on the user's computer, in one approval.
salesforce_get_record read review Fetch a Salesforce record by object type and id.
salesforce_run_report read review Run a Salesforce report by id and return the results.
salesforce_search read review Search Salesforce by name or id across one or more object types — the same mechanism as the search bar at the top of the Salesforce UI.
salesforce_create_record write popup Create one new Salesforce record.
salesforce_create_records write popup Create 1 to 200 new records of one Salesforce object type in one approval, all or none: if Salesforce refuses one record, none is created and the error names each refused record by its position.
salesforce_update_record write popup Change fields of one existing Salesforce record, by its id.
salesforce_update_records write popup Change 1 to 200 existing records of one Salesforce object type in one approval, all or none.

Jira

Tool Direction Gate What it does
jira_find_users read auto Find Atlassian users by name or email and return their account ids.
jira_get_transitions read auto List the status transitions available for a Jira issue right now (name and target status), given its current workflow state.
jira_list_fields read auto List the Jira site's fields, built-in and custom, with the id and JQL names behind each display name.
jira_list_projects read auto List Jira projects accessible to the user (key, name, type, lead).
jira_refresh_user_cache read auto Re-fetch the names of every Atlassian account id PrivacyFence has cached.
jira_search_issues read auto Search Jira issues using JQL.
jira_export_issues read review Write every issue a JQL query matches, up to 10,000, to a CSV or JSON file on the user's computer, in one approval.
jira_get_issue read review Fetch full details of a Jira issue by key (e.g. PROJ-123), including description and comments.
jira_search_issues_with_fields read review Search Jira issues using JQL and add extra fields to each one: custom fields such as Story Points or Sprint, or built-in ones such as due date or fix versions.
jira_add_comment write popup Add a comment to an existing Jira issue.
jira_create_issue write popup Create a new Jira issue.
jira_transition_issue write popup Move a Jira issue to a new status by transition name (e.g. "Done", "In Progress") — call jira_get_transitions first to see what's valid from the issue's current status.
jira_update_issue write popup Update fields on an existing Jira issue (summary, description, priority, and/or custom fields).

Confluence

Tool Direction Gate What it does
confluence_cql_search read auto Search Confluence using CQL (Confluence Query Language).
confluence_find_users read auto Find Atlassian users by name or email and return their account ids.
confluence_list_attachments read auto List attachment names, media types, and sizes for a Confluence page.
confluence_list_pages read auto List pages in a Confluence space (title, id, version).
confluence_list_spaces read auto List Confluence spaces the user has access to (key, name, type, description).
confluence_refresh_user_cache read auto Re-fetch the names of every Atlassian account id PrivacyFence has cached.
confluence_search read auto Full-text search across Confluence content.
confluence_download_attachment read review Download a Confluence page attachment's content.
confluence_get_page read review Fetch the full content of a Confluence page by page ID.
confluence_get_page_by_title read review Fetch a Confluence page by space key and exact title.
confluence_create_page write popup Create a new Confluence page in the given space.
confluence_update_page write popup Update the title and/or body of an existing Confluence page.

Jira Assets

Tool Direction Gate What it does
assets_list_attributes read auto List the attribute definitions of one Jira Assets object type, including which attributes reference other object types.
assets_list_object_types read auto List the object types in one Jira Assets schema.
assets_list_schemas read auto List the Jira Assets object schemas on the connected Atlassian site.
assets_export_objects read review Write every Jira Assets object an AQL query matches, up to 10,000, to a CSV or JSON file on the user's computer, in one approval.
assets_get_connected_tickets read review List the Jira tickets connected to one Jira Assets object.
assets_get_object read review Read one Jira Assets object with every attribute value and its outbound references.
assets_get_related_objects read review Read the Jira Assets objects linked to one object, following references outbound, inbound or both, up to three hops.
assets_search_objects read review Search Jira Assets objects with an AQL query and return them with their attribute values.

Grist

Tool Direction Gate What it does
grist_list_documents read auto List the Grist documents this account can open, with their workspace and team.
grist_list_tables read auto List the tables of one Grist document and each table's columns (id, label and type).
grist_export_records read review Write every record of one table of a Grist document, optionally filtered, to a CSV or JSON file on the user's computer, in one approval.
grist_export_sql read review Run one read-only SQL query over a Grist document and write the result to a CSV or JSON file on the user's computer, in one approval.
grist_get_records read review Read records from one table of a Grist document, optionally filtered and sorted.
grist_add_columns write popup Add new columns to an existing table of a Grist document.
grist_add_records write popup Add new records to one table of a Grist document.
grist_create_table write popup Create a new table, with its columns, in a Grist document.
grist_import_csv write popup Add every row of a CSV file as a new record in one table of a Grist document, in one approval.
grist_update_csv write popup Update records of one table of a Grist document from a CSV file, in one approval: each row is matched to the record whose key_column has the same value, and only cells that differ change.
grist_update_records write popup Change cells of existing records in one table of a Grist document.

Peek

Tool Direction Gate What it does
peek_list_pages read auto List the Peek pages this account can manage, newest first, with each page's link and who can open it.
peek_list_versions read auto List the versions of one Peek page you manage, newest first, with each version's size, time and link.
peek_get_comments read review Read the reviewers' comments on one Peek page, with what each comment is anchored to.
peek_get_stats read review Read how often one Peek page was opened, and the names visitors gave.
peek_list_grants read review List who can open one restricted Peek page: the people and Google groups granted access.
peek_add_comment write popup Post a comment on a Peek page under your own Peek account name, on the latest version or the one you give.
peek_delete_page write popup Delete a Peek page, with its comments and visit history.
peek_grant_access write popup Let a person or a Google group open a restricted Peek page.
peek_rename_page write popup Rename a Peek page; its link may change to match the new name, and old links keep redirecting to it in browsers.
peek_revoke_access write popup Remove a person's or a Google group's access to a restricted Peek page.
peek_set_visibility write popup Change who can open a Peek page: anyone with the link, anyone signed in to Peek, or only the people granted access (restricted).
peek_upload_page write popup Publish an HTML page on Peek, or a new version of one of your pages, and get its share link.

Miro

Tool Direction Gate What it does
miro_get_board read auto Get one Miro board's name, team, dates and link.
miro_list_boards read auto List the Miro boards this account can open in the connected Miro team, optionally only those matching a search text.
miro_list_tags read auto List the tags defined on one Miro board.
miro_get_items read review Read specific items of one Miro board by their ids.
miro_list_connectors read review Read the connector lines on one Miro board and the ids of the items each one joins.
miro_list_items read review Read the items on one Miro board, optionally only one type of item or only the items inside one frame.
miro_create_connectors write popup Draw connector lines between existing items on one Miro board, up to 20 in one request.
miro_create_items write popup Add sticky notes, cards, texts, shapes or frames to one Miro board, up to 20 in one request.
miro_update_board write popup Rename a Miro board or change its description.
miro_update_items write popup Change existing items on one Miro board (text, color, position, size, or which frame they are in), up to 20 in one request.