Skip to main content
Glama

Server Details

Create file upload links, publish Markdown pages and receive webhooks, then query incoming files and requests. A hosted streamable HTTP MCP server for AI agents, with no authentication needed for anonymous links that last 24 hours.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 20 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct resource and action: four creation tools for different resource types (upload link, webhook, static site, Markdown page), plus dedicated read/list/update/delete/stats operations. The only potential overlap is publish_site vs share_page, but their descriptions clearly separate static websites from Markdown pages.

Naming Consistency5/5

All tools use snake_case with a consistent verb-first pattern (create_, delete_, get_, list_, read_, publish_, share_, update_). No mixed conventions or vague verbs.

Tool Count5/5

Nine tools are well-scoped for a service that manages four types of ephemeral links plus read/update/delete/stats operations. No tool feels redundant or missing for the core workflows.

Completeness4/5

The surface covers creation, reading, updating, deleting, and stats for the main resource types, but lacks an update operation for share_page and a way to list all created links. These are minor gaps that agents can work around by recreating or tracking IDs.

Available Tools

9 tools
create_webhookCreate webhook URLAInspect

Make a URL any service can call: Stripe, GitHub, a form, a cron job. Every request is stored for you to read with read_webhook_requests. Expires in 24 hours unless the user connected a hello.new account.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoWhat the webhook is for, e.g. "Stripe test events".
expires_inNoSeconds until the link expires. Default: 24 hours, or never on a hello.new account.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
keyYesFor the other tools. Never give it out.
urlYesThe link. Give it to people.
claim_urlNoAnonymous links: where the user can keep the link past 24 hours.
stats_urlYesA live dashboard of who opened the link, for the user.
expires_atYesnull: it never expires.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only cover the safety profile (readOnlyHint=false, openWorldHint=true, destructiveHint=false). The description adds real behavioral value beyond them: request persistence ("Every request is stored") and the 24-hour expiry with its hello.new exception. It does not mention auth or rate-limit behavior, keeping it short of a 5.

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

Conciseness5/5

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

Three short sentences, zero filler. The core capability is front-loaded, followed by the reading path and the expiry caveat in priority order.

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

Completeness5/5

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

With an output schema present, return values need no explanation, and the description covers the essentials an agent needs: what the tool produces, where the output surfaces (read_webhook_requests), and the lifetime constraint. Nothing material is missing.

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 description coverage is 100%, so both parameters are already documented in the schema, including the expiry default and the note field. The description's expiry statement merely echoes the schema, adding no new syntax or constraint detail. Baseline 3 applies.

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

Purpose4/5

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

States a concrete verb+resource ("Make a URL") and clarifies the mechanism with examples ("Stripe, GitHub, a form, a cron job"). It is clearly distinguishable from create_upload_link by describing an inbound-callable endpoint, though it never names that sibling explicitly.

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

Usage Guidelines4/5

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

Gives strong usage context: the URL is meant to be called by external services, and requests are consumed via read_webhook_requests, which routes the agent to the right companion tool. It stops short of stating when NOT to use this versus create_upload_link.

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

list_filesList uploaded filesA
Read-only
Inspect

List the files people sent to one of your upload links. Small text files come back inline; other files have a download_url to give the user. Set wait (up to 20 seconds) to wait for the first file to arrive.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe link id, from the tool that made the link.
keyYesThe link's key, from the tool that made the link.
waitNoSeconds to wait for the first file. Default 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
filesYes
expires_atYesnull: it never expires.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/no-destructive safety, so the bar is lower; the description adds genuinely useful behavior by disclosing that small text files return inline while others carry a download_url, and that wait up to 20s long-polls for the first file. That is real operation-level context beyond the annotations.

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

Conciseness5/5

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

Three tight sentences with the action front-loaded, followed by return-shape behavior and the optional wait semantics. Every sentence earns its place with no filler.

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

Completeness5/5

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

An output schema exists, so return structure need not be spelled out, yet the description still usefully previews inline vs download_url handling. Combined with complete parameter coverage and clear safety annotations, nothing an agent needs to invoke it correctly is missing.

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 description coverage is 100%, so all three parameters are documented in the schema itself; the baseline is 3. The description restates the wait semantics ('wait for the first file to arrive') but adds no syntax or defaults beyond what the schema already says.

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

