Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Official MCP server for Anytype API - your encrypted, local and collaborative wiki.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
OPENAPI_MCP_HEADERS标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"anytype": {
"command": "npx",
"args": [
"-y",
"@anyproto/anytype-mcp"
],
"env": {
"OPENAPI_MCP_HEADERS": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add anytype --env OPENAPI_MCP_HEADERS=your-value -- npx -y @anyproto/anytype-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"anytype": {
"command": "npx",
"args": [
"-y",
"@anyproto/anytype-mcp"
],
"env": {
"OPENAPI_MCP_HEADERS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"anytype": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@anyproto/anytype-mcp"
],
"env": {
"OPENAPI_MCP_HEADERS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 anyproto 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:OPENAPI_MCP_HEADERS
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.0.7)于14个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Signoff
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
The Anytype MCP Server is a Model Context Protocol (MCP) server enabling AI assistants to seamlessly interact with Anytype's API through natural language.
It bridges the gap between AI and Anytype's powerful features by converting Anytype's OpenAPI specification into MCP tools, allowing you to manage your knowledge base through conversation.
Create new buttonAlternative: Get API key via CLI
You can also get your API key using the command line:
npx -y @anyproto/anytype-mcp get-key
Add the following configuration to your MCP client settings after replacing with your actual API key:
{
"mcpServers": { "anytype": { "command": "npx", "args": ["-y", "@anyproto/anytype-mcp"], "env": { "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer \", \"Anytype-Version\":\"2025-11-08\"}" } } } }
Tip: After creating an API key in Anytype, you can copy that ready-to-use configuration snippet with your API key already filled in from the API Keys section.
Run this command to add the Anytype MCP server after replacing with your actual API key:
claude mcp add anytype -e OPENAPI_MCP_HEADERS='{"Authorization":"Bearer <YOUR_API_KEY>", "Anytype-Version":"2025-11-08"}' -s user -- npx -y @anyproto/anytype-mcp
Alternative: Global Installation
If you prefer to install the package globally:
npm install -g @anyproto/anytype-mcp
{
"mcpServers": { "anytype": { "command": "anytype-mcp", "env": { "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer \", \"Anytype-Version\":\"2025-11-08\"}" } } } }
By default, the server connects to http://127.0.0.1:31009. For anytype-cli (port 31012) or other custom base URLs, set ANYTYPE_API_BASE_URL:
Example Configuration
MCP Client (Claude Desktop, Cursor, etc.):
{
"mcpServers": { "anytype": { "command": "npx", "args": ["-y", "@anyproto/anytype-mcp"], "env": { "ANYTYPE_API_BASE_URL": "http://localhost:31012", "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer \", \"Anytype-Version\":\"2025-11-08\"}" } } } }
Claude Code (CLI):
claude mcp add anytype \
-e ANYTYPE_API_BASE_URL='http://localhost:31012' \ -e OPENAPI_MCP_HEADERS='{"Authorization":"Bearer ", "Anytype-Version":"2025-11-08"}' \ -s user -- npx -y @anyproto/anytype-mcp
Here are some examples of how you can interact with your Anytype:
The server loads one OpenAPI document at startup. With the standard configuration it tries /v2/docs/openapi.json first. If that endpoint returns 404 or 410, it falls back to /docs/openapi.json on the same server, where older apps serve v1. This selects v2 whenever available while supporting apps that only have the legacy API:
"args": ["-y", "@anyproto/anytype-mcp"]
To explicitly use the legacy v1 API, select its versioned spec:
"args": ["-y", "@anyproto/anytype-mcp", "run", "http://127.0.0.1:31009/v1/docs/openapi.json"]
The versioned /v2/docs/openapi.json URL also remains available for explicitly selecting v2.
Explicit spec URLs and local files are used exactly as supplied, without fallback. Authentication failures, server errors, connection failures, and malformed JSON also fail startup instead of selecting another API. The wrapper uses the routes declared in the selected document without rewriting their version prefixes.
Discovery runs once per MCP process. Tool calls reuse the parsed specification and HTTP client without fetching OpenAPI again. Restart the MCP server after updating Anytype to discover a newly available API version; no persistent spec cache is used.
Tool descriptions contain operation guidance; API errors are returned when calls fail, with isError: true, HTTP status when available, and the API's code, message, issues, and hints.
The server names its own operations by OpenAPI operationId in the prose it serves. In the MCP tool listing and in the field descriptions of a get_schema or get_op_schema response, those names are re-spelled as this wrapper's tool names (list_properties becomes API-list-properties). A repair hint is different: the server spells each operation it names as a REST route and lists it as a typed see_also reference, so the wrapper replaces that route text with the tool name and arguments, and annotates the reference with tool and args. Literal values are never rewritten: enum and example values, op names, endpoint strings and output schemas keep the server's spelling, and so do the OpenAI and Anthropic tool exports, which name tools by operationId.
Successful v1 object creation, updates, deletion, and chat creation return a compact object receipt with its ID, space ID, name, archive state, and type identity when available. The wrapper omits echoed markdown, snippets, property values, icons, and full type definitions. It preserves warnings, generated IDs, and etag/retry metadata. Read the object to retrieve its content when needed. v2 already returns compact create/edit receipts, which are passed through unchanged apart from their warnings, whose hints are re-spelled and whose references gain tool and args; reads, searches, and errors also keep their full API responses.
The shared tool policy controls inputs and request routing:
Authorization and Anytype-Version come from OPENAPI_MCP_HEADERS.expected_etag maps to If-Match. Use the etag from a previous read to prevent overwriting a changed object. The wrapper does not retry a failed precondition or remove it. Response etags are returned in a separate request_metadata text block when available.request_key maps to Idempotency-Key on endpoints that declare that header. Omit it for a new write; the wrapper generates a unique key and returns it in request_metadata or an error's request_key. Reuse it only to retry the same write. Separate calls get different generated keys, even with identical documents. There are no automatic retries. A global Idempotency-Key in OPENAPI_MCP_HEADERS is rejected.If-Match and Idempotency-Key argument names. They are not advertised alongside the new names. Conflicting alias values are rejected.dry_run, create_missing_options, and schema discovery remain available.auth_whoami remains available for inspecting the current credential's permissions; its response does not contain the bearer token.path, filename, media_type, and size. The path is local to the machine/container running MCP. Successful files remain there until removed or cleaned up by the operating system; interrupted downloads are removed. Range and cache headers are not model inputs.Known inputs with HTTP meanings are matched by parameter location, so a document's own fields are preserved. Open-ended JSON documents use the body argument. Objects with declared fields use flat arguments. The existing omission of flattened filters fields and the FilterExpression schema fallback remain separate limitations; this cleanup does not restore filter-schema support.
Duplicate final tool names fail startup with both routes identified. Select separate v1/v2 specs instead of merging operations with overlapping names.
Set ANYTYPE_MCP_DEBUG=1 for concise operation names, response status, and timing on stderr. Arguments, authorization headers, payloads, and entire operation tables are not logged.
bun run measure-tools
bun run measure-tools ./path/to/openapi.json
The default command compares fixed v1 and v2 fixtures. It reports tool count, serialized characters, and UTF-8 bytes, not model-specific token counts.
git clone https://github.com/anyproto/anytype-mcp.git
cd anytype-mcp
bun install
bun run build
bun link
Thank you for your desire to develop Anytype together!
❤️ This project and everyone involved in it is governed by the Code of Conduct.
🧑💻 Check out our contributing guide to learn about asking questions, creating issues, or submitting pull requests.
🫢 For security findings, please email security@anytype.io and refer to our security guide for more information.
🤝 Follow us on Github and join the Contributors Community.
只显示了开头部分;其余内容请在仓库中阅读