Upload a file and get a public shareable URL via API or MCP.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://filetourl.org/api/mcp7 tools · 950mscreate_upload_urlprivilegedPreferred way to host a file. Reserves a link and returns a short-lived upload_url on filetourl.org itself, safe for AI agent sandboxes that only allow egress to trusted domains, since the upload never has to leave filetourl.org. Send the raw file bytes yourself with a single HTTP PUT to that URL (…Preferred way to host a file. Reserves a link and returns a short-lived upload_url on filetourl.org itself, safe for AI agent sandboxes that only allow egress to trusted domains, since the upload never has to leave filetourl.org. Send the raw file bytes yourself with a single HTTP PUT to that URL (…
| Parameter | Type | Description |
|---|---|---|
| file_name* | string | Original file name (used for the stored filename and content-type hints). |
| content_type | string | Optional MIME type of the file. Send the same value as the PUT's Content-Type header. Guessed from file_name when omitted. |
confirm_uploadprivilegedOptional. Confirm that the PUT to a create_upload_url upload_url finished, and get the final size and link back. The link also activates without this call, this just verifies it.Optional. Confirm that the PUT to a create_upload_url upload_url finished, and get the final size and link back. The link also activates without this call, this just verifies it.
| Parameter | Type | Description |
|---|---|---|
| id* | string | The file id returned by create_upload_url. |
upload_fileprivilegedHost a small file by sending its bytes inline as base64. Prefer create_upload_url instead: inline base64 is slow and costly above roughly 100KB. For a user's own files only. Needs a FileToUrl Developer API key.Host a small file by sending its bytes inline as base64. Prefer create_upload_url instead: inline base64 is slow and costly above roughly 100KB. For a user's own files only. Needs a FileToUrl Developer API key.
| Parameter | Type | Description |
|---|---|---|
| file_content* | string | The file's contents, base64-encoded. |
| file_name* | string | Original file name (used for the stored filename and content-type hints). |
get_file_statusLook up whether a link created earlier is still active. Reports 'pending' for a reserved upload whose bytes have not arrived yet, and 'expired' once its upload window has passed.Look up whether a link created earlier is still active. Reports 'pending' for a reserved upload whose bytes have not arrived yet, and 'expired' once its upload window has passed.
| Parameter | Type | Description |
|---|---|---|
| id* | string | The file id returned by upload_file or create_upload_url. |
start_uploadprivilegedBegin a chunked upload for larger files. Returns an upload_id and recommended chunk size. Use this instead of upload_file for files over ~2MB.Begin a chunked upload for larger files. Returns an upload_id and recommended chunk size. Use this instead of upload_file for files over ~2MB.
| Parameter | Type | Description |
|---|---|---|
| file_name* | string | Original file name (used for the stored filename and content-type hints). |
upload_chunkprivilegedSend one chunk of a file started with start_upload. Call repeatedly with increasing chunk_index (starting at 0) until the whole file is sent, then call finish_upload.Send one chunk of a file started with start_upload. Call repeatedly with increasing chunk_index (starting at 0) until the whole file is sent, then call finish_upload.
| Parameter | Type | Description |
|---|---|---|
| upload_id* | string | The upload_id returned by start_upload. |
| chunk_index* | integer | Zero-based index of this chunk. Chunks are reassembled in ascending order. |
| chunk_content* | string | This chunk's bytes, base64-encoded. Recommended ~1MB raw per chunk. |
finish_uploadprivilegedComplete a chunked upload after all chunks have been sent via upload_chunk. Assembles the file, uploads it, and returns the shareable URL.Complete a chunked upload after all chunks have been sent via upload_chunk. Assembles the file, uploads it, and returns the shareable URL.
| Parameter | Type | Description |
|---|---|---|
| upload_id* | string | The upload_id returned by start_upload. |
7 of 7 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Upload a file and get a public shareable URL via API or MCP.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.