# createAppsScriptProject

Creates an Apps Script project, optionally bound to a Doc, Sheet, Slides or Form so its triggers and custom menus run inside that file. Optionally writes the initial files in the same call. Requires the Apps Script API to be enabled at https://script.google.com/home/usersettings.

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

## Facts

- Tool: `createAppsScriptProject`
- 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: Execute (High 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": "createAppsScriptProject",
    "arguments": {}
  }
}
```

## Why createAppsScriptProject is rated High

Creates executable script projects that can run code inside Google Workspace files.

From the tool's own definition: "Creates an Apps Script project...triggers and custom menus run inside that file"

## Use case

AI agents invoke createAppsScriptProject to trigger actions in Claude MCP x Google Docs. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## 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": {
    "createAppsScriptProject": {
      "limits": [
        {
          "counter": "createappsscriptproject_rate",
          "window": "minute",
          "max": 10,
          "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
- `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
- `listSpreadsheets` — Read — https://policylayer.com/tools/a-bonus-google-docs-mcp/listspreadsheets.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
