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,575토큰 (도구 정의)
~1.4 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.23%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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개