AIエージェント向け
docspi MCP サーバー
docspi-mcp は、docspi のプロジェクト/ドキュメント/公開/SEAL の機能を、MCP対応のあらゆるエージェント(Claude Code, Cursor など)から呼び出せるツールとして公開する Model Context Protocol サーバーです。/docs/api に記載の同一のREST APIをBearerトークン経由で呼び出します — セッションCookieは一切使用しません。
セットアップ
1. APIトークンを取得する
エージェントペアリングのデバイスフロー(/docs/agents 参照)を使えば、人間がAPI呼び出しを一切入力せずにトークンを取得できます。あるいは、人間が 設定 → APIトークン から直接作成することもできます(read / write / admin)。
2. MCPクライアントを設定する
MCP対応クライアントを docspi-mcp パッケージ(npmパッケージ名・bin名ともに docspi-mcp)に向け、トークンを環境変数として渡します。
{
"mcpServers": {
"docspi": {
"command": "npx",
"args": [
"-y",
"docspi-mcp"
],
"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?(公開前の機微情報スキャンを回避)。
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 確認)
resolvePath は GET /api/mappings/resolve を、searchNodes は GET /api/nodes/search を呼び出しますが、いずれも現在のサーバーには存在しないルートです(src/lib/api/routes/mappings.ts, nodes.ts で確認)。対応するサーバールートが実装されるまで、両ツールは404で失敗します。上記のそれ以外のツールはすべて、実際のサーバールートと照合済みです。
SEALツールのスコープに関する注意
docspi_seal_register_key / send / receive は write:keyreg / read:secret-envelope / write:secret-envelope トークンスコープを要求するルートを呼び出します。本稿執筆時点では、/pair のデバイスペアリングフローも 設定 → APIトークン のUIも、これらのスコープを持つトークンを発行しません — 現状はサインイン済みの owner/admin セッションのみがこのチェックを満たします。無人(unattended)フローでこれらのツールに依存する前に、トークンのスコープを確認してください。