Skip to main content
Glama

@tempmd/mcp

tempmd-mcp MCP server

MCP server for temp.md — give agent-made artifacts one stable public link that updates in place.

Publish an HTML, Markdown, CSV, or Mermaid artifact and get a canonical URL like amber-hill-9eb6.temp.md. Push new versions behind the same URL — no re-sharing, ever. Temps expire intentionally when the work goes cold (7-day active window, resets on every update) and can be restored within 7 days of expiry.

Install

Remote — no install

claude mcp add --transport http tempmd https://api.temp.md/mcp

Remote MCP accepts inline UTF-8 or base64 files. Anonymous publishing needs no credential. To publish directly into an account and use account tools, configure the connection with Authorization: Bearer <tempmd_key_...>.

Local stdio — best for filesystem access and larger directories

claude mcp add tempmd -- npx -y @tempmd/mcp

Cursor / Windsurf / any MCP client — add to your MCP config:

{
  "mcpServers": {
    "tempmd": {
      "command": "npx",
      "args": ["-y", "@tempmd/mcp"]
    }
  }
}

tempmd-mcp remains available as a compatibility package with the same implementation and version.

No account or API key required — temp.md is anonymous-create-first. Claim a Temp later to keep it.

The remote transport is limited to 10 MiB and 20 inline files per bundle. The stdio package uses local paths and supports the full 50 MiB / 100-file bundle.

Related MCP server: sentou

Tools

Tool

Local stdio

Remote

What it does

publish_temp

Publish a new artifact and get a stable public URL

update_temp

Push a new version behind the same URL

get_temp_status

Check lifecycle and restore eligibility

restore_temp

Bring a recently expired Temp back at the same URL

snapshot_temp

Freeze the current version as a fixed reference

set_comments

Toggle pinned visitor comments

list_temps

List local project records or account-owned Temps

recover_update_token

Rotate and recover a lost scoped update token

publish_temp and update_temp accept spa_mode: true for client-routed single-page apps. Leave it off for static sites so missing assets return 404. Uploads are capped at 10 MB per file, 50 MB per bundle, and 100 files; publish and update limits are 60/hour/IP and 120/hour/Temp/IP respectively.

How credentials work

publish_temp saves a record (Temp ID, URL, update token, expiry) to a .tempmd file in the project root. Every other tool reads that file automatically, so an agent can update the same Temp across sessions without you managing tokens. Tokens can also be passed explicitly via update_token.

Add .tempmd to .gitignore if the update token shouldn't be shared with everyone who can read the repo.

Configuration

Env var

Default

Purpose

TEMPMD_API_URL

https://api.temp.md

