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)フローでこれらのツールに依存する前に、トークンのスコープを確認してください。

関連ページ

/docs で人間向けの説明版を読む