Anytype (self-hosted HTTP) について
Anytype (self-hosted HTTP) は、Anytype の API を AI アシスタントに公開するセルフホスト可能な MCP サーバーです。Docker 上で HTTP または stdio により常時稼働し、複数の MCP クライアントから利用できます。
主な機能
- 01Anytype API からツールを自動生成
- 02Streamable HTTP と stdio に対応
- 03ヘルスチェック付き Docker デプロイ
- 04任意の Bearer Token 認証
- 05API レスポンスの圧縮とツール選択ヒント
活用シーン
- 01Anytype のノートを検索
- 02タスク、スペース、チェックリストを作成
- 03複数の MCP クライアントでサーバーを共有
MCP 対応
MCP クライアントに Anytype API のツールを Streamable HTTP または stdio で公開し、Anytype デスクトップアプリのローカル API に接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e ANYTYPE_API_KEY -e PORT -e ANYTYPE_API_BASE_URL -e ANYTYPE_VERSION -e ANYTYPE_API_HOST_HEADER -e MCP_SHARED_TOKEN -e ANYTYPE_MCP_SLIM_RESPONSES ghcr.io/ohneben/anytype-mcp:1.0.6ANYTYPE_API_KEYシークレットAnytype API key, created in the desktop app under Settings -> API Keys.PORTPort the MCP endpoint listens on, inside the container and on the host.ANYTYPE_API_BASE_URLWhere the Anytype desktop API is reachable from inside the container.ANYTYPE_VERSIONAnytype API version header sent with every request.ANYTYPE_API_HOST_HEADEROverride the Host header sent to the Anytype API. Auto-derived when unset; Anytype rejects non-loopback hosts with 403.MCP_SHARED_TOKENシークレットOptional bearer token required on the /mcp endpoint. Empty means open, for localhost only.ANYTYPE_MCP_SLIM_RESPONSESCompact API responses before returning them to the client. Set to false for raw payloads.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/ohneben/anytype-mcp:1.0.6Streamable HTTPツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ohneben Anytype MCP
Claude、Cursor などの AI アシスタントや、その他の MCP クライアントから、自然な言葉で Anytype のナレッジベースを利用できます。
これは、公式の
anyproto/anytype-mcp をセルフホスト可能にしたフォークで、
Docker コンテナとStreamable-HTTP トランスポートを追加しています。そのため、
サーバーをバックグラウンドで常時実行し、HTTP 経由であらゆる MCP クライアントから
アクセスできます。(オリジナルは stdio のみをサポートしています。)
このプロジェクトを選ぶ理由
公式の Anytype MCP サーバーは優れていますが、
各クライアントが必要に応じて起動する stdio サブプロセスとして実行されます。このプロジェクトは
すべての機能をそのまま備えたうえで、本番環境向けのデプロイ方法を追加しています。
Docker 上でサーバーを 1 つ常時稼働させ、HTTP 経由で任意の数の MCP クライアントから
アクセスできます。
| 機能 | このプロジェクト | 公式 anyproto/anytype-mcp | その他のコミュニティサーバー* |
|---|---|---|---|
| Anytype API を完全に網羅(動的な OpenAPI → MCP ツール) | ✅ | ✅ | ✅ |
stdio トランスポート | ✅ | ✅ | ✅ |
Streamable-HTTP トランスポート(ネイティブ、または mcp-remote 経由) | ✅ | ❌ | ❌ |
| 常時稼働するバックグラウンドサービス | ✅ | ❌ | ❌ |
| 1 つのサーバー → 複数のクライアントが同時に利用 | ✅ | ❌ | ❌ |
| Docker + docker-compose | ✅ | ❌ | ❌ |
| ヘルスチェックエンドポイント + 自動再起動 | ✅ | ❌ | ❌ |
| エンドポイントでのオプションのベアラートークン認証 | ✅ | ❌ | ❌ |
| 🟢 / 🟡 / 🔴 読み取り専用 / 書き込み / 破壊的ツールのヒント | ✅ | ➖ | ➖ |
| 自動テストスイート(Vitest) | ✅ | ✅ | ➖ |
| ライセンス | MIT | MIT | さまざま |
* Qwinty/anytype-mcp(JS)、wethegreenpeople/anytype-mcp(Python)、anytype-mcp-plus などのコミュニティサーバー。ほとんどは stdio のみで、npx 経由で起動します。「➖」は、ドキュメントに記載がない、または実装によって異なることを示します。2026 年 7 月時点の情報です。最新の状況は各プロジェクトをご確認ください。
要するに: AI クライアントから Anytype を試してみたいだけなら、公式サーバーで十分です。 バックグラウンドで稼働し、いつでも使えて、マシン上のすべての MCP クライアントで共有できる サーバーをお求めなら、こちらをご利用ください。
できること
接続すると、アシスタントに次のようなことを依頼できます。
- 「AnytypeでQ3のローンチに関するメモを検索して。」
- 「『レポートを書く』というタスクを作成して、期限を3日後に設定して。」
- 「『旅行』という新しいスペースを作成して、荷造りチェックリストを追加して。」
ツールは、実行中のAnytypeアプリから自動的に生成され、🟢読み取り専用、🟡書き込み、🔴削除に分類されます。
このサーバーは、ツール呼び出しを抑え、アシスタントを高速かつ効率的に動作させるよう調整されています。
API-get-overview— すべてのスペースとそのタイプ(またはspace_idを指定した場合は、そのスペースのタイプとプロパティ定義)を1回の呼び出しで返す合成ツールです。スペース一覧の取得 → タイプ一覧の取得 → プロパティ一覧の取得という連続した呼び出しは不要です。- スリムな応答 — APIペイロードはアシスタントに届く前にコンパクト化されます。空のプロパティ値、
object識別子、null値が除去され、各検索/一覧結果に含まれるタイプ情報は識別子に縮小されます。通常、一覧/検索の応答は半分以上小さくなるため、呼び出しごとに消費するコンテキストが減り、後続の呼び出しも少なくなります。代わりに未加工のAPIペイロードを取得するには、ANYTYPE_MCP_SLIM_RESPONSES=falseを設定してください。 - ルーティングのヒント — ツールの説明では、タスクに最も効率的なツールをアシスタントに伝えます(例:リストをページ分割するより検索する方が効率的であることや、完全なMarkdown本文を返すのは
get-objectだけであること)。
仕組み
Claude / Cursor / … ──MCP──► this server ──HTTP──► Anytype desktop app (local API)
このサーバーは、お使いのマシン上のAnytype デスクトップアプリのローカルAPIとのみ通信します。データはコンピューター上に保持されます。
必要条件
- Anytypeデスクトップアプリがインストールされ、実行中であること(
127.0.0.1:31009でローカルAPIを提供します)。 - 以下のセットアップで使用するDocker(macOS/WindowsではDocker Desktop)。
クイックスタート(Docker)
1. APIキーを追加します。 設定例をコピーし、キーを貼り付けます。
cp .env.example .env
# open .env and set ANYTYPE_API_KEY=... (see "Get an API key" below)
2. サーバーを起動します。
docker compose up -d --build
3. 起動していることを確認します。
curl -s http://localhost:8769/healthz # → {"status":"ok"}
4. MCPクライアントを接続します。 mcpServersの下にanytypeエントリを追加してから、アプリを完全に終了し、再度開きます。お使いのクライアントに合った形式を選んでください。
Claude Code(またはStreamable-HTTPをネイティブに使用できるクライアント)— ヘルパープロセスなしで直接接続します。
"anytype": {
"type": "http",
"url": "http://localhost:8769/mcp"
}
Claude Desktop(設定がstdioのみ対応)は、mcp-remoteブリッジが必要です。1回インストールした後、npxではなくnode経由で起動します。
npm i -g mcp-remote
"anytype": {
"command": "/opt/homebrew/bin/node",
"args": [
"/opt/homebrew/lib/node_modules/mcp-remote/dist/proxy.js",
"http://localhost:8769/mcp",
"--allow-http"
]
}
なぜ
npx -y mcp-remote …を使わないのですか?npxは起動のたびに、npmキャッシュを通じてパッケージを再解決します。クライアントが複数のMCPサーバーを同時にコールドスタートすると、キャッシュの使用が競合し、一部のランチャーはnpx内で数分間停止することがあります。その結果、クライアントでは接続タイムアウトとして報告されます。mcp-remoteを1回インストールしてnodeで起動すれば、この処理を省けます。絶対パスを使用してください(GUIアプリはシェルのPATHを引き継がず、mcp-remote自体の#!/usr/bin/env nodeシバンも、絶対パスを指定しないとnodeを見つけられません)。上記のパスはApple Silicon版Homebrewのデフォルトです。異なる場合は、which nodeとnpm root -gを使って調整してください。
以上です。アシスタントに、Anytype内の情報を検索または作成するよう依頼してください。
APIキーを取得する
Anytypeデスクトップアプリで、設定 → APIキー → 新規作成を選択します。キーを.envのANYTYPE_API_KEY=にコピーします。キーはGitで無視される.envに保存されるため、コミットされることはありません。
設定
すべて .env(.env.example をコピーして作成)で設定します。
| 変数 | デフォルト | 内容 |
|---|---|---|
ANYTYPE_API_KEY | — | Anytype API キーです。必須です。 |
ANYTYPE_VERSION | 2025-11-08 | Anytype API のバージョンヘッダーです。 |
ANYTYPE_API_BASE_URL | http://host.docker.internal:31009 | コンテナーから Anytype アプリの API にアクセスできる URL です。 |
ANYTYPE_API_HOST_HEADER | (自動) | Anytype API に送信する Host ヘッダーです。ベース URL でコンテナーホストのエイリアスが使われている場合は、Anytype がほかの Host を 403 request origin is not allowed で拒否するため、localhost:<port> に自動設定されます。 |
PORT | 8769 | MCP エンドポイントのホストポートです。 |
MCP_SHARED_TOKEN | (空) | エンドポイントを保護するための任意のベアラートークンです。空の場合は認証なしで、ローカルホスト専用です。 |
ANYTYPE_MCP_SLIM_RESPONSES | true | アシスタントに送信する前に API レスポンスを簡潔にします。生のペイロードを使うには false に設定します。 |
.env を変更した後は、docker compose up -d --force-recreate で再読み込みしてください。
ログ、再起動、キーのローテーション、確認用コマンドについては、 DOCKER.md を参照してください。
ソースから実行する(stdio、Docker なし)
従来の stdio モードを使いますか?ローカルでビルドします。
npm install
npm run build
その後、stdio コマンドと OPENAPI_MCP_HEADERS に指定したキーを使ってクライアントに登録します。stdio 設定の詳細については、
上流の README を参照してください。
セキュリティ
- API キーは git の追跡対象外である
.envにのみ保存されます。実際のキーは絶対にコミットしないでください。 - HTTP エンドポイントはデフォルトでは認証されません(ローカルホスト上での利用には問題ありません)。マシンの外部に公開する場合は、
MCP_SHARED_TOKENを設定し、Bearerヘッダーまたは?token=…として送信してください。
MCP Registry
このサーバーは、io.github.ohneben/anytype-mcp という名前で公式の
MCP Registry に公開されています。現在の登録情報を確認するには、次を実行します。
curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.ohneben/anytype-mcp"
登録情報は server.json に記載されています。また、
.github/workflows/publish-mcp.yml によって、v*.*.* タグが付くたびに自動で再公開されます。このワークフローは、対応する GHCR イメージを待ってから GitHub OIDC で認証するため、シークレットは不要です。Registry は Dockerfile の
io.modelcontextprotocol.server.name ラベルによって、イメージが正規のものであることを確認します。そのため、GHCR パッケージは Public のままにしてください。
リリース
Git タグがバージョンになります。 v1.2.3 をプッシュするだけでリリースできます。イメージのビルド前にタグが package.json に、登録情報の公開前に server.json に設定されるため、サーバーが MCP クライアントに報告するバージョン、イメージタグ、Registry の登録情報が食い違うことはありません。事前に手動でバージョンを更新する必要はありません。ここにコミットされているバージョンは、ローカルビルドで使われるデフォルトにすぎません。
クレジットとライセンス
Any Association による公式の Anytype MCP サーバー を基盤に構築されています。 MIT ライセンスの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。