# io.github.zyli5313/dochost-mcp (remote · dochost.io)

Publish Markdown or HTML to a shareable link from your AI assistant. OAuth, no API keys.

- Trust score: 76/100 (medium)
- Change this week: +8
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `dochost.io`: 76/100 (this document), [markdown](https://verifymcp.io/servers/zyli5313-dochost-mcp/api-mcp.md), [page](https://verifymcp.io/servers/zyli5313-dochost-mcp/api-mcp)

## Channel facts

- Endpoint: `https://dochost.io/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 89/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 73/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 446 tokens (~63/item across 7 items; 6 tools + 1 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### Claude

```bash
claude mcp add --transport http zyli5313-dochost-mcp https://dochost.io/api/mcp
```

### Codex

```toml
[mcp_servers.zyli5313-dochost-mcp]
url = "https://dochost.io/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zyli5313-dochost-mcp": {
      "type": "remote",
      "url": "https://dochost.io/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add zyli5313-dochost-mcp --url https://dochost.io/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  zyli5313-dochost-mcp:
    url: "https://dochost.io/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "zyli5313-dochost-mcp": {
      "type": "http",
      "url": "https://dochost.io/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 75, +6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 69, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 68, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 67)

First indexed and scored.

## MCP tools (6)

### `publish` (~113 tokens)

Publish to dochost

Publish Markdown or HTML as a hosted dochost page and get a shareable URL. Respects your plan: link lifetime, password protection, custom slug, and branding all follow your account entitlements. Paid plans publish without dochost branding by default — pass noBranding: false to keep the mark.

Input parameters:

- `body` (string, required)
- `customSlug` (string)
- `format` (string)
- `noBranding` (boolean)
- `password` (string)
- `public` (boolean)

Output parameters:

- `expiresAt` (string|null): ISO timestamp, or null when the link is permanent.
- `format` (string)
- `iterateHint` (string): How to revise this page later. Follow it instead of publishing a second time.
- `note` (string): Free-tier only: expiry warning + upgrade link. Relay this to the user.
- `permanent` (boolean)
- `slug` (string)
- `url` (string): The shareable dochost.co page URL.

### `list_my_pages` (~47 tokens)

List my dochost pages

List the pages you have published to dochost, newest first. Paginated; returns compact records (no page bodies).

Input parameters:

- `limit` (integer)
- `offset` (integer)

Output parameters:

- `hasMore` (boolean)
- `limit` (integer)
- `offset` (integer)
- `pages` (array)
- `total` (integer)

### `get_account` (~42 tokens)

Get my dochost account

Get your plan, page-quota usage, and entitlement flags (size cap, custom slug, password, branding). Call before publishing so you know your limits up front.

Output parameters:

- `analytics` (string)
- `customSlug` (boolean)
- `noBranding` (boolean)
- `ok` (boolean)
- `pageQuota` (integer|null)
- `pagesRemaining` (integer|null)
- `pagesUsed` (integer)
- `password` (boolean)
- `permanentLinks` (boolean)
- `plan` (string)
- `sizeCapMb` (integer)

### `get_page` (~53 tokens)

Get one of my dochost pages

Get one of your pages by slug: title, format, status, view/like counts, expiry, and whether it is password-protected. Never returns the page body or the password.

Input parameters:

- `slug` (string, required)

Output parameters:

- `createdAt` (string)
- `expiresAt` (string|null)
- `format` (string)
- `hasPassword` (boolean)
- `likes` (integer)
- `ok` (boolean)
- `permanent` (boolean)
- `slug` (string)
- `status` (string)
- `title` (string|null)
- `url` (string)
- `views` (integer)

### `update_page` (~113 tokens)

Update a dochost page

Replace the content of one of your pages in place. The URL, view/like counts, and expiry stay the same; only the body, format, and title change. Resending identical content is a no-op. Prefer this over publishing again whenever the user is revising something you already published for them — a second publish creates a second link and strands the one they already shared.

Input parameters:

- `body` (string, required)
- `format` (string)
- `slug` (string, required)
- `title` (string)

Output parameters:

- `format` (string)
- `ok` (boolean)
- `slug` (string)
- `title` (string|null)
- `version` (integer)

### `delete_page` (~49 tokens)

Delete a dochost page

Permanently delete one of your pages by slug. The link stops working immediately and the slug is freed. Deleting an already-deleted page is a safe no-op.

Input parameters:

- `slug` (string, required)

Output parameters:

- `alreadyDeleted` (boolean)
- `ok` (boolean)
- `slug` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/zyli5313-dochost-mcp/api-mcp#diagnostics

## Score history

- 2026-08-03: 76
- 2026-08-02: 76
- 2026-08-01: 75
- 2026-07-31: 75
- 2026-07-30: 69
- 2026-07-29: 69
- 2026-07-28: 68
- 2026-07-27: 68
- 2026-07-26: 67

## Links

- Remote endpoint: https://dochost.io/api/mcp
- Repository: https://github.com/zyli5313/dochost-mcp
- Website: https://dochost.io/
- Changelog RSS feed: https://verifymcp.io/servers/zyli5313-dochost-mcp/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/zyli5313-dochost-mcp/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/zyli5313-dochost-mcp/api-mcp
