serve
Server Details
Publish what your agent just made to a public HTTPS link. Pass the content — a page, a report, a deck — and get a live URL that keeps working with no machine online, plus password protection, credential rotation and takedown. 8 tools. The local companion (npm i -g @servelink/serve) adds tunnels to a running dev server.
- Status
- Healthy
- Uptime
- 99.8% over 22 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Each tool addresses a distinct action or resource: account_status covers plan/quota while links inventories artifacts, and the four protection verbs (protect/renew/revoke/unprotect) are clearly differentiated with cross-references. serve and stop_remote are unambiguous opposites.
The link-protection tools follow a clean verb_link pattern (protect_link, renew_link, revoke_link, unprotect_link), but account_status and links are noun-only and serve and stop_remote break the resource-noun convention. The set is readable but the naming style is mixed.
Eight tools is well scoped for a content-serving server: one publish action, one unpublish action, one inventory view, one account view, and four protection lifecycle operations. No tool feels redundant or extraneous.
The surface covers the full lifecycle: create/serve content, list/inspect links, unprotect or revoke access, rotate credentials, and delete remote content. It also provides account/plan context needed to understand limits before acting.
Available Tools
8 toolsaccount_statusAccount statusARead-onlyInspect
Account-level state: plan, entitlement, and how much of the storage, transfer and publish allowance is used. Use this to check what the account may do or whether it is near a limit. For the links themselves (labels, residency, protection state), use links instead. Owned links are unlimited by count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description reinforces this by focusing on state inspection and adds no contradicting side effects. A minor gap is not mentioning idempotency, but the read-only nature implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and mostly clear, but the final remark about 'Owned links are unlimited by count' is tangential to the tool's primary purpose and could be omitted for tighter focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides enough context for an agent to decide when to use this tool versus others, including a direct cross-reference to the sibling tool. Without an output schema, it appropriately avoids promising specific fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so schema coverage is complete. The description doesn't need to explain any parameters, and there is no missing information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this tool provides account-level state (plan, entitlement, usage allowances) and distinguishes it from sibling tools focused on links. The verb 'check' is implicit but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool ('to check what the account may do or whether it is near a limit') and explicitly directs users to the sibling 'links' tool for link-specific details, providing clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linksList linksARead-onlyInspect
Inventory of every owned link, one record each: residency, protection state, and published-artifact detail. Use this to see what is currently published, or to find a label to act on. Live-tunnel capacity and usage totals come along as context. For plan, entitlement and quota headroom, use account_status instead. Owned links are unlimited by count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds useful context beyond that: the inventory scope, included context fields (live-tunnel capacity and usage totals), and the unlimited-count property. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, each earning its place: what the inventory contains, when to use it, when to use the alternative, and a relevant count constraint. The core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only list tool, the description fully covers what the agent gets, when to call it, and what not to use it for. It even describes the record contents sufficiently in lieu of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so the baseline is 4. The description adds no parameter details, but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: an inventory of every owned link with per-record fields (residency, protection state, published-artifact detail). It is clearly distinguishable from siblings like account_status, protect_link, and revoke_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it ('to see what is currently published, or to find a label to act on') and names the alternative for related but different needs ('For plan, entitlement and quota headroom, use account_status instead').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protect_linkProtect linkAInspect
Enable capability token and readable secret protection on an owned link (Pro plan required). Returns a share URL that carries the capability; anyone holding that URL can view the link. A viewer secret code is also set, but it is shown only in the serve console, never here. If ttl is omitted, protection lasts 24 hours. Calling this on an already-protected link replaces the existing credentials, so previous share URLs stop working. To rotate credentials instead, use renew_link; to invalidate them without minting new ones, use revoke_link.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Optional TTL duration (e.g. 24h, 7d); defaults to 24 hours. | |
| label | Yes | Label of the link to protect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (all false), the description discloses plan requirement, TTL default, the fact that the viewer secret is never returned, and the side effect that re-protecting invalidates prior share URLs. This is exactly the kind of context agents need and it exceeds what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, front-loaded with the core action, then output behavior, then caveats and alternatives. Each sentence adds distinct information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and minimal annotations, the description carries the full burden and covers return value (share URL), secret handling, TTL default, replacement behavior, and sibling tool routing. No critical call-time fact is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% parameter descriptions, so the baseline is 3. The description reinforces the ttl default and adds the 'owned link' context for label, but does not add significant new syntactic or semantic details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Enable') and resource ('capability token and readable secret protection on an owned link'), and clearly differentiates from siblings by naming renew_link and revoke_link as alternatives. It also states the Pro plan requirement and what the output share URL does, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the condition for use (protecting an owned link), and explicitly routes to alternatives: 'To rotate credentials instead, use renew_link; to invalidate them without minting new ones, use revoke_link.' It also warns about replacing existing protection, which helps agents decide whether to call this or a safer alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renew_linkRenew link protectionAInspect
Rotate the capability token and secret code for a link (Pro plan required) and restart its timer. Returns a new share URL; the previous one stops working. The regenerated viewer secret code is shown only in the serve console, never here. If ttl is omitted, protection defaults to 24 hours.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Optional updated TTL duration (e.g. 24h, 7d); defaults to 24 hours. | |
| label | Yes | Label of the link to renew. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly discloses side effects ('previous one stops working'), output ('Returns a new share URL'), and a limitation ('secret code is shown only in the serve console, never here'). This goes beyond the basic annotations and sets accurate expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by the key side effect and default behavior. No redundant or extraneous wording is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All necessary operational details are included: required plan, default TTL, behavior of the old URL, and where the secret code appears. For a simple two-parameter tool with no output schema, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers both parameters, including the optional ttl default. The description mostly restates the schema, so it adds little semantic value beyond what is already provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Rotate the capability token and secret code') and resource ('for a link'), and clarifies it returns a new share URL. This clearly distinguishes it from siblings like protect_link, revoke_link, and unprotect_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides important usage context: a Pro plan is required, ttl defaults to 24 hours, and the previous URL stops working. It does not explicitly enumerate alternative tools, but the behavior is clear enough to indicate when renewal/rotation is intended.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_linkRevoke link credentialsADestructiveInspect
Immediately revoke the active secret code and capability token while keeping owner access intact. The link stays protected, so the old share URL stops working and no new credentials are minted. To rotate credentials instead, use renew_link; to open the link to everyone, use unprotect_link.
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Label of the link whose credentials should be revoked. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds meaningful behavioral context beyond that: it revokes credentials while keeping owner access intact, it makes the old URL stop working, and it prevents new credentials from being minted. It also clarifies the link remains protected. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying essential information: the core action, the consequence, and the alternatives. Front-loaded with the critical revoke action, no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with full schema coverage and no output schema, the description sufficiently covers what the tool does, its effects, and how it relates to siblings. Nothing needed for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single required parameter, and the schema description ('Label of the link whose credentials should be revoked.') is already clear. The description does not add extra parameter meaning, but with full schema coverage, the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: immediately revoke the active secret code and capability token. It names the specific resource (link credentials) and the effect (old share URL stops working). It also distinguishes itself from renew_link and unprotect_link by naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides direct when-to-use/when-not-to-use guidance by stating alternatives: 'To rotate credentials instead, use renew_link; to open the link to everyone, use unprotect_link.' This leaves no ambiguity about which tool to select for related but different intents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
servePublish content -> public remote linkAIdempotentInspect
Publish inline content to a public HTTPS URL that serves from the cloud. Pass content (text) or content_base64 (binary), plus filename. Set name to request a specific link. The link stays live with no machine online until stop_remote is called.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Optional protection TTL (e.g. 24h, 7d). | |
| name | No | Optional requested subdomain; a fresh generated link is used if omitted. | |
| content | No | Text content of the file to publish. | |
| protect | No | If true, enables capability token + secret code protection on the link. | |
| replace | No | true replaces an existing published artifact at the requested name (Pro); false returns a residency_conflict error | |
| filename | No | Filename / entry name for the artifact (e.g. index.html, deck.html). Defaults to index.html. | |
| content_base64 | No | Base64-encoded binary content of the file to publish (use instead of content for binaries). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-read-only, idempotent, and non-destructive. The description adds the key behavioral trait that the link persists in the cloud with no machine online until stop_remote is called, which is not inferable from the schema or annotations. It does not contradict 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences cover purpose, payload requirements, and lifecycle behavior. The most important facts are front-loaded, and every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given seven optional parameters and no output schema, the description provides enough context for selection and invocation: it clarifies the expected content parameter, optional name behavior, and persistence until stop_remote. It does not mention ttl, protect, or replace, but the schema fully documents those, so no necessary invocation detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all seven parameters. The description adds a useful grouping of content vs content_base64, filename, and name-to-link behavior, but it largely restates what the schema says. There is no need for the description to compensate for missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Publish inline content to a public HTTPS URL.' This clearly identifies the tool as the publishing action and distinguishes it from siblings like stop_remote, links, and protect_link, which handle lifecycle or listing rather than creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational context: pass content or content_base64, optionally request a name, and the artifact remains live until stop_remote is called. This signals when serve is appropriate versus teardown tools, though it does not explicitly enumerate exclusions or alternatives such as protect_link for protection workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_remoteStop remote (unpublish)ADestructiveIdempotentInspect
Unpublish a remote link, deleting its stored bytes immediately and returning the link to local residency.
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Label of the published (remote) link to unpublish. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds concrete behavioral detail beyond the annotations by specifying that stored bytes are deleted immediately and the link becomes local residency again. This complements the destructiveHint=true and idempotentHint=true annotations, giving the agent a clearer picture of consequences without contradicting any metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that front-loads the core action ('Unpublish a remote link') before explaining the immediate consequences. Every phrase adds value, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with strong annotations (destructive, idempotent), the description covers the key state change and effect. It does not describe the return value or response, but the absence of an output schema reduces that burden. Slight gap remains around what 'local residency' means in practice, but it is not critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for the single 'label' parameter, describing it as the label of the published remote link to unpublish. The tool description does not add further meaning about label format, validation, or default behavior, so it stays at the baseline for complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Unpublish') and clearly identifies the resource (a remote link), and goes further to state the precise effect: deleting stored bytes and returning to local residency. This distinguishes it from sibling tools like revoke_link or unprotect_link, which target different states or permissions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys when to use the tool: when a remote link needs to be unpublished and its remote bytes deleted. However, it does not explicitly state any exclusions or point to alternatives among the sibling tools (e.g., revoke_link, unprotect_link), leaving the choice of tool to inference rather than direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unprotect_linkUnprotect linkADestructiveInspect
Clear protection on an owned link, returning it to public access so anyone with the URL can view it. To keep the link protected but invalidate its current credentials, use revoke_link; to rotate credentials instead, use renew_link.
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Label of the link to unprotect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true and readOnlyHint=false, and the description adds meaningful behavioral context: the link becomes publicly accessible and the protection is removed. It also clarifies what each alternative does, increasing transparency beyond the annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the primary action, the resulting state, and the alternative tools without redundancy. The most important information is front-loaded, and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with destructiveHint=true, the description fully explains the effect and provides decision context via sibling references. No output schema is present, but for this simple action the description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single required parameter 'label' with 100% coverage. The description does not add additional parameter-level details, but the baseline of 3 applies since the schema fully covers the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Clear protection'), the resource ('an owned link'), and the resulting state ('public access so anyone with the URL can view it'). It also differentiates from sibling tools by explicitly naming revoke_link and renew_link as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives direct usage guidance: use this tool to make a link public, use revoke_link to keep it protected but invalidate credentials, and use renew_link to rotate credentials. This explicitly helps an agent choose among closely related sibling tools.
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.
2 tool updates
- Changed
protect_link3 fields changed- changed
Input schema / properties / label / descriptionPrevious value: -"Label of the link to protect (optional; defaults to first active link)."New value: +"Label of the link to protect." - changed
Input schema / properties / ttl / descriptionPrevious value: -"Optional TTL duration (e.g. 24h, 7d)."New value: +"Optional TTL duration (e.g. 24h, 7d); defaults to 24 hours." - changed
Input schema / requiredPrevious value: -[]New value: +[ + "label" +]
- Changed
renew_link1 field changed- changed
Input schema / properties / ttl / descriptionPrevious value: -"Optional updated TTL duration (e.g. 24h, 7d)."New value: +"Optional updated TTL duration (e.g. 24h, 7d); defaults to 24 hours."
8 tool updates
- First observed
account_status - First observed
links - First observed
protect_link - First observed
renew_link - First observed
revoke_link - First observed
serve - First observed
stop_remote - First observed
unprotect_link
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables 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.167 npm1MIT
- AlicenseCqualityAmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm49 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.