Purpose4/5

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

States a specific verb+resource ('List the files people sent to one of your upload links'), which is unambiguous and separable from siblings like get_link_stats or create_upload_link. It does not explicitly name a sibling to contrast against, so it falls just short of 5.

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

Usage Guidelines3/5

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

Usage is implied: it operates on an existing upload link whose id/key come from 'the tool that made the link', and the wait parameter implies a polling/waiting scenario. But there is no explicit when-to-use or when-not-to-use guidance against alternatives such as get_link_stats.

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

publish_sitePublish a websiteAInspect

Publish a website you built (HTML, CSS, JavaScript, images) at an address of its own that anyone can visit. Give people the url; keep id and key to change it with update_site. Static files only: no server code runs, and everything in the site is public. Expires in 24 hours unless the user connected a hello.new account.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesEvery file of the site. index.html is the home page; pages link to the rest by path, like "style.css". At most 100 files and 10 MB.
titleNoWhat the site is, for the user's dashboard.
expires_inNoSeconds until the link expires. Default: 24 hours, or never on a hello.new account.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
keyYesFor the other tools. Never give it out.
urlYesThe link. Give it to people.
claim_urlNoAnonymous links: where the user can keep the link past 24 hours.
stats_urlYesA live dashboard of who opened the link, for the user.
expires_atYesnull: it never expires.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (openWorld, not read-only, not destructive), it discloses genuinely new traits: everything published is public, no server code runs, the link expires in 24 hours unless a hello.new account is connected, and the returned id/key are needed for future updates. These are exactly the consequences an agent needs before acting.

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

Conciseness5/5

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

Three tight sentences, front-loaded with what the tool does, then the credential handoff, then the constraints. Every clause carries information; nothing is padding.

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

Completeness5/5

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

With an output schema present, return values need not be explained, and the description covers everything else an agent needs: static-only constraint, public exposure, expiry behavior, and the alternative tool for edits.

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 description coverage is 100%, so files/title/expires_in are already fully documented in the schema, including the index.html convention and 100-file/10MB limits. The description mirrors the expiry default rather than adding new parameter meaning, so the baseline 3 is appropriate.

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?

The description names a specific verb (publish) and resource (a website built from HTML/CSS/JS/images) served at its own public URL. It distinguishes itself from the sibling update_site by explaining that id and key are kept specifically to change the site later.

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

Usage Guidelines4/5

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

It gives clear context for use (a static site the user built that others should visit) and routes modification to update_site. It does not state when *not* to use it, e.g. when a dynamic/server-backed app is needed, though the 'static files only' line partly covers this.

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

read_webhook_requestsRead webhook requestsA
Read-only
Inspect

Read the requests your webhook URL received: method, headers, query and body. Pass after (the last seq you saw) to get only newer ones, and wait (up to 20 seconds) to wait for the next request.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe link id, from the tool that made the link.
keyYesThe link's key, from the tool that made the link.
waitNoSeconds to wait for the next request. Default 0.
afterNoThe last seq you saw: only newer requests come back. Default 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
requestsYes
expires_atYesnull: it never expires.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond annotations: it reveals the returned request parts, incremental polling via 'after', and a blocking wait of up to 20 seconds.

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

Conciseness5/5

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

Two tightly written sentences with zero waste. The first sentence front-loads purpose and return contents; the second efficiently explains the two optional parameters. The minor 'wait ... to wait' repetition does not undermine the conciseness.

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

Completeness5/5

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

For a simple read tool with 4 parameters, 2 required, full schema coverage, and an output schema, the description supplies all needed invocation context. Safety is covered by annotations, return shape by the output schema, and polling behavior by the description.

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 description coverage is 100%, so the schema already documents every parameter, including 'after' and 'wait'. The description reinforces these semantics (newer requests, up to 20 seconds) but adds no format details, edge cases, or defaults beyond what the schema provides; baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb 'read' and resource 'requests your webhook URL received', and enumerates the returned fields (method, headers, query, body). It does not explicitly differentiate itself from sibling tools like get_link_stats or list_files, so it falls short of a 5.

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

Usage Guidelines3/5

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

The description implies usage by explaining incremental retrieval with 'after' and long-polling with 'wait', but it never explicitly states when to use this tool versus any alternative. Sibling tools are unrelated operations, so no clear alternative selection guidance is provided or needed.

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

