# Docmino

> Create, edit, organize, and share interactive guides, lessons, forms, and client plans in Docmino.

- name: io.github.docmino/docmino
- version: 0.1.0
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.docmino%2Fdocmino
- tools: https://api.protogrid.dev/v1/servers/io.github.docmino%2Fdocmino/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "docmino": {
      "type": "http",
      "url": "https://mcp.docmino.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 45
- drivers: +website +reachable +uptime-100% +updated-12d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 26 of 26 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 7,741 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 25 tool changes in 30 days
- fail `stability.rug_pull`: 23 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 26, about 7,741 tokens to load them all
- tool set hash: fec9f5e1a8665c9ae6c7980e70428842
- tools last changed: 2026-10-29T22:23:10.957Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.docmino/docmino.svg)](https://protogrid.dev/servers/io.github.docmino/docmino)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-29 `remove_share` changed (description, inputSchema) **meaning changed**
  - before: Revoke a direct access grant or pending invitation.
  - after: Revoke a direct document/project access grant or pending invitation using its share ID from list_shares. Requires sharing access and returns the deleted share ID. Access inherited through another grant or project may remain; this does not remove organization membership.
- 2026-10-29 `update_share` changed (description, inputSchema) **meaning changed**
  - before: Change an existing access grant's role.
  - after: Change the ADMIN, EDITOR, or VIEWER role of a direct access grant or pending invitation by share ID from list_shares. Requires sharing access and returns the updated share metadata. This can expand or reduce recipient access; use invite_share for a new recipient and remove_share to revoke a grant.
- 2026-10-29 `invite_share` changed (description, inputSchema) **meaning changed**
  - before: Grant document or project access to one user, email, or phone recipient. Invitations send notifications.
  - after: Grant document or project access to one recipient identified by exactly one userId, email, or phone value. Requires sharing access and sends invitation notifications. Returns the share ID, recipient, role, and status. Use update_share for an existing grant; this does not add organization members.
- 2026-10-29 `list_shares` changed (description, inputSchema) **meaning changed**
  - before: List direct document or project shares and pending invitations.
  - after: List a page of direct access grants and pending invitations for a document or project. target selects which kind of ID to supply. Returns share IDs, recipient details, roles, statuses, deletion permissions, and pageInfo. Use these share IDs with update_share or remove_share; this is not organization membership management.
- 2026-10-29 `delete_project` changed (description, inputSchema) **meaning changed**
  - before: Delete a project. Documents are released from the project and retained; their inherited access can change.
  - after: Delete a project by ID while retaining its documents and releasing them from the project. Inherited document access can change. Requires deletion, write, and sharing access and returns the deleted project ID; this does not delete the retained documents.
- 2026-10-29 `move_project` changed (description, inputSchema) **meaning changed**
  - before: Move a project and its documents to another workspace.
  - after: Move a project and its documents to the workspace identified by workspaceId from list_workspaces. Requires write and sharing access and can change inherited access to the project’s documents. Returns the updated project metadata and permissions. Use update_project for name, description, or instruction changes.
- 2026-10-29 `update_project` changed (description, inputSchema) **meaning changed**
  - before: Update a project's name, description, and instructions.
  - after: Update only the supplied name, description, or instructions of an existing project by ID; omitted fields are preserved. Requires write access and returns the updated project metadata and permissions. Use move_project to change its workspace or invite_share to grant access.
- 2026-10-29 `create_project` changed (description, inputSchema) **meaning changed**
  - before: Create a project in your personal or organization workspace.
  - after: Create a project to organize documents in your personal or organization workspace. Returns its ID, metadata, instructions, and permissions; omit workspaceId for your account. Does not create documents or invite members. Use create_document with the returned projectId to add a document.
- 2026-10-29 `delete_document` changed (description, inputSchema) **meaning changed**
  - before: Delete a document and its pages.
  - after: Delete a document and its pages by document ID, requiring deletion access. Returns the deleted document ID; it does not return a content backup. Use archive_document when the intent is to retain the content with archived status.
- 2026-10-29 `archive_document` changed (description, inputSchema) **meaning changed**
  - before: Archive a document using its current revision.
  - after: Set a document’s status to ARCHIVED using its current expectedRevision. This changes lifecycle status without deleting its content or pages and requires write access. Returns the saved snapshot and revision, or an oversized-save receipt. Use delete_document only when deletion is intended.

Full history: https://api.protogrid.dev/v1/servers/io.github.docmino%2Fdocmino/changes

## Remotes

- https://mcp.docmino.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (26)

- `archive_document`: Set a document’s status to ARCHIVED using its current expectedRevision. This changes lifecycle status without deleting its content or pages and requires write access. Returns the saved snapshot and revision, or an oversized-save receipt. Use delete_document only when deletion is intended.
- `create_document`: Creates a Docmino document with MDX content and an optional nested page tree, returning its ID, canonical link, and metadata. Omit workspaceId for your account and projectId for an ungrouped document. It does not publish or invite recipients; use publish_document or invite_share separately. Supported interactive component syntax and examples are available from get_authoring_guide.
- `create_project`: Create a project to organize documents in your personal or organization workspace. Returns its ID, metadata, instructions, and permissions; omit workspaceId for your account. Does not create documents or invite members. Use create_document with the returned projectId to add a document.
- `delete_document`: Delete a document and its pages by document ID, requiring deletion access. Returns the deleted document ID; it does not return a content backup. Use archive_document when the intent is to retain the content with archived status.
- `delete_project`: Delete a project by ID while retaining its documents and releasing them from the project. Inherited document access can change. Requires deletion, write, and sharing access and returns the deleted project ID; this does not delete the retained documents.
- `fetch`: Retrieve a document by ID as a text result containing its serialized document snapshot, canonical link, and revision. For large documents, metadata.complete is false and text provides retrieval instructions instead of content; use list_pages and read_page. Use get_document for a structured editable snapshot.
- `get_authoring_guide`: Returns Docmino's MDX authoring documentation for document and page content, including supported interactive component props and working examples. The default guide covers common components; a component selection returns focused schemas and examples with companion components included automatically.
- `get_document`: Read a document by ID, returning its structured MDX content, full nested page tree, metadata, permissions, canonical link, and current revision. Use this before update_document and preserve pages you are not changing. For oversized results use list_pages and read_page; use open_document to display the embedded editor.
- `get_project`: Read a project’s metadata, instructions, edit/manage permissions, and canonical link by project ID. Does not include its documents; use list_project_documents for those. Fails if the project is missing or inaccessible.
- `invite_share`: Grant document or project access to one recipient identified by exactly one userId, email, or phone value. Requires sharing access and sends invitation notifications. Returns the share ID, recipient, role, and status. Use update_share for an existing grant; this does not add organization members.
- `list_documents`: List or search documents accessible in a workspace, returning metadata, canonical links, permissions, and pageInfo rather than page content. Omit workspaceId for your personal account; use an ID from list_workspaces for an organization. Use get_document to read a result and offset/limit to paginate.
- `list_pages`: List document page IDs, names, nesting, and content lengths without page bodies. Returns the current revision, rootContentLength, totalCount, and hasMore. Use read_page for root or child content; pass this revision as expectedRevision across subsequent reads to detect concurrent edits.
- `list_project_documents`: List a page of accessible documents in a project by project ID. Returns document metadata, canonical links, permissions, and pageInfo, without page content. Use get_document for a document snapshot and offset/limit for the next page.
- `list_projects`: List accessible projects, including shared projects, in a personal or organization workspace. Returns project IDs, names, descriptions, instructions, permissions, and pageInfo; omit workspaceId for your account. Use list_project_documents to browse a project’s documents.
- `list_shares`: List a page of direct access grants and pending invitations for a document or project. target selects which kind of ID to supply. Returns share IDs, recipient details, roles, statuses, deletion permissions, and pageInfo. Use these share IDs with update_share or remove_share; this is not organization membership management.
- `list_workspaces`: List your personal account and a page of organization workspaces, returning their IDs and names. Use these IDs as workspaceId in document and project tools. Pagination applies to organizations; this tool does not create workspaces or manage membership.
- `move_document`: Move a document to a project, or pass projectId:null to remove its project association. Optional workspaceId changes its owning workspace. Requires the current expectedRevision plus write and sharing access; moving can change inherited access. Returns the saved snapshot or an oversized-save receipt. Use update_document for content changes.
- `move_project`: Move a project and its documents to the workspace identified by workspaceId from list_workspaces. Requires write and sharing access and can change inherited access to the project’s documents. Returns the updated project metadata and permissions. Use update_project for name, description, or instruction changes.
- `open_document`: Display a document by ID in the embedded Docmino editor on clients that support MCP Apps. Returns the same document snapshot, revision, permissions, and canonical link as get_document. Opening does not save changes; editing requires write access and an explicit Save. Use get_document for programmatic reading or update_document to save supplied changes.
- `publish_document`: Set a document to DRAFT or PUBLISHED using its current expectedRevision. accessScope controls RESTRICTED versus ANYONE access, and listedPublicly controls public listing; omitted settings are preserved. Requires write and sharing access and can expose content publicly. Returns the saved snapshot or oversized-save receipt; use invite_share for a specific recipient.
- `read_page`: Read a chunk of raw MDX from a document’s root or a child page. Omit pageId for root content; obtain child IDs from list_pages. Returns revision, totalLength, and nextOffset; continue at nextOffset until null and reuse expectedRevision across chunks. A revision conflict requires restarting retrieval.
- `remove_share`: Revoke a direct document/project access grant or pending invitation using its share ID from list_shares. Requires sharing access and returns the deleted share ID. Access inherited through another grant or project may remain; this does not remove organization membership.
- `search`: Search document names and summaries accessible to your connected Docmino account. Returns up to 20 IDs, titles, canonical links, and hasMore; it does not search full page content. Use list_documents for workspace filters or pagination, then get_document for editable content.
- `update_document`: Updates supplied document fields using expectedRevision for conflict detection; omitted fields are preserved. A supplied pages array is authoritative: existing pages absent from it are deleted and require mcp:delete. Returns the saved snapshot and revision, or a saved receipt with complete:false for oversized content. Supported interactive component syntax and examples are available from get_authoring_guide.
- `update_project`: Update only the supplied name, description, or instructions of an existing project by ID; omitted fields are preserved. Requires write access and returns the updated project metadata and permissions. Use move_project to change its workspace or invite_share to grant access.
- `update_share`: Change the ADMIN, EDITOR, or VIEWER role of a direct access grant or pending invitation by share ID from list_shares. Requires sharing access and returns the updated share metadata. This can expand or reduce recipient access; use invite_share for a new recipient and remove_share to revoke a grant.
