tempmd-mcp
The tempmd-mcp server lets you publish HTML, Markdown, CSV, or Mermaid artifacts to stable public URLs on temp.md and manage their full lifecycle — no account required.
Publish a new artifact (
publish_temp): Upload a file and receive a stable, shareable URL (e.g.amber-hill-9eb6.temp.md); credentials are auto-saved to a local.tempmdfile. Extra files (scripts, styles, images) can be bundled with the main artifact.Update an existing artifact (
update_temp): Push a new version behind the same URL without re-sharing; resets the 7-day active window.Check artifact status (
get_temp_status): Inspect a Temp's lifecycle state (active, cooling, or expired), its expiry time, and restore eligibility.Restore an expired artifact (
restore_temp): Reactivate a recently expired Temp at its original URL within 7 days of expiry.Freeze a snapshot (
snapshot_temp): Lock the current version as a fixed-reference snapshot with its own URL for sign-offs or approvals, while the canonical link continues serving the latest version.Toggle comments (
set_comments): Enable or disable visitor comments on a published Temp's page.List project Temps (
list_temps): View all Temp records (IDs, URLs, tokens, expiry) stored in the local.tempmdfile without a network call.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tempmd-mcppublish this HTML page to temp.md"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@tempmd/mcp
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/mcpRemote 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/mcpCursor / 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 a new artifact and get a stable public URL |
| ✓ | ✓ | Push a new version behind the same URL |
| ✓ | ✓ | Check lifecycle and restore eligibility |
| ✓ | ✓ | Bring a recently expired Temp back at the same URL |
| ✓ | ✓ | Freeze the current version as a fixed reference |
| ✓ | ✓ | Toggle pinned visitor comments |
| ✓ | ✓ | List local project records or account-owned Temps |
| — | ✓ | 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 |
|
| Point at a different API (e.g. local dev |
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_tempoverpublish_tempwhen the project already has a Temp for the artifact.
Available Tools
7 toolsget_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.
| Name | Required | Description | Default |
|---|---|---|---|
| temp_id | No | ||
| project_dir | No | Project root holding the .tempmd records file. Defaults to the current working directory. | |
| update_token | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| project_dir | No | Project root holding the .tempmd records file. Defaults to the current working directory. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Absolute path to the main artifact file (.html, .md, .csv, .mmd) | |
| title | No | Display title (defaults to the HTML <title> if present) | |
| project_dir | No | Project root holding the .tempmd records file. Defaults to the current working directory. | |
| additional_files | No | Extra files to publish alongside the main file (scripts, styles, images) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| temp_id | No | ||
| project_dir | No | Project root holding the .tempmd records file. Defaults to the current working directory. | |
| update_token | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | true to enable comments, false to disable | |
| temp_id | No | ||
| project_dir | No | Project root holding the .tempmd records file. Defaults to the current working directory. | |
| update_token | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label for the snapshot, e.g. 'client sign-off v2' | |
| temp_id | No | ||
| project_dir | No | Project root holding the .tempmd records file. Defaults to the current working directory. | |
| update_token | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Absolute path to the updated main artifact file | |
| title | No | ||
| temp_id | No | Temp ID (omit to use the project's .tempmd record) | |
| project_dir | No | Project root holding the .tempmd records file. Defaults to the current working directory. | |
| update_token | No | Update token (omit to use the project's .tempmd record) | |
| additional_files | No | Extra files to publish alongside the main file (scripts, styles, images) |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.2.0- First observed
get_temp_status - First observed
list_temps - First observed
publish_temp - First observed
restore_temp - First observed
set_comments - First observed
snapshot_temp - First observed
update_temp
TDQS
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.
All tools follow the snake_case verb_noun pattern (e.g., get_temp_status, publish_temp, snapshot_temp). No deviations or mixed conventions.
Seven tools cover the full lifecycle of temporary artifacts without bloat. The count feels right for the domain—neither too sparse nor excessive.
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
Related MCP Connectors
Publish and manage secure HTML links: PII/secret scanning, batch create, patch edits, analytics.
Publish HTML, files, or a URL to a permanent public URL, then update it — from any MCP agent.
Publish files and folders to the web instantly: permanent URLs, immutable versions, claim links.
Get share links, publish and manage websites, artifacts and agents. No account needed.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables publishing and managing HTML artifacts on stacktr.ee directly from MCP clients like Claude Desktop.339MIT
- AlicenseNot gradedqualityBmaintenanceEnables publishing and updating Claude artifacts or HTML to private, access-controlled links directly from Claude.1AGPL 3.0
- FlicenseNot gradedqualityCmaintenanceEnables publishing, updating, and sharing HTML artifacts with strict security isolation (origin separation, CSP, API keys) via MCP tools.1-
- AlicenseAqualityAmaintenancePublish 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.12313MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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