# agentdocs-mcp [Health: Active]

**Category:** 🧠 Knowledge & Memory  
**Repository:** https://github.com/hoornet/agentdocs-mcp  
**GitHub Stars:** 1  
**npm Downloads (last month):** 1331  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/agentdocs-mcp

## Description
AgentDocs (agentdocs.eu) MCP: read, search, write, comment, share & attach images to Markdown docs.

## Tools
Capabilities this server exposes over MCP:

- **whoami** — Identify the authenticated AgentDocs user and credential scope. Call this first: a space-scoped credential is locked to a single space, which becomes the default for page tools.
- **list_workspaces** — List all AgentDocs workspaces the user can access. Workspaces contain spaces; spaces contain pages.
- **list_spaces** — List the spaces in a workspace.
- **search_docs** — Full-text (keyword) search across all pages in a workspace. Matches in the returned content_preview are delimited with << >> markers. For natural-language questions, prefer semantic_search.
- **semantic_search** — Search a workspace by meaning, not keywords — ask a natural-language question (e.g. "how do we handle billing retries?") and get the most relevant pages ranked by similarity. Pages are embedded automatically after each save. Requires a Pro workspace; the response 'mode' is "semantic" when active, or "fulltext_fallback" if semantic search is not configured on the instance (results are still returned).
- **list_pages** — List the pages in a space as a tree (content omitted — use get_page to read a page). Pages with a discussion carry comment_count / unresolved_comment_count / last_comment_at — comments do NOT bump a page's updated_at, so check last_comment_at to spot new replies. With a space-scoped token, omit "space" to use the token's space.
- **get_page** — Read a page including its full Markdown content and current version number. The page carries comment_count / unresolved_comment_count / last_comment_at — if comment_count > 0 there is a discussion; set include_comments to read it. include_children returns the page's child pages (titles + slugs, no content) — useful for 'folder' pages whose own content is empty but which organise sub-pages. include_images returns any images embedded in the page as viewable image blocks, so you can actually SEE a screenshot the page references instead of only its URL.
- **create_page** — Create a Markdown page in a space. The slug is derived from the title unless given. With a space-scoped token, omit "space" to use the token's space.
- **update_page** — Update a page's title and/or content. Every update creates a new version (old versions stay restorable). Pass expected_version to fail instead of overwriting concurrent edits.
- **append_to_page** — Append Markdown to the end of an existing page (read-modify-write; creates a new version). Ideal for logs, reports, and running notes.
- **delete_page** — Permanently delete a page. WARNING: deletion cascades to all child pages. There is no undo via the API.
- **import_markdown** — Import a folder of Markdown files and let the folder structure become the page hierarchy. Each file is { path, content } where path is a relative file path like "guides/setup.md". Folders become parent pages; an index.md or README.md inside a folder supplies that folder page's content; titles come from the first # H1, falling back to the file name. Ideal for an Obsidian vault, a Notion markdown export, or a repo's docs/ folder. Up to 500 files per call. IDEMPOTENT: pages are matched by source path, so re-running an import — or chunking a large vault across several calls — reuses existing pages instead of creating duplicates (response reports created/reused/updated counts). By default existing pages keep their content; set overwrite_existing to re-sync content from the files. Use parent_page to nest the whole import under an existing page. Use bulk_create_pages instead when you want to specify the page tree explicitly. With a space-scoped token, omit "space" to use the token's space.
- **bulk_create_pages** — Create up to 500 pages in one atomic call (all succeed or all fail) with an explicitly specified structure (titles, slugs, parent_page_id). To import a folder of Markdown files and derive the hierarchy from file paths, use import_markdown instead. With a space-scoped token, omit "space" to use the token's space.
- **share_page** — Create a public magic link for a page — anyone with the link can read it without logging in. Returns a web URL and a raw-Markdown URL (the raw one is ideal for other agents).
- **list_comments** — List the threaded comments on a page, returning each comment's id, content, author and parent. Use this to find a comment's id before update_comment / delete_comment. (get_page with include_comments returns the same thread alongside the page content.)
- **add_comment** — Post a comment on a page. Set parent_comment_id to reply within an existing thread. The returned 'mentions' array echoes @name tokens parsed from the body — it is informational only; posting a comment does NOT currently notify the mentioned user.
- **update_comment** — Edit a comment's body and/or mark its thread resolved. Only the comment's author (or an admin) may update it. Provide at least one of content / resolved.
- **delete_comment** — Permanently delete a comment. Only the comment's author (or an admin) may delete it. There is no undo via the API.
- **upload_image** — Attach an image to a space and get back the Markdown to embed it in a page. Use this to put screenshots and diagrams into the pages you write, so whoever reads the page later — human or agent — can see what you saw. ACCEPTS: PNG, JPEG, GIF, WebP. Max 5 MB. SVG is rejected (script-injection vector). The format is detected from the file's own bytes, not its name. HOW TO SUPPLY THE IMAGE — give exactly one of:
  • path — absolute path to an image file on this machine. Prefer this: the bytes never pass through the conversation.
  • data — base64 of the file's bytes (a "data:image/png;base64,..." URI is also accepted).
  • source_url — a public http(s) URL; the server fetches it.