share_pageShare a pageAInspect

Publish Markdown as a web page anyone with the link can read: a report, a summary, a draft for review. Give people the url. Expires in 24 hours unless the user connected a hello.new account.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoShown above the page.
contentYesThe page, in Markdown. At most 256 KB.
expires_inNoSeconds until the link expires. Default: 24 hours, or never on a hello.new account.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
keyYesFor the other tools. Never give it out.
urlYesThe link. Give it to people.
claim_urlNoAnonymous links: where the user can keep the link past 24 hours.
stats_urlYesA live dashboard of who opened the link, for the user.
expires_atYesnull: it never expires.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, openWorldHint=true, destructiveHint=false), and the description goes beyond them by disclosing the key behavioral trait: the link expires in 24 hours unless a hello.new account is connected, plus that the page is publicly readable by anyone with the URL. It does not address permissions, rate limits, or whether content is retained after expiry.

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 core action and kept to two compact sentences with no filler. It could be tightened slightly by folding the expiry clause more directly into the main statement.

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?

With an output schema present, return values need no explanation, and the description covers the essential behavior (public visibility, 24-hour expiry). The main gap is the absence of routing guidance versus create_upload_link.

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 schema already documents title, content, and expires_in. The description only reinforces the expiry default, adding marginal value beyond the schema's own description of the same behavior.

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

Purpose4/5

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

States a specific verb and resource: publishing Markdown as a shareable web page, with concrete examples (report, summary, draft). It distinguishes itself well from most siblings, though it does not explicitly contrast with create_upload_link, the nearest neighbor for producing a shareable link.

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

Usage Guidelines3/5

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

The examples and 'anyone with the link can read' imply the usage context, but there is no explicit when-to-use routing against create_upload_link or any statement of exclusions. Usage is inferable but not spelled out.

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

update_siteUpdate a websiteA
Destructive
Inspect

Replace the files of a site you published with publish_site; it keeps its url. Send every file the site should have: any you leave out is removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe link id, from the tool that made the link.
keyYesThe link's key, from the tool that made the link.
filesYesEvery file of the site. index.html is the home page; pages link to the rest by path, like "style.css". At most 100 files and 10 MB.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlYes
bytesYes
filesYes
expires_atYesnull: it never expires.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations flag destructiveHint=true and openWorldHint=true, but the description goes further by specifying exactly what is destroyed (files omitted from the payload are removed) and what is preserved (the URL). That is precisely the context an annotation cannot convey, and there is no contradiction.

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

Conciseness5/5

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

Two sentences, zero filler, with the replacement semantics front-loaded before the file-completeness rule. Every clause earns its place.

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

Completeness5/5

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

For a three-parameter mutation tool with full schema descriptions, full annotations, and an output schema, the description supplies the one non-obvious behavioral fact (full replacement) plus the sibling relationship, leaving nothing an agent needs to call it correctly.

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% and the nested file schema already documents path, content, encoding, the 100-file/10 MB limits, and that index.html is the home page. The description's emphasis on the complete file set reinforces schema semantics but adds no new per-parameter detail, so baseline 3 applies.

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?

Names a specific verb ('Replace the files') and resource (a site published with publish_site), and states the effect on identity ('it keeps its url'). An agent can distinguish it from publish_site and create_upload_link without opening the schema.

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

Usage Guidelines4/5

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

Explicitly ties this tool to sites created via publish_site and gives the critical operating rule that every file must be sent because omissions are removed. It does not state when to prefer siblings like create_upload_link or what preconditions exist, so it stops short of full when/when-not coverage.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Addedpublish_site
    • Addedupdate_site
  2. 1 tool update
    • Changedget_link_stats1 field changed
      • changedOutput schema / properties / kind / enum
        Previous value: -[
        -  "upload",
        -  "share",
        -  "webhook"
        -]New value: +[
        +  "upload",
        +  "share",
        +  "webhook",
        +  "site"
        +]
  3. 7 tool updates
    • First observedcreate_upload_link
    • First observedcreate_webhook
    • First observeddelete_link
    • First observedget_link_stats
    • First observedlist_files
    • First observedread_webhook_requests
    • First observedshare_page

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    4 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources