> ## 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.

# Read external file content

> Read external file content.

`veryfront__read_external_file_content`

Requires project.integrations.read.

## Access

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

**Call type:** Read-only.

## Arguments

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `project_reference` | `string` | No | Project ID or slug. Requires project.integrations.read 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"`. |
| `file_id` | `string` | Yes | File ID from [`list_external_files`](/docs/cloud/mcp/tools/list-external-files) Minimum length: `1`. Maximum length: `1024`. |

## 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__read_external_file_content",
    "arguments": {
      "provider": "onedrive",
      "file_id": "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 |
| - | - | - | - |
| `file` | `object` | Yes | Structured file details associated with this tool result. |
| `content` | `string` | Yes | Complete UTF-8 text or base64 content. More than 100000 encoded characters or 50 MiB returns `limit_exceeded` instead of partial content; use importExternalFile for larger files. Folders return `invalid_input`. |
| `content_encoding` | `string` | Yes | Values: `"utf8"`, `"base64"`. |

## Full schemas

```json title="input-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "project_reference": {
      "type": "string",
      "description": "Project ID or slug. Requires project.integrations.read 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."
    },
    "file_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "File ID from list_external_files"
    }
  },
  "required": [
    "provider",
    "file_id"
  ],
  "additionalProperties": false,
  "description": "Arguments for the read_external_file_content tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

```json title="output-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "file": {
      "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/file/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/file/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 file details associated with this tool result."
    },
    "content": {
      "type": "string",
      "description": "Complete UTF-8 text or base64 content. More than 100000 encoded characters or 50 MiB returns limit_exceeded instead of partial content; use importExternalFile for larger files. Folders return invalid_input."
    },
    "content_encoding": {
      "type": "string",
      "enum": [
        "utf8",
        "base64"
      ]
    }
  },
  "required": [
    "file",
    "content",
    "content_encoding"
  ],
  "additionalProperties": false,
  "description": "Structured result returned by the read_external_file_content 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__read_external_file_content` against the Veryfront MCP endpoint.

  Bearer token or API key

  Arguments (JSON)

  Run tool

  Output JSON

  <pre />
</details>


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