Skip to main content
Glama

myartefacts

Create Upload Url

create_upload_url

Publish a file that is already on disk without pasting it into a tool call. Returns a one-time upload_url and a ready curl command: run the command and the file is published, with the answer (slug, share_url) printed by curl. No token is needed for the upload. Takes the same fields as publish_artifact, minus the contents; passing an existing slug publishes a new version at the same URL. Prefer this over publish_artifact for any file you wrote to disk, and always for large or binary files. Call list_projects first to pick its project; project_note warns when the upload would start a new one.

Input Schema

NameRequiredDescriptionDefault
kindNoOverride the detected kind, e.g. "Deck" or "App" for an HTML file.
pathNoWhere the file is on disk, used to fill in the curl command. Defaults to `filename`.
slugNoStable id for the artifact. Reuse it to publish a new version at the same URL. Omit to create a new artifact.
shareNoTurn on the public share link once the file arrives. Anyone with the link can view it.
titleNoShort human title. Defaults to the HTML <title> or first Markdown heading.
promptNoThe request that produced this artifact.
projectNoProject path to file it under, e.g. "RentOS" or "RentOS/Backlinks" (up to 3 levels). Call list_projects first and use the most specific existing project that fits; start a subproject of an existing one before a new top-level project. Matching ignores case and punctuation.
summaryNoOne or two sentences on what this is.
filenameYesFile name with extension, e.g. "pricing-page.html". The extension decides how it renders.
project_descriptionNoOne sentence on what belongs in the project, used when this starts a new one (or it has no description yet).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only a title annotation, the description carries the full behavioral burden and does most of it well: it discloses the deferred two-step side effect (the tool only hands back a curl command; publishing happens when curl runs), that no token is needed for the upload, and that the result is printed by curl rather than returned inline. Gaps remain around one-time URL expiry and what happens if the path doesn't exist, which matter for a deferred upload primitive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the key mechanism and kept to a tight set of sentences that each carry information. The closing clause about `project_note` is under-explained and costs a bit of clarity, but overall there is little waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no annotations and no output schema, the description covers the essential lifecycle: what it returns (upload_url, curl, slug, share_url), how publishing completes, and how versioning works via slug reuse. It stops short of error/expiry behavior, which is the main residual gap given the absence of structured hints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds a useful framing ("same fields as publish_artifact, minus the contents"), but it also references a `project_note` field that does not exist in the schema (the schema has `project_description`), which slightly muddies rather than clarifies parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the mechanism: publish a file already on disk by getting a one-time `upload_url` and curl command. It explicitly contrasts itself with publish_artifact ("Takes the same fields as publish_artifact, minus the contents"), so the agent can distinguish it from the sibling without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit selection rule: "Prefer this over publish_artifact for any file you wrote to disk, and always for large or binary files," plus a sequencing prerequisite (call list_projects first, reuse an existing slug to version). This is exactly the when-to-use / when-to-use-something-else guidance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources