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.
無需輸入參數。

io.github.hoornet由 GitHub 帳號 hoornet 發布v0.10.5更新於 Nov 6, 2026
AgentDocs (agentdocs.eu) MCP: read, search, write, comment, share & attach images to Markdown docs.
AgentDocs 的 MCP 伺服器,讓助理在工作區與空間中搜尋、讀取、撰寫、留言並分享 Markdown 文件頁面。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.hoornet%2Fagentdocs-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。
{
"mcpServers": {
"agentdocs": {
"type": "http",
"url": "https://agentdocs.eu/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/mcpas 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.
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:
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.
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.
or in ~/.codex/config.toml:
In claude_desktop_config.json / .cursor/mcp.json /
~/.codeium/windsurf/mcp_config.json / ~/.gemini/settings.json respectively:
Same server block, but .vscode/mcp.json uses a top-level "servers" key:
In settings.json:
In opencode.json (project root) or ~/.config/opencode/opencode.json:
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.
Many MCP clients can't spawn npx directly on Windows (spawn npx ENOENT).
Wrap the command in cmd /c:
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.
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:
¹ 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.)
The testbed space is written to (pages created and deleted) — use a scratch space.
See SECURITY.md. Report vulnerabilities privately to [email protected].
MIT
來源:README.md,提交 7a7004a
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.
無需輸入參數。
List workspaces
List all AgentDocs workspaces the user can access. Workspaces contain spaces; spaces contain pages.
無需輸入參數。
List spaces
List the spaces in a workspace.
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.
query必填workspace必填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).
query必填workspace必填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.
spaceGet 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.
page必填include_imagesinclude_childreninclude_commentsCreate 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.
slugspacetitle必填content必填parent_page_idUpdate 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.
page必填titlecontentexpected_versionAppend 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.
page必填content必填separatorDelete page
Permanently delete a page. WARNING: deletion cascades to all child pages. There is no undo via the API.
page必填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.
files必填spaceparent_pageoverwrite_existingBulk 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.
pages必填spaceShare 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).
page必填expires_in_daysList 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.)
page必填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.
page必填content必填parent_comment_idUpdate 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.
comment必填contentresolvedDelete comment
Permanently delete a comment. Only the comment's author (or an admin) may delete it. There is no undo via the API.
comment必填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).
datapathspacealt_textfilenamesource_url已滿足適用檢查項的 100%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
https://agentdocs.eu/mcp (Streamable HTTP)Authorization: Token <your-token> # or no header at all — OAuth clients authenticate via the built-in flow# Claude Codeclaude mcp add --transport http agentdocs https://agentdocs.eu/mcp \ --header "Authorization: Token <your-token>"claude mcp add agentdocs --env AGENTDOCS_TOKEN=<your-token> -- npx -y agentdocs-mcpcodex mcp add agentdocs --env AGENTDOCS_TOKEN=<your-token> -- npx -y agentdocs-mcp[mcp_servers.agentdocs]command = "npx"args = ["-y", "agentdocs-mcp"][mcp_servers.agentdocs.env]AGENTDOCS_TOKEN = "<your-token>"{ "mcpServers": { "agentdocs": { "command": "npx", "args": ["-y", "agentdocs-mcp"], "env": { "AGENTDOCS_TOKEN": "<your-token>" } } }}{ "servers": { "agentdocs": { "command": "npx", "args": ["-y", "agentdocs-mcp"], "env": { "AGENTDOCS_TOKEN": "<your-token>" } } }}{ "context_servers": { "agentdocs": { "command": "npx", "args": ["-y", "agentdocs-mcp"], "env": { "AGENTDOCS_TOKEN": "<your-token>" } } }}{ "$schema": "https://opencode.ai/config.json", "mcp": { "agentdocs": { "type": "local", "command": ["npx", "-y", "agentdocs-mcp"], "environment": { "AGENTDOCS_TOKEN": "<your-token>" } } }}"command": "cmd","args": ["/c", "npx", "-y", "agentdocs-mcp"]npx -y agentdocs-mcp@latest # or: npm cache clean --forcenpm 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