read_file
Read files from shared folders by specifying the file path, automatically resolving document IDs for access to content and metadata.
Instructions
Read a file from a folder share by its path.
Resolves path -> doc_id automatically. This is the recommended way to read files from folder shares.
Args: share_id: UUID of the folder share. file_path: File path within the folder (e.g. "Marketing/plan.md").
Returns: JSON with doc_id, content, format, path.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| share_id | Yes | ||
| file_path | Yes |
Implementation Reference
- relay_mcp.py:167-216 (handler)The read_file tool handler implementation - reads a file from a folder share by resolving its path to a doc_id, then retrieving the content via the Relay Control Plane API.@mcp.tool() def read_file(share_id: str, file_path: str) -> str: """Read a file from a folder share by its path. Resolves path -> doc_id automatically. This is the recommended way to read files from folder shares. Args: share_id: UUID of the folder share. file_path: File path within the folder (e.g. "Marketing/plan.md"). Returns: JSON with doc_id, content, format, path. """ import json # Step 1: resolve path -> doc_id with _get_client() as client: r = client.get( f"{_get_base_url()}/v1/documents/{share_id}/files", headers=_headers(), params={"share_id": share_id}, ) r.raise_for_status() files_data = r.json() files = files_data.get("files", {}) file_meta = files.get(file_path) if not file_meta: available = list(files.keys())[:20] return json.dumps( {"error": f"File not found: {file_path}", "available_files": available} ) doc_id = file_meta.get("id") or file_meta.get("doc_id") if not doc_id: return json.dumps({"error": f"No doc_id for file: {file_path}"}) # Step 2: read content with _get_client() as client: r = client.get( f"{_get_base_url()}/v1/documents/{doc_id}/content", headers=_headers(), params={"share_id": share_id, "key": "contents"}, ) r.raise_for_status() content_data = r.json() content_data["path"] = file_path return json.dumps(content_data)