sharewatch

AI agents get the files you choose.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Access File By Url: When a user shares a Google Drive URL or asks you to access a specific file, use this tool. Accepts any Google Drive, Docs, Sheets or Slides URL and resolves it against the Google
  • Add Sheet Tab: Add a new tab to an existing Google Sheet. Use this when you need an additional sheet after creation. Returns the new tab's sheetId.
  • Block File: Block MCP access to a file. Use when a user says they shared a file by mistake or wants an agent's access stopped. Blocking gates access; it does not un-share the file, so the name and ID

What data it sees

Do you need an account

No: the server works without sign-in

AI agents get the files you choose. You get the audit trail.

ShareWatch is a hosted MCP server for Google Docs, Sheets, and Slides, built on least-privilege access: the agent only ever holds Google's per-file drive.file grant — never full-Drive access. Your agent works with exactly the files a human selected, and every action it takes lands in an audit trail.

Why it's different:

  • Least privilege by architecture — the agent can't touch a file nobody granted. Enforced at the API layer, not by prompt instructions. (A prompt is guidance; an access boundary is enforcement.)
  • Paranoia-level audit logging — 80+ event types with client attribution: which agent, which tool call, which bytes, when. Denials are logged too.
  • Zero content retention — document content passes through; nothing is cached or stored server-side.
  • Org-grade controls — deny-wins policies, per-file blocking, DLP content scanning (Google Cloud DLP, with fail-closed strict mode), SAML/OIDC SSO, real-time SIEM export (Splunk HEC + HMAC-signed webhooks).
  • Vetted three times — approved by Google Workspace Marketplace review, Anthropic's connector directory, and OpenAI's app review.

25 tools covering Docs/Sheets/Slides read, create, and update, file search, folders, format conversion, presentation building, access requests, file blocking, and status.

Quick start: add https://sharewatch.ai/mcp as a remote MCP server (Streamable HTTP, OAuth sign-in). Pick your files, start working. Free for individuals.

Docs · Security & DPA · How the audit trail looks

Server tool list (25)

Raw names from tools/list. Only developers need these.

