# duplicateSheet

Duplicates a sheet (tab) within a spreadsheet, copying all values, formulas, formatting, validations, and conditional formatting. Use getSpreadsheetInfo to find the numeric sheet ID.

Agent View of the PolicyLayer registry record for `duplicateSheet`. HTML page: https://policylayer.com/tools/a-bonus-google-docs-mcp/duplicatesheet

## Facts

- Tool: `duplicateSheet`
- Server: Claude MCP x Google Docs (`a-bonus/google-docs-mcp`) — https://policylayer.com/tools/a-bonus-google-docs-mcp.md
- Homepage: https://github.com/a-bonus/google-docs-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "duplicateSheet",
    "arguments": {}
  }
}
```

## Why duplicateSheet is rated Medium

The tool creates and modifies data (a new sheet tab) but does not delete or permanently destroy anything. While it has side effects that affect the spreadsheet structure, it is reversible—the duplicated sheet can be deleted. This makes it Write rather than Destructive.

From the tool's own definition: "duplicateSheet copies a sheet within a spreadsheet, creating a new instance of an existing sheet with all its values, formulas, formatting, validations, and conditional formatting."

## Use case

AI agents use duplicateSheet to create or update resources in Claude MCP x Google Docs, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Claude MCP x Google Docs environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Claude MCP x Google Docs:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "duplicateSheet": {
      "limits": [
        {
          "counter": "duplicatesheet_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Claude MCP x Google Docs (83)

- `clearRange` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/clearrange.md
- `deleteChart` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/deletechart.md
- `deleteConditionalFormatting` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/deleteconditionalformatting.md
- `deleteDraft` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/deletedraft.md
- `deleteEvent` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/deleteevent.md
- `deleteFile` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/deletefile.md
- `deleteSheet` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/deletesheet.md
- `deleteSheetsComment` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/deletesheetscomment.md
- `deleteTable` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/deletetable.md
- `trashMessage` — Destructive — https://policylayer.com/tools/a-bonus-google-docs-mcp/trashmessage.md
- `createAppsScriptProject` — Execute — https://policylayer.com/tools/a-bonus-google-docs-mcp/createappsscriptproject.md
- `sendEmail` — Execute — https://policylayer.com/tools/a-bonus-google-docs-mcp/sendemail.md
- `downloadFile` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/downloadfile.md
- `getAppsScriptContent` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/getappsscriptcontent.md
- `getConditionalFormatting` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/getconditionalformatting.md
- `getDocumentInfo` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/getdocumentinfo.md
- `getDraft` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/getdraft.md
- `getFolderInfo` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/getfolderinfo.md
- `getMessage` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/getmessage.md
- `getSheetsComment` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/getsheetscomment.md
- `getSpreadsheetInfo` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/getspreadsheetinfo.md
- `getTable` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/gettable.md
- `listDocuments` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/listdocuments.md
- `listDrafts` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/listdrafts.md
- `listDriveFiles` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/listdrivefiles.md
- `listEvents` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/listevents.md
- `listFolderContents` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/listfoldercontents.md
- `listLabels` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/listlabels.md
- `listMessages` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/listmessages.md
- `listSheetsComments` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/listsheetscomments.md
- …and 53 more: https://policylayer.com/tools/a-bonus-google-docs-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=a-bonus-google-docs-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/a-bonus-google-docs-mcp
