Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Official MCP server for Anytype API - your encrypted, local and collaborative wiki.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
OPENAPI_MCP_HEADERSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"anytype": {
"command": "npx",
"args": [
"-y",
"@anyproto/anytype-mcp"
],
"env": {
"OPENAPI_MCP_HEADERS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add anytype --env OPENAPI_MCP_HEADERS=your-value -- npx -y @anyproto/anytype-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"anytype": {
"command": "npx",
"args": [
"-y",
"@anyproto/anytype-mcp"
],
"env": {
"OPENAPI_MCP_HEADERS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"anytype": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@anyproto/anytype-mcp"
],
"env": {
"OPENAPI_MCP_HEADERS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account anyproto, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: OPENAPI_MCP_HEADERS
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.0.7) reached the registry 14 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, First Sale Scout
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Playbooks and a 14-day checklist for founders winning their first paying customers.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.
Only the beginning is shown; read the rest in the repo