> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create external file

> Create external file.

`veryfront__create_external_file`

Requires project.integrations.connect.

## Access

No external-service connection is required. Use a Veryfront credential with access to the requested resources.

**Call type:** Can change resources.

## Arguments

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `project_reference` | `string` | No | Project ID or slug. Requires project.integrations.connect through the caller's own personal provider connection. |
| `provider` | `string` | Yes | Storage provider accessed through the caller's own personal connection. A shared project connection is not used. Values: `"onedrive"`, `"sharepoint"`, `"drive"`. |
| `folder_id` | `string` | Yes | Parent folder ID from [`list_external_files`](/docs/cloud/mcp/tools/list-external-files), or "root" for the provider root Minimum length: `1`. Maximum length: `1024`. |
| `name` | `string` | Yes | Creates a new file without replacing an existing one. OneDrive and SharePoint return conflict for an existing name; Google Drive creates a new item with the same name. File name, such as "report.md"; no "/". Minimum length: `1`. Maximum length: `255`. |
| `content` | `string` | Yes | File content, at most 10000000 characters Maximum length: `10000000`. |
| `content_encoding` | `string` | No | Encoding of content: "utf8" (default) for text, "base64" for binary bytes Values: `"utf8"`, `"base64"`. |
| `mime_type` | `string` | No | MIME type; defaults from the name, else text/plain (utf8) or application/octet-stream (base64) Minimum length: `3`. Maximum length: `255`. |
| `idempotency_key` | `string` | No | Optional key of 1-128 characters without whitespace. Retrying with the same key and arguments within 24 hours returns the first result instead of creating another item; the same key with different arguments is refused. Minimum length: `1`. Maximum length: `128`. |

## Example request

Send this JSON-RPC request through an initialized MCP client. Replace sample identifiers and values before calling the tool. See [MCP client setup](/docs/cloud/getting-started/connect-mcp.md).

```json title="request.json" theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "veryfront__create_external_file",
    "arguments": {
      "provider": "onedrive",
      "folder_id": "example",
      "name": "example",
      "content": "example"
    }
  }
}
```

## Result

The published output shape is summarized below. Inspect both the MCP response content and `isError` when handling a call.

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `id` | `string` | Yes | Unique identifier for the returned record. Minimum length: `1`. Maximum length: `1024`. |
| `provider` | `string` | Yes | Values: `"onedrive"`, `"sharepoint"`, `"drive"`. |
| `name` | `string` | Yes | Human-readable name for the returned record. |
| `kind` | `string` | Yes | Values: `"file"`, `"folder"`. |
| `parent_id` | `string or null` | Yes | |
| `path` | `string` | Yes | |
| `mime_type` | `string` | Yes | Minimum length: `1`. |
| `size_bytes` | `integer` | Yes | Minimum: `0`. Maximum: `9007199254740991`. |
| `modified_at` | `string or null` | Yes | |
| `etag` | `string or null` | Yes | |
| `thumbnail_url` | `string or null` | Yes | |
| `web_url` | `string or null` | Yes | |

## Full schemas

```json title="input-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "project_reference": {
      "type": "string",
      "description": "Project ID or slug. Requires project.integrations.connect through the caller's own personal provider connection."
    },
    "provider": {
      "type": "string",
      "enum": [
        "onedrive",
        "sharepoint",
        "drive"
      ],
      "description": "Storage provider accessed through the caller's own personal connection. A shared project connection is not used."
    },
    "folder_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "Parent folder ID from list_external_files, or \"root\" for the provider root"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "pattern": "^[^/]*$",
      "description": "Creates a new file without replacing an existing one. OneDrive and SharePoint return conflict for an existing name; Google Drive creates a new item with the same name. File name, such as \"report.md\"; no \"/\"."
    },
    "content": {
      "type": "string",
      "maxLength": 10000000,
      "description": "File content, at most 10000000 characters"
    },
    "content_encoding": {
      "type": "string",
      "enum": [
        "utf8",
        "base64"
      ],
      "description": "Encoding of content: \"utf8\" (default) for text, \"base64\" for binary bytes"
    },
    "mime_type": {
      "type": "string",
      "minLength": 3,
      "maxLength": 255,
      "description": "MIME type; defaults from the name, else text/plain (utf8) or application/octet-stream (base64)"
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^\\S+$",
      "description": "Optional key of 1-128 characters without whitespace. Retrying with the same key and arguments within 24 hours returns the first result instead of creating another item; the same key with different arguments is refused."
    }
  },
  "required": [
    "provider",
    "folder_id",
    "name",
    "content"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "Arguments for the create_external_file tool."
}
```

```json title="output-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "Unique identifier for the returned record."
    },
    "provider": {
      "type": "string",
      "enum": [
        "onedrive",
        "sharepoint",
        "drive"
      ]
    },
    "name": {
      "type": "string",
      "description": "Human-readable name for the returned record."
    },
    "kind": {
      "type": "string",
      "enum": [
        "file",
        "folder"
      ]
    },
    "parent_id": {
      "anyOf": [
        {
          "$ref": "#/properties/id"
        },
        {
          "type": "null",
          "description": "The parent id returned by the tool."
        }
      ]
    },
    "path": {
      "type": "string"
    },
    "mime_type": {
      "type": "string",
      "minLength": 1
    },
    "size_bytes": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "modified_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null",
          "description": "The modified at returned by the tool."
        }
      ]
    },
    "etag": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 1024,
          "pattern": "^(?:\\*|(?:W\\/)?\"[\\x21\\x23-\\x7e]*\"(?:[ \\t]*,[ \\t]*(?:W\\/)?\"[\\x21\\x23-\\x7e]*\")*|[!#$%&'*+.^_`|~0-9A-Za-z-]+)$"
        },
        {
          "type": "null",
          "description": "The etag returned by the tool."
        }
      ]
    },
    "thumbnail_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null",
          "description": "The thumbnail url returned by the tool."
        }
      ]
    },
    "web_url": {
      "anyOf": [
        {
          "$ref": "#/properties/thumbnail_url/anyOf/0",
          "description": "The web url returned by the tool."
        },
        {
          "type": "null",
          "description": "The web url returned by the tool."
        }
      ]
    }
  },
  "required": [
    "id",
    "provider",
    "name",
    "kind",
    "parent_id",
    "path",
    "mime_type",
    "size_bytes",
    "modified_at",
    "etag",
    "thumbnail_url",
    "web_url"
  ],
  "additionalProperties": false,
  "description": "Structured result returned by the create_external_file tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

<details>
  <summary>Try this tool</summary>

  Replace sample arguments with values for your project or connected account. Calls run only when you select Run tool.

  MCP tool call

  Call `veryfront__create_external_file` against the Veryfront MCP endpoint.

  Bearer token or API key

  Arguments (JSON)

  Run this tool with these arguments.

  Run tool

  Output JSON

  <pre />
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.