Point at a different API (e.g. local dev http://localhost:8787)

Development

This repo mirrors the packages/mcp package from the temp.md monorepo, where development happens. Issues and feature requests are welcome here.

Semantics agents should preserve

  • The canonical URL is the only link to share — never surface version-specific links.

  • A failed update never breaks the live link; the last successful version keeps serving.

  • Prefer update_temp over publish_temp when the project already has a Temp for the artifact.

Available Tools

7 tools
get_temp_statusGet Temp statusAInspect

Check a Temp's lifecycle: active/cooling/expired, when it expires, and whether it can be restored. Reads credentials from the project's .tempmd file when omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
temp_idNo
project_dirNoProject root holding the .tempmd records file. Defaults to the current working directory.
update_tokenNo

TDQS

A4.2/5.0
Behavior4/5

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

Describes read-only nature (checking lifecycle) and credential handling from .tempmd file. Without annotations, it adequately discloses key behavioral traits, though could mention error handling.

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 precise sentences: first lists output details, second covers credential behavior. No redundant words.

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?

Provides specific return values (status, expiry, restorability) and credential behavior. Lacks output schema but sufficient for a status check. Minor omission of error scenarios.

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?

Adds meaning to project_dir by explaining fallback, but temp_id and update_token lack any description. With only 33% schema coverage, more parameter details would help.

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?

Clearly states the tool checks a Temp's lifecycle status (active/cooling/expired) and whether it can be restored, distinguishing it from siblings like list_temps or restore_temp.

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?

Indicates credential fallback behavior when project_dir is omitted, offering implicit usage guidance. Lacks explicit when-to-use vs. alternatives, but context is clear.

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

list_tempsList this project's TempsAInspect

List the Temps recorded in this project's .tempmd file (local records, no network call).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_dirNoProject root holding the .tempmd records file. Defaults to the current working directory.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description fully discloses the tool is a local read-only operation with no network call. It does not cover error handling or file existence, but for a simple list tool this is sufficient.

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?

The description is a single sentence that is clear and free of redundancy. Every word adds value, making it optimally concise.

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?

Given the lack of output schema, the description could detail the return format, but for a straightforward list tool it is largely complete. The mention of local records and no network call provides context for usage among many siblings.

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

Parameters4/5

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

Schema coverage is 100% with a description for the single parameter. The description adds context by mentioning 'this project's .tempmd file', clarifying the parameter's purpose beyond the schema.

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 clearly states the tool lists Temps from a local .tempmd file, specifying it involves no network call. This distinguishes it from siblings like publish_temp which likely involve remote operations.

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 for local reads without network, but does not explicitly state when not to use or name alternative tools for different scenarios. Sibling tool names hint at other operations but no direct guidance.

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

publish_tempPublish a new TempAInspect

Publish an artifact (HTML, Markdown, CSV, or Mermaid) to temp.md and get a stable public URL. Use only for a NEW artifact — if this project already has a Temp for it (check .tempmd), use update_temp to keep the same link. The record is saved to .tempmd automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesAbsolute path to the main artifact file (.html, .md, .csv, .mmd)
titleNoDisplay title (defaults to the HTML <title> if present)
project_dirNoProject root holding the .tempmd records file. Defaults to the current working directory.
additional_filesNoExtra files to publish alongside the main file (scripts, styles, images)

TDQS

A4.6/5.0
Behavior4/5

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

Discloses key behaviors: publishes to temp.md, returns a stable public URL, automatically saves to .tempmd. Lacks details on permanence of URL or overwrite behavior, but for a new artifact tool, these are secondary.

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 that front-load the core functionality and supported types, then deliver usage guidelines. No filler or redundancy.

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?

Covers purpose, supported types, when-to-use, alternative, and record persistence. With no output schema, could briefly mention what the return value (URL) looks like, but 'stable public URL' is sufficient.

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

Parameters4/5

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

Schema provides 100% coverage with good parameter descriptions. The description adds value by linking parameters to the .tempmd record and the new-artifact context, but does not repeat schema info.

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?

Clearly states the verb 'publish', resource 'artifact to temp.md', and supported formats (HTML, Markdown, CSV, Mermaid). Distinguishes from sibling 'update_temp' explicitly, making its scope unambiguous.

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?

Explicitly says 'Use only for a NEW artifact' and provides a condition (check .tempmd) and alternative tool (update_temp) for existing temps. Guides the agent on correct invocation context.

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

restore_tempRestore an expired TempAInspect

Reactivate a recently expired Temp — the same canonical URL comes back to life. Only works within 7 days of expiry. Reads credentials from .tempmd when omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
temp_idNo
project_dirNoProject root holding the .tempmd records file. Defaults to the current working directory.
update_tokenNo

TDQS

A3.6/5.0
Behavior3/5

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

Discloses key behavioral traits: reactivation with same URL, time limit, and credential fallback. However, it omits details on side effects (e.g., overwriting), error conditions, and safety implications. Without annotations, this is partially adequate.

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 with no wasted words. Front-loaded with the main action and immediately follows with constraints and behavior. Every part earns its place.

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

Completeness2/5

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

Despite clarity on core function, the description lacks details on return value, error handling (e.g., expiry beyond 7 days), and full parameter behavior. Given no annotations or output schema, the tool is not fully specified for safe invocation without additional probing.

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 low (33%) with only project_dir described. The description adds meaning by noting that credentials are read from .tempmd when omitted, implying optionality for temp_id and update_token. Still, temp_id and update_token remain undocumented in both schema and description.

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 clearly states the tool reactivates an expired Temp with the same canonical URL, specifying the constraint of 7-day expiry window and credential fallback. This distinguishes it from siblings like publish_temp (create new) or update_temp (modify existing).

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?

Describes when to use (within 7 days of expiry) but does not explicitly state when not to use or provide alternatives. Implied from sibling names but lacks direct guidance for choosing between restore and publish/update.

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

set_commentsEnable or disable commentsBInspect

Toggle pinned visitor comments (Pindrop) on a Temp's page. Reads credentials from the project's .tempmd file when omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYestrue to enable comments, false to disable
temp_idNo
project_dirNoProject root holding the .tempmd records file. Defaults to the current working directory.
update_tokenNo

TDQS

B3.2/5.0
Behavior3/5

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

Reveals credential reading behavior from .tempmd file, which is helpful. However, lacks details on idempotency, error states, or impact on existing comments.

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, front-loaded with the main action, no wasted words.

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

Completeness2/5

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

Description omits return value, error scenarios, and does not fully explain all parameters. Lacks completeness for a mutation tool without output schema.

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?

The description indirectly addresses project_dir and update_token by mentioning credential reading from .tempmd when omitted. However, temp_id is not described in schema or description, and schema coverage is only 50%. Description adds moderate value.

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?

Clearly states verb 'Toggle' and resource 'pinned visitor comments (Pindrop) on a Temp's page'. However, it does not explicitly differentiate from siblings like update_temp which might also modify a Temp. But the focus on comments is distinct enough.

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

Usage Guidelines2/5

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

No explicit usage guidelines. The description does not indicate when to use this tool over sibling tools, nor does it mention prerequisites or scenarios.

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

snapshot_tempFreeze a snapshotAInspect

Freeze the current version of a Temp as a fixed reference with its own URL — for sign-offs and 'approve exactly this' moments. The canonical link keeps serving the latest version; share the snapshot URL only when exactness matters. Reads credentials from the project's .tempmd file when omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoOptional label for the snapshot, e.g. 'client sign-off v2'
temp_idNo
project_dirNoProject root holding the .tempmd records file. Defaults to the current working directory.
update_tokenNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description covers key behavioral traits: freezing the current version, creating a unique URL, and reading credentials from .tempmd. However, it omits whether the operation is destructive, idempotent, or has authentication requirements beyond credential file.

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?

The description is two sentences, front-loaded with purpose, and includes relevant nuance. Every sentence adds value without redundancy.

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

Completeness2/5

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

Given the tool has 4 parameters, no output schema, and no annotations, the description covers high-level purpose but lacks parameter explanations, error handling, return details, and prerequisites, leaving significant gaps.

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

Parameters2/5

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

Schema description coverage is 50%, covering only label and project_dir. The description adds no parameter-specific information; the mention of .tempmd relates to credential handling but not directly to parameter semantics. The missing temp_id and update_token remain undescribed.

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 clearly states the tool freezes the current Temp version, creates a fixed URL, and is intended for sign-offs and exactness. It distinguishes from siblings like publish_temp and update_temp.

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?

The description specifies when to use the snapshot (for sign-offs, where exactness matters) and contrasts with the canonical link serving the latest version. It also notes credential handling but lacks explicit not-to-use scenarios.

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

update_tempUpdate an existing TempAInspect

Push a new version of an artifact behind the same temp.md URL — no re-sharing needed. Resets the 7-day active window. Reads temp_id and update_token from the project's .tempmd file when omitted. If the update fails, the previous version stays live.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesAbsolute path to the updated main artifact file
titleNo
temp_idNoTemp ID (omit to use the project's .tempmd record)
project_dirNoProject root holding the .tempmd records file. Defaults to the current working directory.
update_tokenNoUpdate token (omit to use the project's .tempmd record)
additional_filesNoExtra files to publish alongside the main file (scripts, styles, images)

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavioral traits: resets 7-day window, reads credentials from file when omitted, and preserves previous version on failure. This is comprehensive for a mutation tool.

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?

Four sentences, no redundancy, front-loaded with core purpose. Every sentence adds value.

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?

Given no output schema, the description covers key behaviors and edge cases but could mention return value or success indication for full completeness.

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

Parameters4/5

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

Schema coverage is high (83%), and the description adds meaningful context about omitting temp_id and update_token to read from .tempmd file, going beyond the schema descriptions.

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 clearly states it pushes a new version of an artifact behind the same URL without needing re-sharing, distinguishing it from sibling tools like publish_temp which likely creates new temps.

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?

The description explains the tool updates an existing temp and mentions fallback behavior from .tempmd file, but does not explicitly contrast with siblings like restore_temp or list_temps for when not to use.

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. Dates show when Glama detected each change.

  1. 7 tool updatesv0.2.0
    • First observedget_temp_status
    • First observedlist_temps
    • First observedpublish_temp
    • First observedrestore_temp
    • First observedset_comments
    • First observedsnapshot_temp
    • First observedupdate_temp

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct operation: lifecycle check, local listing, publishing new, restoring expired, toggling comments, freezing snapshot, and updating existing. No functional overlap; clear boundaries.

Naming Consistency5/5

All tools follow the snake_case verb_noun pattern (e.g., get_temp_status, publish_temp, snapshot_temp). No deviations or mixed conventions.

Tool Count5/5

Seven tools cover the full lifecycle of temporary artifacts without bloat. The count feels right for the domain—neither too sparse nor excessive.

Completeness4/5

Core CRUD-like operations are covered (create via publish, read via get_status/list, update via update_temp, plus restore and snapshot). A delete tool is missing, but the domain may intentionally avoid deletion (temps expire naturally). Minor gap.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables publishing and updating Claude artifacts or HTML to private, access-controlled links directly from Claude.
    1
    AGPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    Publish HTML or markdown artifacts (reports, dashboards, demos) as instant shareable links with TTL expiry, social preview cards, and optional password protection. Works with the hosted service or a self-hosted instance.
    1
    23
    13
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tempmd/tempmd-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server