access_file_by_urlWhen a user shares a Google Drive URL or asks you to access a specific file, use this tool. Accepts any Google Drive, Docs, Sheets or Slides URL and resolves it against the Google Drive API (https://developers.google.com/drive/api/reference/rest/v3). If the file is already accessible, returns its content. If not, returns a grant link the user can open to select it. If the user mentions the file's name, pass it as file_name_hint so the picker can search for it.
add_sheet_tabAdd a new tab to an existing Google Sheet. Use this when you need an additional sheet after creation. Returns the new tab's sheetId.
block_fileBlock MCP access to a file. Use when a user says they shared a file by mistake or wants an agent's access stopped. Blocking gates access; it does not un-share the file, so the name and ID can still appear in listings. There is no unblock tool — the user restores access from the ShareWatch dashboard, so tell them that before blocking.
build_presentationCreate a Google Slides deck from a structured outline. Unlike create_presentation, which takes raw slides, this one applies Google's own layouts, so it suits decks meant to look designed. Pick a layout per slide and fill only the slots that layout provides; Google positions everything via placeholders (no manual geometry). Layouts are Google's own PredefinedLayout names, so they match the Slides API you already know. Layout → slots: TITLE = title + subtitle (opening slide); SECTION_HEADER = title only (a divider — no subtitle); TITLE_AND_BODY = title + bullets OR body; TITLE_AND_TWO_COLUMNS = title + body/bullets (LEFT) + body_right/bullets_right (RIGHT) — fill both sides or the empty one shows as a blank box when edited; MAIN_POINT / BIG_NUMBER / TITLE_ONLY = title only; BLANK = nothing. Set bullets for lists (it wins over body when both are given); keep each slide to one idea. Workflow: build, then call describe_slides to catch dropped content / overflow / overlap, then preview_slides for a final visual check.
convert_to_google_formatConvert an Office or PDF file to the matching Google-native format: .pptx → Google Slides, .xlsx/.csv → Google Sheets, .docx/.pdf → Google Docs. Creates a new file — the original is unchanged. ALWAYS ask the user before converting.
create_documentCreate a new Google Doc in the user's Drive. The content is inserted as plain text — Markdown is NOT rendered, so headings and bold written here arrive as literal ** and # characters. To produce a formatted document, create it and then call format_document, which converts Markdown into real Google Docs styling.
create_folderCreate a folder in Google Drive. Use this to organize files. The folder can be set as the default location for new files.
create_presentationCreate a new Google Slides presentation with optional slides.
create_spreadsheetCreate a new Google Sheet. Pass sheet_names_json to create multiple tabs at once (data_json writes to the first tab).
delete_filePermanently delete a file from Google Drive. ALWAYS confirm with the user before deleting — this cannot be undone.
describe_slidesInspect the layout of every slide without rendering images. Returns a geometry-level readback — each element's position, size and text, plus flags for content that overflows the slide bounds, overlaps another element, or uses a sub-legible font. Cheap (no image render) — use it to catch mechanical layout problems while editing; use preview_slides for the final visual pass.
format_documentWrite markdown content into a Google Doc with full formatting — headings, bold, italic, bullets, numbered lists, links, and horizontal rules. Use this instead of create_document or update_document when the content has structure that should be visually formatted. Pass file_id to replace an existing doc's content, or omit to create a new doc.
get_statusReport this user's ShareWatch setup status: the authenticated user's email, workspace connection status, default folder, org membership, and available actions. Setup problems surface here as a clear status, whereas they surface in other tools as unrelated-looking failures. When multiple ShareWatch connectors are configured, this identifies which Google account this connector is authenticated as.
list_filesList the Google Workspace files ShareWatch can see. This is not the user's Drive — it is only what was created through ShareWatch plus what the user has explicitly shared with it, so a short list means a narrow grant and an empty one does not mean an empty Drive. Never tell the user a file does not exist on this basis; a file you cannot see here may still be there. Returns file IDs, names, types, URLs, and each file's parent folder — folders appear as entries too, so parent_folder_id is what tells you which files live inside which folder.
move_fileMove a file into a different folder. Both the file and destination folder must be accessible to ShareWatch.
preview_slidesGet thumbnail images for all slides in a Google Slides presentation. Returns rendered PNG images of each slide. Use this for a final visual check of layout and formatting.
read_fileRead the text content of a Google Doc, Sheet, or Slides presentation. Docs export as plain text, Sheets as CSV, Slides as plain text. For large files, returns a size warning instead of content — use max_chars and offset to read in chunks. file_id also accepts a ShareWatch handoff code of the form SW-XXXXXXXX. The user gets one by opening a file from Google Drive with ShareWatch, and it stands for that file until it goes unused for 30 days. The result always reports the real file_id, so use that value for any follow-up call rather than the code.
report_bugTell the ShareWatch developers what this server got wrong. Use it for outright bugs — an unexpected error, a wrong result — and equally for friction: a confusing parameter, an unhelpful error message, a task that took three calls when it should have taken one. Your assessment of the API is the point; it is the only way its designers learn how it behaves in practice. The report is written to the user's own audit log, visible to them and to their workspace administrators, and to ShareWatch's operational logs. Write about the tool, never about the user's documents or conversation.
request_file_accessWhen a user wants you to access a file that isn't in the file list, call this tool. It returns a URL the user can open to select and grant access to files from their Google Drive.
search_filesSearch for files by name, text content, type, or date range. Use this instead of list_files when the user has many files or is looking for something specific. Use content when the user remembers what a file says but not what it is called. All parameters are optional — combine them to narrow results.
set_file_read_onlyMark a file as read-only or read-write. Read-only files can be read but not updated through ShareWatch. This is enforced at the proxy layer regardless of Google Drive permissions.
update_documentUpdate an existing Google Doc. Supports replacing all content or appending to it. The result reports the mode that was actually applied and how many characters were written, so you can confirm a replace was a replace.
update_presentationModify an existing Google Slides presentation. Structured operations (operations_json): add_slide, insert_text, delete_text, delete_slide, replace_text, update_text_style, update_page_bg. Google's own spellings are accepted where the operation is identical — replace_all_text and create_slide both work. An unrecognised type, or one missing a required field, is REJECTED with a message naming the operation; nothing is silently skipped. Examples: - delete_text: {"type":"delete_text","element_id":"id"} - replace_text: {"type":"replace_text","old_text":"foo","new_text":"bar"} - update_text_style: {"type":"update_text_style","element_id":"id","bold":true,"font_size":24,"color":"#1a56db"} - update_page_bg: {"type":"update_page_bg","slide_id":"id","bg_color":"#1a1a2e"} Raw mode (raw_requests): Pass a Google Slides API BatchUpdatePresentationRequest body directly for full API access. Request shapes are documented at https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
update_spreadsheetWrite data to a range in an existing Google Sheet. The range must reference a tab that already exists (e.g. 'Overview!A1' requires an 'Overview' tab). Errors with 'Unable to parse range' if the tab name is unknown — call add_sheet_tab first to create new tabs. Values are stored EXACTLY AS GIVEN by default, so '=B1+B2' is saved as text and does not calculate; pass value_input_option='USER_ENTERED' to write real formulas. The result carries formula_notice when cells starting with '=' were stored as text.
upload_fileUpload a binary file (xlsx, pdf, docx, png, etc.) to Drive from base64-encoded content. Use this when you have file bytes from the conversation (e.g. an attached spreadsheet) and need to put them in the user's Drive. Set convert=true to have Drive convert Office formats to native Google formats during upload. Maximum 20MB decoded.