Sage MCP

359 tools. 107 can modify or destroy data without limits.

19 destructive tools with no built-in limits. Policy required.

Last updated:

107 can modify or destroy data
252 read-only
359 tools total

Community server · catalogue entry verified 11/06/2026

How to control Sage MCP ↓

Read (252) Write / Execute (88) Destructive / Financial (19)
Critical Risk

107 of Sage MCP's 359 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

PolicyLayer is an MCP gateway — it sits between your AI agents and Sage MCP, and nothing reaches the server without passing your rules. These are the rules we recommend:

Block financial tools by default
{
  "copilot_add_seats": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Requires human approval."
      }
    ]
  }
}

Financial tools should be explicitly enabled per use case, not open by default.

Deny destructive operations
{
  "claude_code_delete_invite": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "gmail_untrash_message": {
    "limits": [
      {
        "counter": "gmail_untrash_message_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "bitbucket_get_diff": {
    "limits": [
      {
        "counter": "bitbucket_get_diff_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register Sage MCP — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON SAGE →

Free to start. No card required.

WRITE 85 tools
Write gmail_untrash_message Remove a message from the trash Write excel_append_rows Append rows to an existing table in a workbook. Values are a 2D array of row data. Write gmail_forward_message Forward an existing email message to a new recipient Write gmail_reply_to_message Reply to an existing email message, preserving the thread Write google_docs_append_text Append text to the end of a Google Doc Write google_docs_create_document Create a new Google Doc with optional initial content Write google_docs_insert_text Insert text at a specific position in a Google Doc Write google_sheets_append_rows Append rows of data after the last row with content in a Google Sheets spreadsheet Write google_sheets_find_and_replace Find and replace text across a spreadsheet or within a specific sheet Write google_sheets_format_range Apply formatting to a range of cells (bold, italic, font size, background color, text color). Colors use RGB f Write google_slides_duplicate_slide Duplicate an existing slide in the presentation Write notion_append_block_children Append blocks (content) to a page Write outlook_flag_message Flag, unflag, or mark a message as complete. Flagged messages appear in the flagged email view. Write outlook_forward_message Forward an email message to one or more recipients with an optional comment. Write outlook_reply_to_message Reply to an email message. Can reply to sender only or reply all. Write teams_reply_to_message Reply to a specific message in a channel Write bitbucket_add_pr_comment Add a comment to a pull request Write bitbucket_create_issue Create a new issue in a Bitbucket repository (requires issue tracker to be enabled) Write bitbucket_create_pull_request Create a new pull request in a Bitbucket repository Write claude_code_add_workspace_member Add a member to a workspace Write claude_code_create_invite Invite a user to the organization Write claude_code_create_workspace Create a new workspace in the organization Write claude_code_update_api_key Update an API key Write claude_code_update_user_role Update a user Write codex_create_invite Invite a new user to the organization by email Write codex_create_project Create a new project in the organization Write codex_modify_user Modify a user Write confluence_add_comment Add a footer comment to a Confluence page. Body must be in Atlassian Storage Format. Write confluence_add_label Add a label to a Confluence page Write confluence_create_page Create a new page in a Confluence space. Body must be in Atlassian Storage Format (XHTML). Write confluence_update_page Update an existing Confluence page. Requires current version number (will be auto-incremented). Write discord_add_reaction Add a reaction emoji to a message Write discord_create_thread Create a new thread from an existing message Write discord_edit_message Edit an existing message in a channel Write discord_send_message Send a message to a channel Write excel_add_worksheet Add a new worksheet (tab) to an existing workbook Write excel_create_table Create a table in a worksheet from a cell range. The range defines the table boundaries including headers. Write excel_create_workbook Create a new empty Excel workbook (.xlsx) in the user Write excel_write_range Write values to a cell range in a worksheet. Values are a 2D array where each inner array is a row. Write github_create_issue Create a new issue in a repository Write github_update_issue Update an existing issue Write gitlab_add_mr_note Add a note (comment) to a merge request Write gitlab_create_issue Create a new issue in a project Write gitlab_create_merge_request Create a new merge request Write gitlab_update_issue Update an existing issue Write gmail_create_draft Create a draft email message Write gmail_create_label Create a new label in the user Write gmail_modify_labels Add or remove labels from a specific message Write gmail_send_message Send a new email message Write google_sheets_add_sheet Add a new sheet (tab) to an existing Google Sheets spreadsheet Write google_sheets_batch_update Execute one or more batch update requests on a spreadsheet. Supports any Sheets API batchUpdate request type ( Write google_sheets_create_spreadsheet Create a new Google Sheets spreadsheet with optional sheet names Write google_sheets_write_range Write values to a range of cells in a Google Sheets spreadsheet. Values are provided as a 2D array (list of ro Write google_slides_add_slide Add a new slide to a presentation at an optional position with a layout Write google_slides_add_text Insert text into a shape (text box) on a slide by its object ID Write google_slides_create_presentation Create a new Google Slides presentation with a title Write google_slides_replace_text Find and replace all occurrences of text across the entire presentation Write google_slides_update_speaker_notes Update the speaker notes for a specific slide Write jira_add_comment Add a comment to an issue Write jira_assign_issue Assign an issue to a user Write jira_create_issue Create a new Jira issue Write jira_transition_issue Transition an issue through workflow (e.g., move to Write jira_update_issue Update an existing Jira issue Write linear_add_comment Add a comment to a Linear issue Write linear_archive_issue Archive a Linear issue Write linear_create_issue Create a new Linear issue Write linear_create_project Create a new Linear project Write linear_update_issue Update an existing Linear issue Write notion_create_page Create a new page in a Notion database or as a child of another page Write notion_update_page Update a page Write outlook_create_draft Create a draft email message that can be edited and sent later. Write outlook_create_folder Create a new mail folder. Can create top-level folders or child folders within an existing folder. Write outlook_move_message Move an email message to a different mail folder. Write outlook_send_message Send a new email message. Supports HTML and text body content, with CC and BCC recipients. Write powerpoint_copy_presentation Copy a PowerPoint presentation to a new file, optionally in a different folder. Write powerpoint_create_presentation Create a new empty PowerPoint presentation on OneDrive. The filename should end with .pptx. Write powerpoint_move_presentation Move a PowerPoint presentation to a different OneDrive folder. Write powerpoint_upload_presentation Get the upload URL for updating an existing PowerPoint file. Binary file upload is not practical via MCP tool Write slack_conversations_add_message Post a message to a channel, private channel, or direct message Write slack_reactions_add Add an emoji reaction to a message Write teams_send_channel_message Send a message to a channel in a team Write teams_send_chat_message Send a message in a chat Write windsurf_set_usage_config Update Windsurf/Codeium usage configuration settings for the team Write zoom_create_meeting Create a new scheduled meeting Write zoom_update_meeting Update an existing meeting
READ 252 tools
Read bitbucket_get_diff Get the diff of a pull request Read bitbucket_get_file Get the content of a file from a Bitbucket repository Read bitbucket_get_issue Get details of a specific issue Read bitbucket_get_pipeline Get details of a specific pipeline run Read bitbucket_get_pull_request Get details of a specific pull request Read bitbucket_get_repository Get detailed information about a Bitbucket repository Read bitbucket_list_branches List branches for a Bitbucket repository Read bitbucket_list_commits List commits for a Bitbucket repository Read bitbucket_list_issues List issues for a Bitbucket repository (requires issue tracker to be enabled) Read bitbucket_list_pipelines List pipelines for a Bitbucket repository Read bitbucket_list_pr_comments List comments on a pull request Read bitbucket_list_pull_requests List pull requests for a Bitbucket repository Read bitbucket_list_repositories List repositories in a Bitbucket workspace Read bitbucket_list_workspace_members List members of a Bitbucket workspace Read bitbucket_list_workspaces List workspaces the authenticated user belongs to Read claude_code_get_code_analytics Get Claude Code specific analytics for the organization Read claude_code_get_cost_breakdown Get cost breakdown data for the Anthropic organization Read claude_code_get_normalized_metrics Get normalized CodingToolMetrics by aggregating usage, cost, and code analytics data for cross-tool comparison Read claude_code_get_org_info Get information about the current Anthropic organization Read claude_code_get_usage Get message usage data for the Anthropic organization Read claude_code_get_workspace Get details of a specific workspace Read claude_code_list_api_keys List API keys for the organization Read claude_code_list_invites List pending invitations for the organization Read claude_code_list_users List users in the Anthropic organization Read claude_code_list_workspace_members List members of a specific workspace Read claude_code_list_workspaces List workspaces in the organization Read codex_get_code_interpreter_usage Get Code Interpreter session usage data for the organization Read codex_get_completions_usage Get completions usage data for the organization, broken down by time buckets and optional grouping dimensions Read codex_get_cost_breakdown Get cost data for the organization, broken down by time buckets and optional grouping dimensions Read codex_get_embeddings_usage Get embeddings usage data for the organization, broken down by time buckets and optional grouping dimensions Read codex_get_normalized_metrics Get normalized CodingToolMetrics for cross-tool comparison. Combines completions usage and cost data into a st Read codex_get_project Get details of a specific project Read codex_list_audit_events List audit log events for the organization, with optional filters Read codex_list_invites List pending invitations in the organization Read codex_list_project_api_keys List API keys associated with a project Read codex_list_projects List all projects in the organization Read codex_list_service_accounts List service accounts for a project Read codex_list_users List all users in the organization Read confluence_get_page Get a Confluence page by ID, including its body content in storage format Read confluence_get_page_children Get child pages of a Confluence page Read confluence_get_page_history Get version history of a Confluence page Read confluence_get_page_labels Get labels on a Confluence page Read confluence_get_space Get detailed information about a Confluence space by its ID Read confluence_list_page_attachments List attachments on a Confluence page Read confluence_list_page_comments Get footer comments on a Confluence page Read confluence_list_pages List pages in Confluence, optionally filtered by space Read confluence_list_spaces List Confluence spaces Read confluence_search_content Search Confluence content using CQL (Confluence Query Language). Example: type=page AND space.key=DEV AND text Read copilot_get_acceptance_rate Compute the suggestion acceptance rate from daily org usage data Read copilot_get_billing_info Get Copilot billing information and seat summary for an organization Read copilot_get_chat_usage Get Copilot Chat usage metrics for an organization Read copilot_get_content_exclusions Get Copilot content exclusion rules for an organization Read copilot_get_legacy_metrics Get legacy Copilot metrics (deprecated endpoint, use org usage for new integrations) Read copilot_get_normalized_metrics Get normalized CodingToolMetrics for cross-tool comparison Read copilot_get_org_config Get Copilot feature policies and configuration for an organization Read copilot_get_org_usage Get daily Copilot usage metrics for an organization (1-day granularity) Read copilot_get_pr_summary_usage Get Copilot pull request summary usage metrics Read copilot_get_seat_details Get Copilot seat details for a specific organization member Read copilot_get_usage_by_editor Break down Copilot usage by editor/IDE Read copilot_get_usage_by_language Break down Copilot usage by programming language Read copilot_get_usage_trends Get 28-day rolling usage trends for an organization Read copilot_get_user_usage Get per-user daily Copilot usage metrics for an organization Read copilot_list_audit_events List Copilot-related audit log events for an organization Read copilot_list_inactive_seats List Copilot seats inactive for a given number of days Read copilot_list_seat_assignments List all Copilot seat assignments for an organization Read cursor_get_agent_edits Get team agent edit analytics for a date range Read cursor_get_client_versions Get client version distribution for the team over a date range Read cursor_get_commands_adoption Get commands adoption analytics for a date range Read cursor_get_daily_active_users Get daily active user counts for a date range Read cursor_get_daily_usage_data Get detailed daily usage data for a date range Read cursor_get_leaderboard Get team usage leaderboard for a date range Read cursor_get_mcp_adoption Get MCP (Model Context Protocol) adoption analytics for a date range Read cursor_get_model_usage Get model usage breakdown for a date range Read cursor_get_normalized_metrics Get normalized CodingToolMetrics for cross-tool comparison (DAU, spending, members) Read cursor_get_repo_blocklists Get the list of blocked repositories for the team Read cursor_get_spending Get team spending breakdown for a date range Read cursor_get_tab_usage Get team tab/autocomplete usage analytics for a date range Read cursor_get_top_file_extensions Get top file extensions used by the team for a date range Read cursor_get_usage_events Get filtered usage events for specific users and event types Read cursor_list_audit_events List audit log events with optional pagination Read cursor_list_members List all members of the Cursor team Read discord_get_channel Get detailed information about a specific channel Read discord_get_guild Get detailed information about a specific guild (server) by ID Read discord_get_user Get information about the current authenticated user Read discord_list_channels List all channels in a guild Read discord_list_guild_members List members of a guild Read discord_list_guilds List guilds (servers) the bot/user is a member of Read discord_list_messages List recent messages in a channel Read discord_list_roles List all roles in a guild Read discord_list_threads List all active threads in a guild Read discord_search_messages Search messages in a guild by content Read excel_get_used_range Get the used range (bounding rectangle of all cells with data) for a worksheet Read excel_get_workbook Get metadata for an Excel workbook (name, size, last modified, web URL) by its drive item ID Read excel_list_tables List all tables in an Excel workbook Read excel_list_workbooks List Excel workbooks (.xlsx) from the user Read excel_list_worksheets List all worksheets (tabs) in an Excel workbook Read excel_read_range Read values from a cell range in a worksheet using A1 notation (e.g., Read github_check_token_scopes Check the current OAuth token Read github_compare_commits Compare two commits or branches to see differences Read github_get_branch Get detailed information about a specific branch Read github_get_commit Get details of a specific commit including files changed, stats, and diff Read github_get_file_content Get the content of a file from a repository Read github_get_issue Get details of a specific issue Read github_get_release Get details of a specific release Read github_get_repo_stats Get detailed statistics about a repository (languages, activity, etc.) Read github_get_repository Get detailed information about a repository Read github_get_user_activity Get user Read github_get_user_info Get information about a specific GitHub user Read github_get_user_stats Get statistics about a user Read github_get_workflow_run Get details of a specific workflow run Read github_list_branches List branches for a repository Read github_list_commits List commits for a repository or branch Read github_list_contributors List contributors to a repository with contribution stats Read github_list_issues List issues for a repository Read github_list_organizations List organizations the user belongs to Read github_list_pull_requests List pull requests for a repository Read github_list_releases List releases for a repository Read github_list_repositories List repositories for the authenticated user Read github_list_workflow_runs List workflow runs for a repository or specific workflow Read github_list_workflows List GitHub Actions workflows for a repository Read github_search_issues Search for issues and pull requests across all accessible repositories using GitHub Read github_search_repositories Search for repositories Read github_search_users_by_email Search for GitHub users by email address. Only matches users who have set their email as public on GitHub. Read gitlab_get_file Get the content of a file from a repository Read gitlab_get_issue Get details of a specific issue Read gitlab_get_merge_request Get details of a specific merge request Read gitlab_get_pipeline Get details of a specific pipeline Read gitlab_get_project Get detailed information about a project Read gitlab_get_repository_tree Get the repository file/directory tree Read gitlab_list_branches List repository branches Read gitlab_list_commits List repository commits Read gitlab_list_groups List groups accessible to the authenticated user Read gitlab_list_issues List issues for a project Read gitlab_list_labels List labels for a project Read gitlab_list_merge_requests List merge requests for a project Read gitlab_list_milestones List milestones for a project Read gitlab_list_mr_discussions List discussions (comment threads) on a merge request Read gitlab_list_pipelines List pipelines for a project Read gitlab_list_project_members List members of a project Read gitlab_list_projects List projects accessible to the authenticated user Read gitlab_search_users Search GitLab users by email or username. For non-admin tokens, only matches public emails. Read gmail_get_message Get a specific message by ID with full content including headers and body Read gmail_get_thread Get a specific email thread by ID with all messages Read gmail_list_drafts List draft messages in the user Read gmail_list_labels List all labels in the user Read gmail_list_messages List messages in the user Read gmail_list_threads List email threads in the user Read gmail_search_messages Search messages using Gmail search syntax (e.g., Read google_docs_export_document Export a Google Doc in various formats (PDF, TXT, HTML, DOCX) Read google_docs_get_document Get detailed metadata about a specific Google Doc Read google_docs_get_permissions Get sharing permissions for a Google Doc Read google_docs_list_documents List Google Docs documents accessible to the user. Use owner_email to find docs owned by a specific person. Read google_docs_list_shared_documents List Google Docs that have been shared with the user Read google_docs_read_document_content Read the full content of a Google Doc as structured text Read google_docs_search_documents Search for Google Docs by title or content. Use owner_email to find docs owned by a specific person. Read google_sheets_get_sheet_metadata Get metadata for all sheets (tabs) in a spreadsheet, including sheet IDs, titles, row/column counts, and froze Read google_sheets_get_spreadsheet Get detailed metadata about a specific Google Sheets spreadsheet including sheet names, row/column counts, and Read google_sheets_list_spreadsheets List Google Sheets spreadsheets accessible to the user. Use owner_email to find sheets owned by a specific per Read google_sheets_read_range Read values from a range of cells in a Google Sheets spreadsheet using A1 notation (e.g., Read google_sheets_search_spreadsheets Search for Google Sheets spreadsheets by name. Use owner_email to filter by owner. Read google_slides_get_presentation Get detailed metadata and structure of a Google Slides presentation Read google_slides_get_slide Get details of a specific slide by its 0-based index in the presentation Read google_slides_get_speaker_notes Get the speaker notes for a specific slide by its 0-based index Read google_slides_list_presentations List Google Slides presentations accessible to the user Read jira_get_board Get detailed information about a board Read jira_get_comments Get all comments for an issue Read jira_get_current_user Get information about the currently authenticated user Read jira_get_issue Get detailed information about a specific Jira issue Read jira_get_project Get detailed information about a project Read jira_get_sprint Get detailed information about a sprint Read jira_get_sprint_issues Get all issues in a sprint Read jira_get_transitions Get available workflow transitions for an issue Read jira_get_version Get detailed information about a version/release Read jira_list_boards List all Jira boards Read jira_list_projects List all accessible Jira projects Read jira_list_sprints List sprints for a board Read jira_list_versions List versions/releases for a project Read jira_search_issues Search for Jira issues using JQL (Jira Query Language) Read jira_search_users Search for Jira users Read linear_get_cycle Get a Linear cycle by ID Read linear_get_issue Get a Linear issue by ID Read linear_get_project Get a Linear project by ID Read linear_get_team Get a Linear team by ID with members Read linear_get_user_by_email Look up a Linear organization member by their email address Read linear_list_comments List comments on a Linear issue Read linear_list_cycles List cycles for a Linear team Read linear_list_issues List Linear issues with optional team, project, and state filters Read linear_list_labels List all issue labels in the Linear organization Read linear_list_projects List Linear projects, optionally filtered by team Read linear_list_teams List all Linear teams in the organization Read linear_list_users List users in the Linear organization Read linear_list_workflow_states List workflow states for a Linear team Read linear_search_issues Search Linear issues by text query Read notion_get_block Get a specific block by ID Read notion_get_database Get a Notion database by ID Read notion_get_page Get a Notion page by ID Read notion_get_page_content Get the content blocks of a Notion page Read notion_list_databases List all Notion databases accessible to the integration Read notion_query_database Query a Notion database to retrieve pages/entries Read notion_search Search for pages and databases by title Read outlook_get_attachment Get metadata and content for a specific attachment on an email message. Read outlook_get_message Get a specific email message by its ID, including full body content and metadata. Read outlook_list_attachments List all attachments on a specific email message, including file names, sizes, and content types. Read outlook_list_focused_inbox List messages from the Focused Inbox. Returns only messages classified as Read outlook_list_folders List all mail folders in the user Read outlook_list_messages List messages from inbox or a specific mail folder. Supports OData query parameters for filtering, sorting, an Read outlook_search_messages Search email messages using Microsoft Graph $search query syntax. Searches across subject, body, and other fie Read powerpoint_get_presentation Get metadata for a specific PowerPoint presentation (file size, created/modified dates, download URL, etc.) Read powerpoint_get_slide_content Get a preview/embed URL for a PowerPoint presentation. Useful for inspecting slide content without downloading Read powerpoint_list_presentations List PowerPoint (.pptx) files from the user Read powerpoint_list_slides List slide thumbnails for a PowerPoint presentation. Returns thumbnail URLs and dimensions for each slide. Read slack_auth_test Check authentication and get workspace/user information Read slack_conversations_history Get messages from a channel or direct message by channel_id Read slack_conversations_info Get information about a specific channel Read slack_conversations_list List channels available in the workspace Read slack_conversations_replies Get a thread of messages posted to a conversation by channel_id and thread_ts Read slack_conversations_search_messages Search messages in channels, threads, and DMs using various filters Read slack_users_info Get information about a specific user Read slack_users_list List all users in the workspace Read slack_users_lookup_by_email Look up a Slack user by their email address. Requires the users:read.email scope. Read teams_get_channel Get details of a specific channel in a team Read teams_get_channel_message Get a specific message in a channel Read teams_get_team Get details of a specific team Read teams_get_user_by_email Look up a Microsoft 365 user by email address using Microsoft Graph Read teams_list_channel_members List members of a specific channel in a team Read teams_list_channel_messages List messages in a channel. Returns the most recent messages. Read teams_list_channels List channels in a team Read teams_list_chat_messages List messages in a chat Read teams_list_chats List chats the authenticated user is part of Read teams_list_team_members List members of a team Read teams_list_teams List teams the authenticated user is a member of Read teams_search_messages Search across messages in the user Read windsurf_get_analytics Get team-wide analytics for Windsurf/Codeium usage over a date range Read windsurf_get_cascade_analytics Get Cascade (AI agent) usage analytics over a date range Read windsurf_get_credit_balance Get the team Read windsurf_get_normalized_metrics Get normalized CodingToolMetrics for cross-tool comparison. Read windsurf_get_seat_info Get team seat allocation info (stub -- API not publicly available, Read windsurf_get_spending_breakdown Get detailed spending breakdown (stub -- API not publicly available, Read windsurf_get_usage_config Get the current Windsurf/Codeium usage configuration for the team Read windsurf_get_user_analytics Get per-user analytics for a specific team member over a date range Read windsurf_list_audit_events List audit events (stub -- API not publicly available, Read windsurf_list_members List team members (stub -- API not publicly available, Read zoom_get_meeting Get details of a specific meeting by ID Read zoom_get_meeting_invitation Get the meeting invitation text/HTML Read zoom_get_meeting_recordings Get all recordings for a specific meeting Read zoom_get_user Get user profile information Read zoom_get_webinar Get details of a specific webinar by ID Read zoom_list_meeting_participants Get participants for a past meeting instance Read zoom_list_meetings List all scheduled meetings for the authenticated user Read zoom_list_recordings List cloud recordings for the authenticated user Read zoom_list_webinars List all webinars for the authenticated user Read powerpoint_export_pdf Export a PowerPoint presentation as a PDF. Returns the PDF download URL or content metadata.

Other MCP servers with similar tools — same risk classification, starter policies for each.

Can an AI agent move money through the Sage MCP server? +

Yes. The Sage MCP server exposes 2 financial tools including copilot_add_seats, cursor_set_user_spend_limit. Without a policy, an autonomous agent can call these with no spend caps, no rate limits, and no approval flow. PolicyLayer lets you block financial tools by default, require human approval, or set per-tool rate limits — enforced on every call.

Can an AI agent delete data through the Sage MCP server? +

Yes. The Sage MCP server exposes 17 destructive tools including claude_code_delete_invite, claude_code_remove_user, codex_delete_user. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through Sage MCP? +

The Sage MCP server has 85 write tools including gmail_untrash_message, excel_append_rows, gmail_forward_message. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach Sage MCP.

How many tools does the Sage MCP server expose? +

359 tools across 4 categories: Destructive, Execute, Read, Write. 252 are read-only. 107 can modify, create, or delete data.

How do I enforce a policy on Sage MCP? +

Register the Sage MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every Sage MCP tool call.

Deterministic rules across all 359 Sage MCP tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

359 Sage MCP tools catalogued and risk-classified — across an index of 42,500+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.