Agentdocs Mcp

io.github.hoornetPublished by GitHub account hoornetv0.10.5Updated Nov 6, 2026

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

VerifiedStreamable HTTPWeb executableProductivity & WorkflowKnowledge & Memory

Overview

AI-generated overview

MCP server for AgentDocs, letting an assistant search, read, write, comment on and share Markdown documentation pages in workspaces and spaces.

What you can do
  • Identify the user and credential scope, and list accessible workspaces and spaces
  • Search a workspace by keyword or, on Pro workspaces, by natural-language meaning
  • Browse page trees and read pages with full Markdown, versions, comments and images
  • Create, update, append to, bulk-create, import from Markdown folders, and delete pages
  • Create public magic links for pages and upload images to embed in pages
  • List, add, edit, resolve and delete threaded comments on pages
When to use it
Useful when documentation lives in AgentDocs and you want an assistant to look things up, draft or update pages, keep running notes and logs, or leave and resolve review comments without switching tools.
Requirements
Runs as a hosted remote endpoint (Streamable HTTP) or locally via npx agentdocs-mcp with Node.js. Needs an AgentDocs account and an API token in AGENTDOCS_TOKEN (account or space-scoped), or an Authorization header; OAuth-capable clients can connect without a token. AGENTDOCS_URL optionally overrides the API base URL. Semantic search requires a Pro workspace.
Before you install
The token grants access to your documents: an account token covers everything you own, while a space token limits the session to one space. Writes are real: page updates create versions, delete_page cascades to child pages with no API undo, and comments can be edited or deleted. share_page makes a page publicly readable by anyone with the link. On the hosted endpoint, upload_image by local path is refused; use source_url or data instead.

Installation

In SourceWeft

  1. Open Agentdocs Mcp in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.hoornet%2Fagentdocs-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "agentdocs": {
      "type": "http",
      "url": "https://agentdocs.eu/mcp"
    }
  }
}

README

[AgentDocs]

agentdocs-mcp

MCP server for AgentDocs — the collaborative documentation platform where AI agents are first-class citizens.

Gives MCP clients that run a local server (Claude Code, Claude Desktop, Cursor, Windsurf, Zed, …) native tools to read, search, create, update, and share AgentDocs pages.

Claude.ai (web), Claude Desktop and Claude mobile connect with no token at all: add https://agentdocs.eu/mcp as a custom connector (Settings → Connectors → Add custom connector) and leave Advanced settings empty. AgentDocs implements OAuth 2.1 — Claude discovers the flow automatically, your browser opens an AgentDocs consent page, and you're connected after approving. The grant covers your documents only and is revocable any time at agentdocs.eu → Settings → Connected apps. The hosted Skill remains a connector-free fallback, and Claude Desktop can also run the local stdio config further down.

Listed on the official MCP registry as io.github.hoornet/agentdocs-mcp.

Setup

MCP connector clients (Claude.ai / Desktop / mobile) need no token — see the OAuth note above. For the local stdio server and other clients, you need an AgentDocs API token:

  • Account token — agentdocs.eu → Profile → Regenerate API Token (full access to everything you own), or
  • Space token — Space settings → Tokens (editor access to exactly one space; the server auto-detects this and scopes itself to that space — the recommended way to sandbox an agent).

Remote (hosted) — nothing to install

Any client that speaks remote MCP can use the hosted endpoint directly; there's no package to install and nothing to keep updated. Same 19 tools as the stdio server.

https://agentdocs.eu/mcp        (Streamable HTTP)Authorization: Token <your-token>   # or no header at all — OAuth clients authenticate via the built-in flow
bash
# Claude Codeclaude mcp add --transport http agentdocs https://agentdocs.eu/mcp \  --header "Authorization: Token <your-token>"

Claude.ai (web) and Claude Desktop use the same flow as each other: Settings → Connectors → Add custom connector, with an Authorization request header.

That request-header field is an Anthropic beta, enabled per-account. If Advanced settings offers only OAuth Client ID and OAuth Client Secret, your account doesn't have it — and those OAuth fields won't work here, because AgentDocs doesn't implement OAuth yet (planned). The connector will simply report a connection failure.

In that case use the Skill (Skills → Upload Skill): no beta access needed, same REST API, and the reliable path on Claude.ai today.

Bearer <api_token> is accepted here as well as Token <api_token>, because several clients only offer a "Bearer" field. Account tokens and space-scoped tokens both work — a space token confines the session to its own space, exactly as it does over REST.

Claude Code (local stdio)

bash
claude mcp add agentdocs --env AGENTDOCS_TOKEN=<your-token> -- npx -y agentdocs-mcp

Codex CLI

bash
codex mcp add agentdocs --env AGENTDOCS_TOKEN=<your-token> -- npx -y agentdocs-mcp

or in ~/.codex/config.toml:

toml
[mcp_servers.agentdocs]command = "npx"args = ["-y", "agentdocs-mcp"][mcp_servers.agentdocs.env]AGENTDOCS_TOKEN = "<your-token>"

Claude Desktop / Cursor / Windsurf / Gemini CLI / generic MCP config

In claude_desktop_config.json / .cursor/mcp.json / ~/.codeium/windsurf/mcp_config.json / ~/.gemini/settings.json respectively:

json
{  "mcpServers": {    "agentdocs": {      "command": "npx",      "args": ["-y", "agentdocs-mcp"],      "env": { "AGENTDOCS_TOKEN": "<your-token>" }    }  }}

VS Code (Copilot)

Same server block, but .vscode/mcp.json uses a top-level "servers" key:

json
{  "servers": {    "agentdocs": {      "command": "npx",      "args": ["-y", "agentdocs-mcp"],      "env": { "AGENTDOCS_TOKEN": "<your-token>" }    }  }}

Zed

In settings.json:

json
{  "context_servers": {    "agentdocs": {      "command": "npx",      "args": ["-y", "agentdocs-mcp"],      "env": { "AGENTDOCS_TOKEN": "<your-token>" }    }  }}

Opencode

In opencode.json (project root) or ~/.config/opencode/opencode.json:

json
{  "$schema": "https://opencode.ai/config.json",  "mcp": {    "agentdocs": {      "type": "local",      "command": ["npx", "-y", "agentdocs-mcp"],      "environment": { "AGENTDOCS_TOKEN": "<your-token>" }    }  }}

pi / oh-my-pi

Base pi ships without MCP support — use the Skill or the plain REST API there. The oh-my-pi (omp) fork does support MCP and inherits servers from configs already on disk (.claude, .cursor, .codex, .vscode, …) — add the standard mcpServers block above to one of those (e.g. .cursor/mcp.json) and restart omp.

Windows

Many MCP clients can't spawn npx directly on Windows (spawn npx ENOENT). Wrap the command in cmd /c:

json
"command": "cmd","args": ["/c", "npx", "-y", "agentdocs-mcp"]

Catalog-based MCP gateways (e.g. the Docker MCP gateway) only run servers from their curated catalog and can't launch arbitrary npx servers — agentdocs-mcp isn't listed there yet. Use the hosted remote endpoint instead: https://agentdocs.eu/mcp (Streamable HTTP, same 19 tools, nothing to install) — see Remote above. Failing that, the REST API has full parity.

Configuration

Env varDefaultPurpose
AGENTDOCS_TOKENcontents of ~/.config/agentdocs/tokenAPI token (account or space-scoped)
AGENTDOCS_URLhttps://agentdocs.euOverride the API base URL. Advanced — only set this if you've been given a different endpoint

Updating

The setup commands above are unpinned (npx -y agentdocs-mcp), so they always resolve the latest published version. To pick up a new release, just restart your MCP client — the client only re-launches the server process on restart. The server prints its version on startup (stderr): agentdocs-mcp vX.Y.Z: connected ….

If npx serves a stale cached copy, force a refresh:

bash
npx -y agentdocs-mcp@latest    # or: npm cache clean --force

Tools

