# Edit project details

`projects.update`

Patch project facts using the revision from projects.get. Omit assignment to preserve it; supply assignment.email as an active workspace member email or null to clear it. Amount and currency must remain paired. Changing project currency does not convert values or rewrite existing deal terms, matching criteria, or applications.

[Projects guide](https://docs.levr.ai/mcp/resources/projects.md)

Availability depends on live discovery and your access to the record. Do not infer MCP calls from REST paths.

Operation: write. Required OAuth scopes: mcp.

## Input schema

```json
{
  "additionalProperties": false,
  "properties": {
    "changes": {
      "additionalProperties": false,
      "minProperties": 1,
      "properties": {
        "assignment": {
          "additionalProperties": false,
          "properties": {
            "email": {
              "anyOf": [
                {
                  "format": "email",
                  "maxLength": 254,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "email"
          ],
          "type": "object"
        },
        "decision_due_date": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "flexibility_notes": {
          "maxLength": 10000,
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "purpose": {
          "maxLength": 10000,
          "type": "string"
        },
        "target_amount": {
          "anyOf": [
            {
              "pattern": "^[0-9]{1,12}(?:\\.[0-9]{1,2})?$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "target_currency": {
          "anyOf": [
            {
              "pattern": "^[A-Za-z]{3}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "expected_revision": {
      "description": "Copy revision from projects.get; not a matching workspace or answers revision.",
      "minimum": 0,
      "type": "integer"
    },
    "idempotency_key": {
      "maxLength": 128,
      "minLength": 1,
      "type": "string"
    },
    "project_slug": {
      "description": "Copy project_slug (proj_) from projects.list or projects.create; not workspace_slug.",
      "pattern": "^proj_[a-z0-9]+$",
      "type": "string"
    },
    "provider_slug": {
      "description": "Copy provider_slug from providers.list; named slugs are valid.",
      "pattern": "^[a-zA-Z0-9_-]{1,64}$",
      "type": "string"
    }
  },
  "required": [
    "provider_slug",
    "project_slug",
    "expected_revision",
    "idempotency_key",
    "changes"
  ],
  "type": "object"
}
```

## Output schema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "oneOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "properties": {
        "ok": {
          "const": true
        }
      },
      "required": [
        "data"
      ]
    },
    {
      "not": {
        "required": [
          "data"
        ]
      },
      "properties": {
        "ok": {
          "const": false
        }
      },
      "required": [
        "error"
      ]
    }
  ],
  "properties": {
    "data": {
      "additionalProperties": false,
      "properties": {
        "details": {
          "additionalProperties": false,
          "properties": {
            "assignment": {
              "additionalProperties": false,
              "properties": {
                "email": {
                  "anyOf": [
                    {
                      "format": "email",
                      "maxLength": 254,
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "email"
              ],
              "type": "object"
            },
            "decision_due_date": {
              "anyOf": [
                {
                  "format": "date",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "flexibility_notes": {
              "maxLength": 10000,
              "type": "string"
            },
            "name": {
              "maxLength": 255,
              "minLength": 1,
              "type": "string"
            },
            "purpose": {
              "maxLength": 10000,
              "type": "string"
            },
            "target_amount": {
              "anyOf": [
                {
                  "pattern": "^[0-9]{1,12}(?:\\.[0-9]{1,2})?$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "target_currency": {
              "anyOf": [
                {
                  "pattern": "^[A-Za-z]{3}$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "assignment",
            "name",
            "purpose",
            "target_amount",
            "target_currency",
            "decision_due_date",
            "flexibility_notes"
          ],
          "type": "object"
        },
        "project_slug": {
          "description": "Copy project_slug (proj_) from projects.list or projects.create; not workspace_slug.",
          "type": "string"
        },
        "revision": {
          "type": "integer"
        },
        "workspace_slug": {
          "description": "Shared matching request identity to use with this Project's matchmaking tools.",
          "type": "string"
        }
      },
      "required": [
        "project_slug",
        "workspace_slug",
        "revision",
        "details"
      ],
      "type": "object"
    },
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "additionalProperties": true,
          "description": "Optional bounded, agent-safe correction or recovery facts.",
          "type": "object"
        },
        "message": {
          "type": "string"
        },
        "retryable": {
          "type": "boolean"
        }
      },
      "required": [
        "code",
        "message",
        "retryable"
      ],
      "type": "object"
    },
    "meta": {
      "additionalProperties": false,
      "properties": {
        "request_id": {
          "type": "string"
        }
      },
      "required": [
        "request_id"
      ],
      "type": "object"
    },
    "ok": {
      "description": "Whether the tool completed successfully.",
      "type": "boolean"
    }
  },
  "required": [
    "ok",
    "meta"
  ],
  "type": "object"
}
```

Check the result, then read the affected record to confirm your change.
