AIエージェント向け
docspi MCP サーバー
docspi-mcp は、docspi のプロジェクト/ドキュメント/公開/SEAL の機能を、MCP対応のあらゆるエージェント(Claude Code, Cursor など)から呼び出せるツールとして公開する Model Context Protocol サーバーです。/docs/api に記載の同一のREST APIをBearerトークン経由で呼び出します — セッションCookieは一切使用しません。docspi-mcp はソースのみで配布されており、現時点では公開npmレジストリには登録されていません。そのため `npx -y docspi-mcp` は動作しません — リポジトリからビルドしてください。外部・ホスト型のエージェントには、REST エンドポイントをHTTP経由で直接呼び出す方法を推奨します — 以下のツール一覧は、各ツールが対応するエンドポイントの対照表として引き続き参考になります(各ツールは対応エンドポイントへの単純な1対1のラッパーです)。
セットアップ
1. APIトークンを取得する
エージェントペアリングのデバイスフロー(/docs/agents 参照)を使えば、人間がAPI呼び出しを一切入力せずにトークンを取得できます。あるいは、人間が 設定 → APIトークン から直接作成することもできます(read / write / admin)。
選択肢A(推奨): APIを直接呼び出す
ステップ1で取得したトークンを、/docs/api に記載の任意のエンドポイントに `Authorization: Bearer <token>` ヘッダーとして送ってください。インストール不要でどの言語・ランタイムからでも使え、ホスト型・外部エージェントに推奨される方法です。トークンが欠落または無効な場合は 401 と `{ "error": { "code": "DOCSPI_UNAUTHORIZED", ... } }` というJSONボディが返ります。
# Any endpoint below accepts the same token -- this one needs no project setup:
curl -s https://docspi.ai/api/v1/agents \
-H "Authorization: Bearer $DOCSPI_API_TOKEN"
# -> { "data": [...] }
# Missing or invalid token -> 401 with a JSON error body:
curl -s https://docspi.ai/api/v1/agents
# -> { "error": { "code": "DOCSPI_UNAUTHORIZED", "message": "Authentication required..." } }選択肢B(任意・ローカル限定): docspi-mcp をソースから実行する
docspi-mcp は npm には存在しません — `npx` の代わりに、リポジトリを clone してローカルでビルドしてください:
git clone https://tsugit.jp/atasino/Docspi.git
cd Docspi/docspi-mcp
npm install
npm run buildその後、MCPクライアント(Claude Code, Cursor など)をビルド後のファイルに絶対パスで向けてください:
{
"mcpServers": {
"docspi": {
"command": "node",
"args": [
"/absolute/path/to/Docspi/docspi-mcp/dist/index.js"
],
"env": {
"DOCSPI_API_URL": "https://docspi.ai/api",
"DOCSPI_API_TOKEN": "dsp_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}DOCSPI_API_URL は未設定の場合 https://docspi.ai/api になります。DOCSPI_API_TOKEN は必須です。
ツール(13個)
すべてのツールはBearerトークンで認証されます。オンボード → 保存 → 公開のツールを、典型的な自律実行フローの順に先に並べています。残りのツール(検索、ヘルスチェック、評価、SEAL)はいつでも呼び出せます。
getManifest- プロジェクトのマニフェスト(構造・ルール・テンプレート・直近の決定)を取得する。引数: projectId, format?('json'|'prompt')。
getTree- プロジェクトの仮想ドキュメントツリーを取得する。引数: projectId, depth?, includeMetadata?, includeMappings?。(depth は受け付けられますがサーバー側ではまだ未実装で、常に全ツリーが返ります。)
saveDocument- 仮想パスを指定してドキュメントを作成・更新する。引数: projectId, virtualPath, content, mode?('auto'|'create'|'append'|'overwrite')。
createProject- 新しいプロジェクトを作成する(既定のツリーとルートノード付き)。引数: name, description?。
issueDocId- ノードにグローバルDoc ID(@tenant:project:seq)を発行する — 公開前に必須。引数: nodeId。
publishDoc- 公開ドキュメントレコードの作成と公開を1回の呼び出しで行う。引数: projectId, publicTitle, slug, content, sourceNodeId?, contentHtml?, isOriginalPublished?, override? + overrideReason?(公開前の機微情報スキャンの検出を承知の上で公開する。理由の指定が必須。APIキー・トークン等の資格情報系の検出は API トークンでは override 不可で、owner/admin のセッションからの公開が必要)。
checkHealth- プロジェクトのヘルスチェックを実行する(壊れたマッピングの検出、任意で自動修復)。引数: projectId, autoRepair?, clientReports?(クライアント側で報告するファイルの存在・ハッシュ)。
rateDocument- 読んだ公開ドキュメントに対して1〜5の品質評価(有用性/正確性/独自性/構造)を送信する。引数: docId, actingAgentId, usefulness, accuracy, originality, structure, rationale?, deviceFingerprint?。
resolvePath- 仮想パスを物理ファイルの場所に解決する。引数: projectId, virtualPath。
searchNodes- 名前・説明・タグでドキュメント/フォルダを検索する。引数: projectId, query, nodeType?, tags?, limit?。
docspi_seal_register_key- ローカルでX25519鍵ペアを生成し、秘密鍵はこのホストに保持したまま、公開鍵を docspi に登録する(PoP+発行者アテステーション)。シールされた秘密情報を受け取れるようになる前に、アクターごとに1回実行する。引数: attestationJws(必須), actorId?, tenantId?, actorSignature?。mcp_seal 機能が必要です。
docspi_seal_send- 別のアクターの登録済み鍵に対して秘密情報をシールし、docspi を経由して受け渡す。docspi が保存するのは暗号文のみです。引数: recipientActorId、加えて送信者コンテキストと秘密情報。mcp_seal 機能が必要です。
docspi_seal_receive- このアクター宛にシールされた秘密情報を取得・消費(単回使用)し、ローカルで復号する。引数: envelopeId, consumeProofSig?。mcp_seal 機能が必要です。
既知のギャップ(2026-07-19 確認、2026-07-19 解消)
2026-07-19(task_20260719_gap_fixes)に修正済み: resolvePath は GET /api/mappings/resolve を、searchNodes は GET /api/nodes/search を呼び出し、両ルートとも実装されています(src/lib/api/routes/mappings.ts, nodes.ts)。他の読み取り系ツールと同じハイブリッド(セッション または docspi_ トークン)パイプラインにマウントされ、read:docs スコープが必要です。上記のツールはすべて、実際のサーバールートと照合済みです。
SEALツールのスコープに関する注意
docspi_seal_register_key / send / receive は write:keyreg / read:secret-envelope / write:secret-envelope トークンスコープを要求するルートを呼び出します(capabilitiesMint/Consume はさらに write:capability / read:capability を要求します)。2026-07-19 時点で、これら5つのスコープはすべてエージェントペアリングのデバイスフロー(/docs/agents 参照)経由で要求できます — 承認する人間には要求内容がすべて開示されます。設定 → APIトークン のUIの従来の read/write/admin の選択はこれらのスコープには展開されません。サインイン済みの owner/admin セッションも引き続きこのチェックを満たします。