If you can only SEE an image (e.g. a screenshot another tool returned), you cannot re-encode it from what you see — you need the file. Save it to disk, then pass its "path". Counts against the workspace's image storage quota (Free 50 MB, Pro 5 GB).

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "agentdocs-mcp": {
    "command": "npx",
    "args": ["-y","agentdocs-mcp"],
    "env": {
      "AGENTDOCS_TOKEN": ""
    }
  }
}
```

**Requires environment variables:** `AGENTDOCS_TOKEN` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What agentdocs-mcp does
agentdocs-mcp gives MCP-compatible clients access to AgentDocs workspaces, spaces, pages, comments, and images. Agents can inspect their identity and credential scope, enumerate documentation structures, search page content, read Markdown, and create or revise pages.

The server supports both documentation maintenance and knowledge retrieval. Keyword search covers workspace pages, while semantic search accepts natural-language questions and ranks pages by meaning in Pro workspaces. Page reads can include threaded discussions, child-page metadata, and embedded images as viewable blocks.

Write operations cover individual pages, appended notes, bulk page creation, and Markdown-folder imports. Imports derive hierarchy from relative file paths and can be repeated without creating duplicates because pages are matched by source path.

## How it works
The package runs locally over stdio and communicates with AgentDocs using an API token. An account token provides access to resources the user owns. A space token restricts the session to one space and applies the permissions selected for that token, making it suitable for sandboxed agents.

The hosted endpoint is available at `https://agentdocs.eu/mcp` over Streamable HTTP. Clients that support OAuth can open an AgentDocs sign-in and consent flow; token-based clients can send either `Authorization: Token <token>` or `Authorization: Bearer <token>`.

Call `whoami` first to determine the authenticated identity and whether the credential is space-scoped. For concurrent page editing, `update_page` accepts an expected version so an agent can fail rather than overwrite a newer revision. Deleting a page also removes its child pages and cannot be undone through the API.

## Setup and configuration
For a local installation, launch the package with an MCP client using `npx -y agentdocs-mcp` and provide `AGENTDOCS_TOKEN`. The token may instead be read from `~/.config/agentdocs/token`. Account and space tokens are supported; the local package does not provide proposed-change tools, so agents requiring that workflow should use the hosted endpoint.

`AGENTDOCS_URL` defaults to `https://agentdocs.eu` and can override the API base URL when a different endpoint has been provided. Hosted use requires no package installation: add the endpoint as a custom MCP server and authenticate through OAuth or a token.

## Tools and capabilities
- Discover accessible workspaces, spaces, and page trees.
- Search by keyword or natural-language meaning.
- Read Markdown with versions, comments, child pages, and embedded images.
- Create, update, append to, and permanently delete pages.
- Import up to 500 Markdown files per call or atomically create up to 500 explicit pages.
- Add, edit, resolve, list, and delete threaded comments.
- Upload PNG, JPEG, GIF, or WebP images up to 5 MB and receive Markdown for embedding.
- Create public magic links with web and raw-Markdown URLs.

Semantic search requires a Pro workspace. Image uploads count against workspace image storage, with quotas of 50 MB for Free and 5 GB for Pro workspaces.

_Full upstream README: https://allmcps.com/mcp/agentdocs-mcp/readme_

