Skip to main content
Glama

Create a script project

create_project

Create an Apps Script project, standalone or attached to a Google Doc, Sheet, Slide, or Form, and obtain its scriptId to start adding code.

Instructions

Creates an Apps Script project and returns it (scriptId, title, createTime). Without parent_id the project is standalone (its scriptId doubles as its Drive file id); with parent_id — the Drive id of a Google Doc, Sheet, Slides or Form — the project is created bound to that container and can use its container-specific APIs (e.g. SpreadsheetApp.getActive()). A new project holds only a default manifest and an empty Code file: add real code with update_project_content next. IMPORTANT: the API cannot list or delete projects — keep the returned scriptId, it is the only handle. Requires the script.projects scope, the Apps Script API toggle at script.google.com/home/usersettings, and — for bound projects — access to the parent file.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesThe project title shown in the Apps Script editor.
parent_idNoDrive file id of a Google Doc, Sheet, Slides or Form to bind the project to; omit for a standalone project.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description discloses critical behavior: the API cannot list or delete projects, so the returned scriptId is the only handle; the initial project contains only a default manifest and empty Code file; and it requires specific scopes/API toggle plus parent-file access for bound projects. This is exactly the kind of non-obvious operational context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than minimal but every sentence earns its place: core action, mode distinction, project state, irreversible handle warning, and prerequisites. The 'IMPORTANT' warning is well placed and the progression from behavior to requirements is logical. Slightly verbose, but not wasteful; a 4 reflects the density over brevity tradeoff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description names the return fields (scriptId, title, createTime). With full parameter schema coverage, annotations present, and this rich behavioral text covering side effects, permissions, and post-creation state, nothing an agent needs to call this tool correctly is missing. Bound-project requirements and the workaround for missing list/delete endpoints are especially valuable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds substantial meaning for parent_id, explaining that omitting it creates a standalone project whose scriptId doubles as the Drive file id, while providing it binds the project and enables container-specific APIs with a concrete example (SpreadsheetApp.getActive()). This goes beyond the schema's terse 'Drive file id...' and justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Creates an Apps Script project and returns it (scriptId, title, createTime).' This unambiguously distinguishes create_project from sibling read/update tools like get_project and update_project_content, especially with the explicit chaining instruction 'add real code with update_project_content next.' The scope is precise and immediately usable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for both modes: standalone versus bound via parent_id, including the exact Drive file types and the container-specific API benefit. It also directs the next step to update_project_content, which implies the creation-only role. It stops short of explicitly listing exclusion cases (e.g., 'do not use for X'), so it earns a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/A1-x-Tech/mcp-google-apps-script'

If you have feedback or need assistance with the MCP directory API, please join our Discord server