PubSpace

Publish HTML or markdown from your agent as a shareable link, with password or work-email walls.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
98%
命名品質
97%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,575Token(工具定義)
~1.4 KB典型回應大小
中等的注意力影響(128k 上下文的 1.23%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "mcp": {
      "url": "https://pubspace.ai/mcp"
    }
  }
}

遠端端點

https://pubspace.ai/mcpstreamable-http

它能做什麼

工具清單

工具(6)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟡publish_page(html, title, source_type, project)

Publish a new HTML (or Markdown) page to the maker's PubSpace space and get back a live, shareable URL to hand to the human. Pages are unlisted by default — indexed by search engines only if the maker turns that on later (Pro); anyone with the link can view. Use this only for a brand-new page; to change a page that already exists, call update_page so its URL stays the same (find the id with list_pages). Each call creates a page that counts toward the plan's live-page cap; at the cap the call fails with doc_limit_reached and, on the free plan, an upgrade link to relay to the human. Returns { url, id, mode, visibility, dashboardUrl }.

輸入結構描述

{
  "type": "object",
  "properties": {
    "html": {
      "type": "string",
      "description": "Full HTML document (or Markdown when source_type is \"markdown\"). Served byte-faithful apart from documented meta/bar injections."
    },
    "title": {
      "type": "string",
      "description": "Optional title (used in the dashboard and social cards)."
    },
    "source_type": {
      "type": "string",
      "enum": [
        "html",
        "markdown"
      ],
      "description": "Default \"html\"."
    },
    "project": {
      "type": "string",
      "description": "Optional: which body of work this page belongs to (e.g. \"Q3 board pack\"). Groups pages in the maker's library — reuse their existing project names from list_pages when one fits. (Renamed from `product` in v0.16.0; the old name is still accepted.)"
    }
  },
  "required": [
    "html"
  ]
}
🔴update_page(page_id, html, title, source_type, project, ...)

Replace the content of an existing page in place: the same URL serves the new content immediately, so links the human already shared keep working. Use this instead of publish_page whenever the page already exists. The previous version stays restorable from the dashboard for 7 days (Pro keeps full version history). Pass draft: true to stage the update instead: nothing changes for viewers until the maker reviews the previewUrl and presses "Sync to live"; use it when the human asked to see changes before they go out. Fails with page_not_found if the id is not a live or offline page in this space.

輸入結構描述

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "description": "The page id: the `id` field from publish_page or list_pages (also the last path segment of the page URL, …/docs/<page_id>). Only pages in the connected maker's space are visible."
    },
    "html": {
      "type": "string",
      "description": "The complete new document (not a diff). HTML, or Markdown when source_type is \"markdown\"."
    },
    "title": {
      "type": "string",
      "description": "Optional; omit to keep the existing title."
    },
    "source_type": {
      "type": "string",
      "enum": [
        "html",
        "markdown"
      ],
      "description": "Default \"html\"."
    },
    "project": {
      "type": "string",
      "description": "Optional; omit to keep the existing project."
    },
    "draft": {
      "type": "boolean",
      "description": "Default false (publishes live instantly). true = stage the update; relay the returned previewUrl so the human can review and press Sync. A new draft replaces any pending one."
    }
  },
  "required": [
    "page_id",
    "html"
  ]
}
🟢list_pages(q)

List every page in the maker's space, newest first, with no paging: { total, pages: [{ id, title, url, project, views, live, workEmailGated, hasDraft, createdAt, updatedAt }] }. Read-only. Use it to find a page_id before update_page / get_page / unpublish_page / delete_page, or to reuse an existing project name. Offline pages are included (live: false); deleted pages are not. Pass q to search instead of scanning the full list; use get_page when you need one page's HTML.

輸入結構描述

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Optional case-insensitive search over page titles and content. Omit to list everything."
    }
  }
}
🟢get_page(page_id, include_html)

Fetch one page by id: metadata always ({ id, title, url, project, views, live, workEmailGated, hasDraft, createdAt, updatedAt, visibility }), plus the stored HTML when include_html is true. Read-only. Use it to read a page before editing it with update_page; use list_pages to find ids or browse. Fails with page_not_found if the id is not in this space or the page was deleted.

輸入結構描述

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "description": "The page id: the `id` field from publish_page or list_pages (also the last path segment of the page URL, …/docs/<page_id>). Only pages in the connected maker's space are visible."
    },
    "include_html": {
      "type": "boolean",
      "description": "Default false. true adds `html`: the document exactly as stored (the source you or the maker published, before serve-time injections). Can be large; only ask for it when you need the content."
    }
  },
  "required": [
    "page_id"
  ]
}
🔴unpublish_page(page_id, restore)

Take a page offline without deleting it: its URL shows an "offline" notice to viewers, and the content, id, URL and view count are kept. Pass restore: true to put it back online at the same URL. Prefer this over delete_page when the human wants a page hidden or paused. Calling it twice is harmless. Returns { ok, id, live }; fails with page_not_found if the id is not in this space.

輸入結構描述

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "description": "The page id: the `id` field from publish_page or list_pages (also the last path segment of the page URL, …/docs/<page_id>). Only pages in the connected maker's space are visible."
    },
    "restore": {
      "type": "boolean",
      "description": "Default false (take offline). true = put the page back online."
    }
  },
  "required": [
    "page_id"
  ]
}
🔴delete_page(page_id)

Delete a page: its URL stops working at once. The maker gets only a brief undo in the dashboard, then it is purged for good (there is no restore tool). Only use it when the human asked for deletion; to hide a page reversibly, use unpublish_page instead. Returns { ok, id, deleted }; fails with page_not_found if the id is not in this space or is already deleted.

輸入結構描述

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "description": "The page id: the `id` field from publish_page or list_pages (also the last path segment of the page URL, …/docs/<page_id>). Only pages in the connected maker's space are visible."
    }
  },
  "required": [
    "page_id"
  ]
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本6 個工具