toolread-only
read_file
One file from the release, byte-identical to the archive entry, with its SHA-256. Text is returned as UTF-8, anything else as base64. Large text files are read in ranges.
Ask for it in plain words#
PromptRead one file
Using Orvio, read source/css/site.css from Sotto.
Works with Remote MCP·Replace the highlighted parts
Inputs#
| Name | Type | Required | What it does |
|---|---|---|---|
identifier | string | yes | The product's identifier, for example sotto. |
path | string | yes | The file's path in the archive (source/css/site.css), or its path inside the product (css/site.css). |
release | string | no | Optional pin: the version you saw in an earlier result. |
offset | integer | no | Where to start reading, in bytes. Use range.next from the previous result to continue. |
length | integer | no | How many bytes to read: 1 to 262144. The tool also caps a single read. |
Example#
The example ran over Orvio's synthetic test catalog (a product called Fixture Studio), so its names and values differ from the products you will see. The shape is exactly what the server returns.
Request
Arguments
{ "identifier": "fixture-studio", "path": "source/css/site.css" }
Result (shortened)
JSON
{ "path": "source/css/site.css", "sourcePath": "css/site.css", "bytes": 398, "sha256": "f90faae01d0d…", "encoding": "utf-8", "content": ":root {\n --brand-500: #2F6FDE;\n --color-primary: var(--bra…", "range": { "offset": 0, "length": 398, "complete": true }, "licence": { "path": "licenses/LICENSE.md" }, "release": { "product": "fixture-studio", "version": "1.1.0", "releaseId": "f1000000-0000-4000-8000-000000000002", "publishedAt": "2026-10-05T00:00:00Z" } }
Left out of the example: executable.
What comes back#
| Field | What it holds |
|---|---|
path | The file's archive path. |
encoding | utf-8 for text, base64 for anything else. |
content | The file's bytes, exactly as the publisher wrote them. |
bytes | The file's size in bytes. |
sha256 | The SHA-256 of the whole file, to check what you received. |
range | Which bytes this result holds, and where the next read starts. |
warnings | Heads-ups that do not stop the call, such as a membership payment problem. Usually empty. |
Every result also carries what the request needs to be checked: the release (product, version, published date), the licence and notes, when they apply.
Errors#
| Code | Means | What to do |
|---|---|---|
product_unavailable | No listed product has that identifier. | Search the catalog with search_products. |
release_withdrawn | The whole product was taken down for now. | Search the catalog for something similar with search_products. |
release_replaced | A newer release was published since the version you named or the cursor you used. | Call the tool again without a release to use 0.1.3. |
path_not_found | The release has no such file, page, component or token. | Use get_product or list_release_files to see what's included. |
too_large | The file is too large to send in one result. | Read it in ranges with read_file offset and length, or download the ZIP: https://orvio.design/products/sotto |
invalid_input | The arguments do not match the tool's schema, or the cursor is not valid. | Fix the input and call the tool again. |
HTTP 401, 403 or 429 | Before the tool runs: the sign-in is not valid, the membership does not allow access, or there were too many requests. | See Errors and fixes. |
Every tool can also answer service_unavailable and integrity_error: try again in a few minutes.
Was this page clear? Yes · Not reallyEdit suggestions: support@orvio.design