# create_project (/docs/reference/mcp-tools/create_project)



{/* Generated by apps/docs/scripts/generate-mcp-pages.mjs — do not edit by hand. */}

Create a project (seeds default statuses + key counter + creator membership).

|                     |                   |
| ------------------- | ----------------- |
| Required permission | `work:write`      |
| Capability ID       | `projects.create` |
| Destructive         | No                |

## Parameters [#parameters]

| Parameter     | Type          | Required | Notes |
| ------------- | ------------- | -------- | ----- |
| `name`        | string        | yes      |       |
| `keyPrefix`   | string        | yes      |       |
| `description` | string        | no       |       |
| `icon`        | string        | no       |       |
| `color`       | string        | no       |       |
| `leadId`      | string (uuid) | no       |       |

## Input schema (JSON Schema) [#input-schema-json-schema]

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "keyPrefix": {
      "type": "string",
      "pattern": "/^[A-Z][A-Z0-9]{1,9}$/"
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "icon": {
      "type": "string",
      "maxLength": 64
    },
    "color": {
      "type": "string",
      "minLength": 1,
      "maxLength": 32
    },
    "leadId": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "name",
    "keyPrefix"
  ],
  "additionalProperties": false
}
```

## Access control [#access-control]

A call succeeds only when the personal access token's scopes **and** the holder's role both allow `work:write` (effective permission = scope ∩ role, default-deny). The tool runs inside the token owner's organization — tenancy is never a parameter.