ToolDescription
whoamiIdentify the user and credential scope
list_workspacesList accessible workspaces ¹
list_spacesList spaces in a workspace ¹
list_pagesPage tree of a space (without content)
search_docsFull-text (keyword) search across a workspace ¹
semantic_searchNatural-language search ranked by meaning — Pro workspaces ¹
get_pageRead a page (full Markdown + version); optional include_comments / include_children / include_images (returns embedded images as viewable image blocks)
create_pageCreate a Markdown page (nestable)
update_pageUpdate title/content, with optional optimistic version check
append_to_pageAppend Markdown — ideal for logs and session reports
import_markdownImport a folder of Markdown files; paths become the page hierarchy. Idempotent — re-import reuses by source path (no duplicates); parent_page anchor + overwrite_existing re-sync
delete_pageDelete a page (cascades to children)
bulk_create_pagesCreate up to 500 pages atomically with explicit structure
share_pageCreate a public magic link (web + raw-Markdown URLs)
list_commentsList a page's threaded comments (ids, authors, parents)
add_commentPost a comment / threaded reply (with @mentions)
update_commentEdit a comment or mark its thread resolved (author/admin)
delete_commentDelete a comment (author/admin)
upload_imageAttach a PNG/JPEG/GIF/WebP to a space and get Markdown to embed it — from path ², source_url, or base64 data

¹ Hidden when running with a space-scoped token.

² path reads a file from the machine this server runs on, so it works on the stdio server only. The hosted agentdocs.eu/mcp endpoint refuses it — there, the "machine" is AgentDocs' production server, and honouring a caller-supplied path would be arbitrary file read. Use source_url or data there.

Pages, spaces, and workspaces are addressable by UUID or human-readable slug path — get_page accepts "my-workspace/my-space/my-page", create_page accepts "my-workspace/my-space", etc. (Slug paths require an account token.)

Notes

  • Every page update creates a version on the server; old versions stay restorable from the AgentDocs UI.
  • The hosted instance may take ~15 s to respond to the first request after being idle (database cold start) — the server absorbs this with a 35 s timeout and one retry.
  • Free-tier API limits surface as clear messages with an upgrade link.

Development

bash
npm installnpm run build
# End-to-end smoke tests (hit a real AgentDocs instance with YOUR data):SMOKE_TESTBED_SPACE="workspace-slug/scratch-space-slug" \SMOKE_KNOWN_PAGE="workspace-slug/space-slug/page-slug" \node test/smoke.mjs                       # account token: all tools
AGENTDOCS_TOKEN=<space-token> node test/smoke-space-token.mjs   # space-token mode

The testbed space is written to (pages created and deleted) — use a scratch space.

Security

See SECURITY.md. Report vulnerabilities privately to [email protected].

License

MIT

Source: README.md at commit 7a7004a

Tools

19

whoami

Who am I

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.

Takes no parameters.

list_workspaces

List workspaces

List all AgentDocs workspaces the user can access. Workspaces contain spaces; spaces contain pages.

Takes no parameters.

list_spaces

List spaces

List the spaces in a workspace.

Parametersworkspacerequired

search_docs

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.

Parametersqueryrequiredworkspacerequired

list_pages

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.

Parametersspace

get_page

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.

Parameterspagerequiredinclude_imagesinclude_childreninclude_comments

create_page

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.

Parametersslugspacetitlerequiredcontentrequiredparent_page_id

update_page

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.

Parameterspagerequiredtitlecontentexpected_version

append_to_page

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.

Parameterspagerequiredcontentrequiredseparator

delete_page

Delete page

Permanently delete a page. WARNING: deletion cascades to all child pages. There is no undo via the API.

Parameterspagerequired

import_markdown

Import a markdown folder

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.

Parametersfilesrequiredspaceparent_pageoverwrite_existing

bulk_create_pages

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.

Parameterspagesrequiredspace

share_page

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).

Parameterspagerequiredexpires_in_days

list_comments

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.)

Parameterspagerequired

add_comment

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.

Parameterspagerequiredcontentrequiredparent_comment_id

update_comment

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.

Parameterscommentrequiredcontentresolved

delete_comment

Delete comment

Permanently delete a comment. Only the comment's author (or an admin) may delete it. There is no undo via the API.

Parameterscommentrequired

upload_image

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).

Parametersdatapathspacealt_textfilenamesource_url

Version history

3
  1. v0.10.5LatestNov 5, 2026
  2. v0.10.4Oct 9, 2026
  3. v0.10.1Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts