Siftable について
Siftableは、ガバナンス下の作業、ナレッジ、カレンダー、人、データセット、Vaultの機能をIDEクライアントに公開するMCPサーバーです。スコープによる認可を採用し、機微な検索や正規CRMレコードの変更にはレビュー手順を設けています。
主な機能
- 01ガバナンス下の作業・ナレッジツールを利用
- 02人や組織を検索
- 03データセットを照会し品質を確認
- 04作業項目とリースを管理
- 05スコープに基づき機能へアクセス
活用シーン
- 01割り当てられた作業項目を検索・管理
- 02認可された範囲で人や組織を検索
- 03データセットを照会し品質を確認
- 04レビューと承認用のCRMインポートを準備
MCP 対応
MCPサーバーは、Cursor、Claude Desktop、VS CodeなどのクライアントにSiftableのツールを公開します。ホスト型OAuthとstdioに対応し、利用可能なツールは付与されたスコープに応じて決まり、一部の機能は承認やカタログ更新を要します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://siftable.io/api/v1/mcpclaude mcp add --transport http tom-r-main https://siftable.io/api/v1/mcp{"mcpServers":{"tom-r-main":{"type":"http","url":"https://siftable.io/api/v1/mcp"}}}Cursor で開く{"servers":{"tom-r-main":{"type":"http","url":"https://siftable.io/api/v1/mcp"}}}VS Code で開く{"mcpServers":{"tom-r-main":{"type":"http","url":"https://siftable.io/api/v1/mcp"}}}{"mcpServers":{"tom-r-main":{"serverUrl":"https://siftable.io/api/v1/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
129| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| projectId | string | いいえ | 解決に使用する明示的なプロジェクト ID |
| repositoryId | string | いいえ | 解決に使用する明示的に登録されたリポジトリ ID |
| clientRootHint | string | いいえ | クライアントが指定する絶対パスのチェックアウトルートのヒント。ホスト型 MCP はこの値を推測しません |
詳細
Siftable MCP サーバー
Model Context Protocol サーバーです。Cursor、Claude Desktop、VS Code などの IDE クライアントに Siftable のツールを公開します。
ExecuFunction 0.4.0.0 のホスト環境との互換性
npm パッケージは 1.3.0 です。ホスト環境およびソース投影プロファイルは
1.34.0 です。Projection 1.34.0 では、上限付きコレクションのレシートを標準化し、
データセットの集計セマンティクスを公開します。また、再接続が必要な OAuth 接続と、
その場で認可範囲を広げられるセッションを区別します。Projection 1.33.0 では、
自然言語によるソース検索の意図を認識し、リクエストを厳選されたコードメモリに
ルーティングする代わりに、ローカルでの復旧方法を含む廃止済み機能カードを返します。
Projection 1.32.0 では、明示的な no_matches 検出結果を追加し、
汎用操作や弱いプレフィックスだけに基づく機能の一致を拒否します。また、
正規の複合意図の一致を保持し、失敗レシートに HTTP ステータスクラスを記録します。
Projection 1.31.0 では、ガバナンス対象のリード検出に必要なスコープ要件を追加しました。
Projection 1.29.0 では、ホスト型クライアント向けの管理対象作業リースセッションを追加し、
クレームトークンはサーバー側に保持します。Projection 1.28.0 では、ガバナンス対象の
リード検出ツールを 4 つ、アプリと同等の人物/組織エンリッチメントツールを 5 つ追加しました。
リード検出はデフォルトで無効です。有効にするには、個別に付与された
lead_discovery:read または lead_discovery:write スコープが必要です。mcp:* は
どちらのスコープも含みません。そのため、ホスト環境のベースラインカタログでは、
request_capability の承認とカタログの更新によってホスト環境で利用可能なツールが
公開されるまで、企業検索は表示されません。企業検索は、有料の Crustdata
リクエストを 1 回に制限し、実行前に最大料金を表示して、プロバイダーの実際のクレジットを
精算し、結果をレビュー候補としてのみ保存します。正規の CRM レコードは、
lead_discovery_import_plan_create の後に既存の
crm_import_plan_approve および crm_import_plan_apply のレビューチェックを通じて作成します。
人物エンリッチメントは、保存済みのプロフィールと事実の提案を返します。適用時に 受け付けるのは、完了済みの実行から再取得した提案のフィールド名と事実 ID のみです。 自由形式の置き換えは受け付けず、再試行にも安全ではありません。組織エンリッチメントは、 アプリの有料プレビュー専用フローのままであり、正規の CRM 変更を適用できません。
1.3.0 互換性に関する注意
バージョン 1.3.0 では、sift.dataset.query.v2、バージョン管理された集計レシート、
統一された作業項目コレクションのメタデータ、および reconnect_required 機能状態を
公開します。以前のデータセットクエリレシートを検証するコンシューマーは、
schemaId によって動作を選択してください。
1.2.42 互換性に関する注意
バージョン 1.2.42 では、公開準備状況の監査を完了しました。自然言語によるソース検索の 検出では、正規の廃止済み/ローカル限定の復旧カードを返します。一方、厳選された コードメモリの検出は、これとは別に扱われます。ホスト環境のセットアップガイドには、 ChatGPT と Codex の設定手順が正確に記載されるようになりました。
1.2.41 互換性に関する注意
バージョン 1.2.41 では、ホスト環境の監査で見つかった 2 つの不具合を解消しました。
データセットのルートは、HTTP 境界で不正なデータセット UUID を拒否し、MCP レシートは
その結果の 400 を bad_request として保持します。find_capability では、
ドメインを直接示すシグナルと、それに一致する操作の両方が必要になりました。
無関係な意図に対しては、機能レーンを空にし、言い換えの案内を含む
queryOutcome: no_matches を返します。正確なツール名、削除済みツールのカード、
仮想のオリエンテーションツールは、セマンティックな拒否を受けません。
1.2.40 互換性に関する注意
バージョン 1.2.40 では、ライブエージェント QA の第 3 ラウンド(2026-08-22 のホスト監査)に対応しています。
claimabilityは依存関係だけでなく、ライフサイクルとリースの状態も正確に示します。stateはready、waiting、dependency_failed、leased、lease_expired、blocked、in_review、human_review_gate、terminalのいずれかで、blockedByとともにclaimable、reason、nextActionが含まれます。Claimed、running、cancelled、done の作業がreadyとして示されることはなくなりました。claimableが権威あるブール値です(lease_expiredの項目と、先行項目が完了している、レガシー形式から変換されたblockedのプレースホルダーは、明示的な claim によって復旧できるため、claimable: trueです)。claim できない項目を ID で指定すると、not_foundではなく、状態(lease_active、work_item_terminal、…)を示す 409 が返されます。サーバーからclaimableが提供される場合、CLI と TUI はこれに基づいて操作を制限します。agent_work_listとwork_item_listは、デフォルトで done/failed/cancelled の項目を非表示にします(includeTerminal: trueまたは明示的なstatusを指定すると表示されます)。また、並べ替えのルールを出力し、queueRankの値が高いほど先に並び、デフォルト値は0、負の値は保留を意味し(0の後に並ぶ)、その旨を説明します。work_item_heartbeatは、claimed 状態の作業に対する heartbeat によって作業が開始される(claimed → running、work_item_startと同じ)ことを示します。start、heartbeat、release に渡されたresultSummaryは、黙って破棄されずに保存されるようになりました。- 接続から作業項目を読み取れる場合、
task_getはタスクに紐付く実行可能な作業を一覧表示します(先頭 10 件。残りがある場合はその旨を示すマーカー付き。項目がない場合はwork_item_createのヒントとともに「まだありません」と表示)。必要なスコープがない場合は機能に関するヒントが維持され、上流での失敗はその旨が報告されます(再試行なしで 1 回だけ試行)。 entity_graphは、各レコードにステータスがある場合、そのレコード固有のステータスを報告します(完了したタスクはactiveではなくcompleted、ノート/データセットは active/archived、関連付けられたプロジェクトには[untitled entity]/activeではなく名前とステータスが表示されます)。マイグレーション V400 では、ノート以外のすべてのノードにactiveを割り当て、プロジェクトを一切結合していなかった SQL 関数を修正します。その他のノードタイプでは、この欄にタイプ固有のラベルが引き続き表示されます(組織は業種、人物は関係、ニュースは公開日)。note_searchは、異なる尺度の生スコアを並べ替えるのではなく、全文検索の一致(websearch 構文)、意味的に近い項目、リテラル部分文字列によるフォールバックの順に順位付けします。スコアは同じソース内では比較できますが、ソース間では比較できません。object_findは、未知のオブジェクトタイプキーと、既知のタイプにレコードが 0 件の場合を区別します。- コードメモリーの一覧では、チャンクの根拠がない
confirmedの事実をnot_recorded (confirmed; no source-chunk evidence recorded)と表示します。これにより、人間が認めた事実の確度を下げずに、根拠が不足していることを明示できます。
Projection 1.25.0 では、ホスト型 OAuth カタログに、現在のトークンで呼び出せるツールのみが含まれるようになりました。find_capability では、引き続きスコープの昇格が必要なツールを見つけられます。これらのツールは、認可とカタログの更新後に表示されます。また、サーバーの初期化に関するガイダンスを短くし、クライアントが大きな説明ブロックをツールの説明に繰り返し含めないようにしました。
1.2.39 互換性に関する注記
バージョン 1.2.39 では、ライブエージェント QA の第 2 ラウンドに対応しています。
work_item_requeueは、リースの有効期限が切れた claim 済み/実行中のアイテムも、元の claim トークンなしでキューに戻すようになりました。アクティブなリースが再キューされることは引き続きありません。work_item_listでは期限切れのリースがインラインで表示され([claimed · lease expired <time>])、work_item_getでは、単にclaimedと表示する代わりに、アイテムをそのまま claim するか再キューできることを示すLease: expired <time> — …ヘッダーが JSON の前に付きます。work_item_revision_history/work_item_verification_historyは、記録が何もない場合に[]を出力する代わりに、その旨を文で伝えます。object_findは検索したオブジェクトの種類を明示し、一致するものがない場合は、単に「No objects found.」と表示する代わりに、schema_introspect/people_search/organization_searchを案内します。schema_introspectはデフォルトでデータセットの概要(タイトル、ID、行数、フィールド数)を表示します。フィールドごとの一覧を表示するには、includeDatasetFields: trueを指定します。dataset_quality_checkは空文字列を欠損値として数え、バージョン付きの構造化された結果を返すようになりました。頻出値は観測事項として扱われ、一意であると宣言されたフィールドでのみ品質違反となります。
Projection 1.22.0 には、schema_introspect の入力スキーマとツールの説明の変更が記録されています。
1.2.38 互換性に関する注記
バージョン 1.2.38 では、エージェントが作業権限を得るまでの経路を、あちこち探し回る必要のない直接的なものにしました(2026-08-20 の決定。Grok と Claude による実運用を受けたものです)。
- ホスト型 OAuth の初回接続では(
scopeパラメーターがない場合、またはクライアントがscopes_supportedをコピーした場合)、同意画面の背後でmcp:* work:read work:writeが付与されます。Vault と AI のスコープは引き続き、ステップアップ認証または CLI のみで取得できます。 - ステップアップ認証で接続が取得可能なツールは
tools/listに表示されます。承認前にそのツールを呼び出すと、同じelevationリンク(または CLI/PAT の案内)を含むインバンドのツールエラーが返ります。HTTP 403 のinsufficient_scopeチャレンジが発行されるのは、challengeモードのrequest_capabilityに限られるようになりました。 - 昇格リンクの有効期間は 1 時間になりました(従来は 10 分)。承認後、サーバーは
tools/list_changedを通知して、購読しているクライアントに更新を促します。また、ツールが引き続き非表示の場合は、ツールリストを更新するか、コネクターを再起動するようエージェントに案内します。 find_capability、request_capability、context_currentは、完全な JSON の代わりに、名前、利用可否、次の手順を含む簡潔なテキストの概要を表示します。完全なプロジェクションは引き続きstructuredContentに含まれます。task_getとタスクツールの説明では、work:readが不足しているという誤った案内がなくなりました。taskIdを指定したwork_item_listを案内し、ツールを呼び出せない場合にのみrequest_capabilityを使うようになりました。- 汎用リストのテキストにある「安定したハンドル」では、各 ID の出所フィールドが明記され、重複がまとめて表示されるようになりました。そのため、20 行で共有されている
projectIdは、20 件の新しいレコードではなく、1 つのプロジェクト参照として表示されます。
Projection 1.21.0 には、表示されるツールと説明の変更が記録されています。 アップグレード後、ホスト型 MCP クライアントを再接続して、Projection 1.21.0 のスキーマを更新してください。
1.2.37 互換性に関する注意
バージョン 1.2.37 では、クライアントによる OAuth の再実行に依存せず、ホスト型 OAuth 接続でエージェント側からスコープを追加できるようになりました。
request_capability(inspect)は、Streamable HTTP で、不足しているスコープが追加可能(work:read、work:write)であり、サーバーがcapabilityAcquisition.createElevationGrantを提供している場合に、elevationを返すようになりました。これは、接続済みの OAuth トークンに対する、有効期間が短い(10 分間)、所有者に紐付いた承認リンクで、有効期間内であれば所有者が再利用できます。ユーザーがリンクを開き、再認証してファーストパーティの同意画面で承認すると、既存のトークンがその場で拡張されます。エージェントは再接続せずにツールを再試行できます。この場合、recommendedNextAction.typeはopen_elevation_urlとなり、reconnectRequiredはfalseです。拡張できない接続では、引き続き再接続の案内が代替手段となります。find_capability、context_current、およびゲートで拒否されたツールへの直接呼び出しは、クライアントの再接続ではなく、この手順を案内するようになりました。- ホスト型 OAuth で、明示的な
work:writeリクエストが受け付けられるようになりました(同意が必要です)。1.2.37 では、クライアントがscopeを省略した場合の認可時のデフォルトはmcp:* work:readであり、scopes_supportedではこの組み合わせのみが通知されていました(どちらも 1.2.38 で work ファミリー全体に拡張されました)。
Projection 1.20.0 には、request_capability の出力スキーマと説明の変更が記録されています。アップグレード後、ホスト型 MCP クライアントを再接続し、Projection 1.20.0 のスキーマを更新してください。
1.2.36 互換性に関する注意
バージョン 1.2.36 では、stdio のツールサーフェスを変更せずに、ホスト型エンドポイントを ChatGPT プラグインディレクトリへの掲載に対応させました。
upload_documentは、ホスト型プロファイルでfilePathを通知しなくなりました。ホスト型スキーマではインラインのcontentとfilenameが必須です。また、allowLocalFilesを指定してクライアントを構築していない場合、filePath引数は MCP 境界、executeTool、およびSiftClient内で、正規化されたbad_requestエラーとして拒否されます。このフラグを設定するのはローカルの stdio エントリーポイントのみです。ホスト型およびリモートのクライアントがサーバーのファイルシステムにアクセスすることはできません。- ホスト型ツールには、仕様上、他の MCP クライアントが無視する OpenAI 専用ヒントが
_metaに含まれるようになりました。内容は、接続済みの OAuth クライアントが実際にリクエストできるスコープ(ベースラインのmcp:*のみ)を列挙するsecuritySchemesと、各ツールのタイトルから生成されるツール呼び出しステータス文字列です。 - すべてのカタログツールで
outputSchemaが公開されるようになりました。これまでスキーマがなかった 27 個の読み取り専用クエリツールは、text/plainの結果を伴うsift.action_receiptエンベロープを宣言します。これは、tools/callがすでに返している内容と一致します。 - Projection とカタログダイジェストは、トランスポートに合わせたスキーマから計算されるようになりました。そのため、ホスト型の
find_capabilityとschemaDigestは、クライアントに実際に提示されるツールサーフェスを示します。
Projection 1.19.0 には、ホスト型 upload_document スキーマとエンベロープ出力スキーマが記録されています。アップグレード後、ホスト型 MCP クライアントを再接続し、Projection 1.19.0 のスキーマを更新してください。
1.2.35 互換性に関する注記
バージョン 1.2.35 では、1.2.32 のレビューで見つかった残りのコントラクトの相違点を解消しています。
schema_introspectは、デプロイ全体のデータセットスイッチと呼び出し元の機能許可の両方でデータセットのルートが許可されている場合にのみ、データセットを公開するようになりました。データセットとオブジェクトタイプのクエリは、呼び出し元の RLS ID で実行されるようになりました。code_memory_deleteは、過去に存在したすべてのメモリに対して 500 を返していました。V351では、ライフサイクルイベントログにON DELETE CASCADE外部キーと無条件にエラーを発生させる追記専用トリガーが追加されていたため、カスケードによってすべての削除が中断されていました。V389では、参照整合性カスケードを許可しながらログへの直接編集は引き続き拒否し、NOT NULLの所有者列を NULL にしてしまう系譜外部キーを 2 つ修復します。また、後継の削除時には、孤立した前任を監査イベントとともにneeds_reviewに戻します。- MCP 経由で人間による承認アクションを呼び出すことはできなくなりました。
code_memory_confirm、code_memory_reject、code_memory_edit、code_memory_supersedeは、ホスト型とローカルの両方のエージェントトランスポートで非表示になり、拒否されます。エージェントは候補を保存したり、事実をneeds_reviewに設定したりできます。人間が Siftable インターフェースで整理します。 project_get_contextは各タスクのワークフローのフェーズをstatusフィールドで報告し、phaseは NULL のままにしていました。どちらも、オープン、ブロック中、期限超過のタスクを含め、実際の列値を返すようになりました。
Projection 1.18.0 では、人間による整理の境界が記録され、エージェント向けに公開されるインターフェースから 4 つのツールが削除されています。
このリリースにはマイグレーション V389__code_memory_delete_cascade.sql が必要です。
適用するまで、code_memory_delete は引き続き失敗します。
1.2.34 互換性に関する注記
バージョン 1.2.34 では、呼び出しは成功しても回答が誤っていたり不完全だったりする一連の不具合を修正しています。
companyを指定して人物を書き込むと、必ず 500 が返されていました。組織のアップサートで、V357 で部分インデックスになった一意インデックスを、その述語を指定せずに指定していたため、Postgres が競合対象を推定できませんでした。- 作成したコンテンツが転送中に削除されなくなりました。リクエストパイプラインではすべての文字列に
striptags()を適用していたため、フィルター演算子の<が削除され、List<String>がListになり、ノートタイトルのマークアップが取り除かれていました。これはすべての MCP 呼び出しで、しかも気付かれないまま発生していました。コンテンツの許可リストがトップレベルの本文キーにしか一致しなかったためです。代わりに、HTML は描画時にエスケープされるようになりました。 - 数値を使った、テキスト型の列に対する範囲比較(
>>=<<=)は、テキストとして黙って比較されるのではなく、型の再設定を促す経路で拒否されるようになりました。テキスト比較では'99'が'199'より大きい順に並ぶためです。このような列をソートした場合、誤った順序が警告なしで妥当そうに返されるのではなく、警告が返されます。 dataset_queryは構造化された結果にwarningsを含めるようになりました。task_getは、タスクの概要全体(rationale、deliverable、verification、approachConstraints、acceptanceCriteria、scope)を構造化して返すようになりました。以前は構造化データを優先するクライアントに、完了条件の定義がないタスクが返されていました。
アップグレード後、MCP クライアントを再接続して Projection 1.18.0 のスキーマを更新してください。
1.2.33 互換性に関する注記
バージョン 1.2.33 では、ホスト型 OAuth のトークン交換を修正しています。認可サーバーは、コードを削除して消費するためそのような列が存在しないテーブルに対し、consumed_at IS NULL フィルターを使ってハッシュ化された認可コードを検索していました。そのため、Google の同意後に Cursor、Codex、その他のリモートクライアントから新規接続するたびに、Internal Server Error が発生していました。既存の認証済みセッションには影響ありません。ツールのコントラクトと Projection 1.16.0 のスキーマに変更はありません。以前失敗したログインを再試行する場合を除き、再接続は不要です。
1.2.32 互換性に関する注意
バージョン 1.2.32 では、エージェントが context_current.projectCandidates から選択したプロジェクトを保存できるよう、メタデータのみを変更する明示的な repository_project_link mutation が追加されました。また、未対応クライアントとの一致は副次的な検索経路に保持し、スコアがゼロの全文検索によるノートのヒットは除外します。
アップグレード後は MCP クライアントを再接続し、projection 1.16.0 のスキーマを更新してください。
ホスト型リモートクライアント
推奨するホスト型エンドポイントは次のとおりです。
https://siftable.io/api/v1/mcp
Claude のリモートコネクター、Cursor、Codex、Devin、Kimi Code、Antigravity は Streamable HTTP 経由で接続できます。URL のみを使う OAuth 設定を推奨します。最初のパーティ同意フォームを経由する場合、scope を省略した認可リクエストにはデフォルトで mcp:* work:read work:write が付与されます。また、後から不足している権限は、request_capability が返す1時間有効のリンクからその場で承認できます(Streamable HTTP のみ。従来の /sse セッションは代わりに再接続します)。Authorization ヘッダーを設定すると、静的 PAT モードが選択されます。このトークンのスコープは、OAuth チャレンジや権限昇格リンクでは拡張できません。
クライアントごとに設定キーとコールバックの動作は異なります(Cursor、Codex、Kimi では url、Antigravity では serverUrl、Claude と Devin では UI で管理する接続)。プロバイダーの情報に基づく対応表と検証手順については、
docs/runbooks/hosted-mcp-client-compatibility.md
を参照してください。
認証済みのチェックアウトが必要なクライアントや、ホスト型エンドポイントを利用できないクライアント向けには、npm パッケージを引き続きローカルの stdio 経路として利用できます。
MCP Apps ビュー
MCP Apps 拡張機能を実装したホスト(Claude、ChatGPT、VS Code、Goose)では、一部のツールがサンドボックス化されたビューを表示できます。これらのツールには、ui://siftable/<view>.html リソースを指す _meta.ui.resourceUri が付与されます。このリソースは resources/list に一覧表示され、resources/read によって MIME タイプ text/html;profile=mcp-app で提供されます。このメタデータは表示専用です。ツールの projection、スコープ、提示されるカタログ、カタログダイジェストは変更されず、他のすべてのクライアント向けに content は完全なテキスト回答のままです。
UI メタデータは、View バンドルが dist/ui/ に存在する場合にのみ付与されます。バンドルなしでビルドすると、UI メタデータは一切提示されません。レビュー済みのツールと View の許可リストは src/ui/viewRegistry.ts にあります。設計については
docs/design/mcp-ui-surfaces-plan.md
を参照してください。
バンドルは @siftable/mcp-apps ワークスペース(packages/exf-mcp-apps。View ごとに自己完結型の HTML ファイルを1つ生成)でビルドされ、npm run build の最後に scripts/copy-ui-bundles.mjs によって dist/ui/ にコピーされます。Nx 経由では、apps ワークスペースが先にビルドされます(nx run @siftable/mcp-server:build)。ホスト型 Docker イメージが現在実行しているように、apps のビルドを行わずに npm run build を実行した場合、何もコピーされず、機能は無効のままです。verify:package、prepublishOnly、pack:mcpb は先に apps をビルドし、バンドルが欠けていると失敗します。そのため、公開される tarball や .mcpb には常にすべての View バンドル(dist/ui/graph.html、data.html、review.html)が含まれます。
現在利用できる View は次のとおりです。
| View | リソース | ツール |
|---|---|---|
| グラフ | ui://siftable/graph.html | entity_graph、object_links |
| データ | ui://siftable/data.html | dataset_query、dataset_aggregate、dataset_summarize、dataset_quality_check、dataset_facets、dataset_compare、dataset_rank、dataset_plot_result、dataset_timeseries、dataset_bucket、people_search、organization_search、task_list |
| レビュー | ui://siftable/review.html | lead_discovery_candidate_list、lead_discovery_run_get、crm_import_plan_get、crm_import_plan_create |
重要なツールに対する人間の確認
7 つのツールは、実行前に人間の確認を求めます。4 つの一括削除ツールは適用呼び出し時(confirm: true と previewId を指定した場合)に確認を求めます(プレビューとドライランでは確認を求めません)。このほか、フィールドを削除する場合の dataset_schema_modify、crm_import_plan_approve、および上限額を USD で明示する確認を求める lead_discovery_company_run が該当します。確認要求は、単一の confirm ブール値を持つフォーム形式の elicitation を含む MCP 2026-07-28 の複数ラウンドトリップ InputRequiredResult として送られます。クライアントが確認画面を表示し、その後 inputResponses を指定して同じ呼び出しを再試行します。バックチャネル(stdio またはセッションを維持する HTTP)がある 2025 年頃のセッションでは、SDK のレガシー shim が同じ確認要求を elicitation/create リクエストとして送信します。ステートレスな 2025 HTTP フォールバックでは、リクエストごとにクライアントの機能が不明なため、確認は求められません。
elicitation 機能を宣言していないクライアントでは、ツールは従来どおり実行されます。成功、失敗、拒否のいずれの場合も、確認対象のすべてのレシートには humanGate が記録されます。ツールが実行されたレシートでは、accepted を伴う elicitation、または not_asked を伴う unsupported_fallback が記録されます。実行されなかった拒否レシート(error.code: "declined_by_user")では、正確な拒否内容、declined、cancelled、または not_confirmed を伴う elicitation が記録されます。この確認は、誠実なホストを前提とした人間参加型の保証です。認可の境界は引き続き OAuth スコープです。シードされたツール一覧は src/registry/mcpToolContractSeed.ts に、確認文は src/humanGate.ts にあります。
1.2.31 互換性に関する注意
このリリースでは、カーソルページをまたいでもタスク収集の合計数が変わらないようにし、トランザクションスコープの RLS のもとで永続的な ID を使ってリポジトリのコンテキストを解決するとともに、リポジトリを名前で自動リンクする代わりに、明示的なプロジェクト候補を返します。プロジェクトリソースでは、不透明なカーソルによるページネーションに対応し、バックエンドの障害を提示するようになりました。また、グラフと人物の結果に、利用可能な正規ラベルが含まれるようになりました。アップグレード後に MCP クライアントを再接続し、projection 1.15.0 のスキーマを更新してください。
1.2.30 互換性に関する注意
このリリースでは、エージェントの作成、作業のクレームとライフサイクルの遷移、コードメモリへの書き込み、ドキュメントのアップロード、Vault エントリーの作成、および管理下にある承認、実行許可、マテリアライズのリクエストに、呼び出し元が安定して指定する冪等性キーが必要です。同じキーで再試行すると、元の正式な応答が再生されます。ペイロードが変更されている場合は競合します。Vault のレシートにはメタデータまたはランナーが暗号化した暗号文が保持され、平文は保持されません。ストリーミングされたプロバイダー出力は再生用に永続化されないため、ai_generate は引き続き明示的に再試行安全ではありません。アップグレード後に MCP クライアントを再接続し、projection 1.14.0 のスキーマを更新してください。
1.2.29 互換性に関する注意
このリリースでは、ホスト型機能の検査がターミナルで再接続後も安全に行えるようになり、タスクの状態と管理下にある承認の不変条件が追加されました。また、プロジェクト、タスク、データセット、スキーマ、人物、組織、カレンダーの結果に、安定した ID と型付きの詳細情報が含まれるようになりました。廃止されたソースインデックス/検索名はローカルのチェックアウト検索にルーティングされますが、厳選されたコードメモリは引き続き利用できます。dataset_create、dataset_mutate、dataset_schema_modify、dataset_materialize_result の各ツールには、呼び出し元が安定して指定する idempotencyKey が必要です。
同じキーを同じペイロードで再利用すると元の結果が再生されますが、変更したペイロードで再利用すると拒否されます。既存の MCP セッションでは、これらの変更操作を呼び出す前に再接続し、キャッシュされたツールスキーマを更新する必要があります。Idempotency-Key ヘッダーを省略した場合、直接 REST を呼び出すクライアントとの後方互換性は維持されます。
プライバシーポリシー
サーバーは、設定された SIFT_API_URL(デフォルトでは https://siftable.io)にある Siftable API にツール呼び出しを送信し、それ以外には送信しません。起動時の環境以外にデータをローカル保存することはなく、個人用アクセストークンが送信されるのもこの API だけです。収集、利用、保存、共有、保持、および連絡先情報を網羅する Siftable のプライバシーポリシーは、https://siftable.io/privacy.html にあります。
配布成果物
@siftable/mcp-server はモノレポから公開されます。公開ソースミラー
https://github.com/execufunction-mcp/mcp-server は
scripts/mirror-mcp-server.sh で更新され、単独ではビルドできません。
| 成果物 | コマンド | 配布先 |
|---|---|---|
| npm パッケージ | npm publish --workspace @siftable/mcp-server | stdio クライアント向けの npx @siftable/mcp-server |
| Claude Desktop 拡張機能 | npm run pack:mcpb --workspace @siftable/mcp-server | build/siftable.mcpb。GitHub リリースに添付し、デスクトップ拡張機能のフォームから提出します |
| MCP Registry エントリー | mcp-publisher login github の後に npm run publish:registry --workspace @siftable/mcp-server | npm パッケージを指す io.github.Tom-R-Main/mcp-server |
manifest.json はデスクトップ拡張機能のマニフェストです。その version は
package.json と一致している必要があり、バンドルのビルド時に検証されます。バンドルには独自の
本番用 node_modules が含まれるため、モノレポなしで実行できます。
クイックスタート
1. Personal Access Token を作成する
- Siftable → Settings → Developer → Access Tokens に移動します
- 「Create Token」をクリックします
- 名前を付けます(例:「Cursor MCP」)
- MCP の基本アクセスには
mcp:*を選択し、ワークフローに必要な特定のスコープファミリーを追加します (例:projects:read、tasks:write、work:read)。mcp:*はすべての権限を付与するものではありません。 - トークンをすぐに保存してください。表示されるのは一度だけです!
2. MCP クライアントを設定する
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json を編集します。
{
"mcpServers": {
"siftable": {
"command": "npx",
"args": ["@siftable/mcp-server"],
"env": {
"SIFT_API_URL": "https://siftable.io",
"SIFT_PAT": "sift_pat_your_token_here"
}
}
}
}
Cursor
Cursor の MCP 設定に追加します。
{
"siftable": {
"command": "npx",
"args": ["@siftable/mcp-server"],
"env": {
"SIFT_API_URL": "https://siftable.io",
"SIFT_PAT": "sift_pat_your_token_here"
}
}
}
VS Code
MCP 拡張機能の設定で構成します。
3. IDE を再起動する
設定後、IDE を再起動して MCP サーバーを読み込みます。
利用可能なツール
環境の把握と機能の取得
新しいクライアントセッションでは、毎回 context_current から開始してください。これは、
有効なワークスペース、プロジェクト、リポジトリ、トランスポート、提示されたスコープと有効なスコープ、
不足しているリクエスト可能なスコープ、および推奨される次の呼び出しを報告します。ホスト型 MCP は、
クライアントがルートヒントを明示的に指定しない限り、理由とともに null のチェックアウトを返します。
ツールが見つからない場合や、操作が許可されていない場合は、検出の入り口として
find_capability を使用してください。認可チャレンジを発生させずに構造化された復旧計画を取得するには、
inspect モードで request_capability を呼び出します。challenge モードは、クライアントが HTTP 403
レスポンスから標準準拠の OAuth アクションを表示できる場合にのみ使用してください。
検出の信頼度要件を満たす候補がない場合、find_capability は queryOutcome: no_matches、
0 件の件数、空のレーンを返します。Siftable のドメインと操作の両方を含めて言い換えるか、
tools/list を確認してください。結果が 0 件のレスポンスを認可の証拠として扱わないでください。
task_* は人間による計画を管理します。work_* はエージェントが実行する作業を管理します。
後続の呼び出しでは、コレクションおよび変更結果で返された安定した ID を優先してください。
| ツール | 説明 | 変更 |
|---|---|---|
context_current | プリンシパル、所有者、プロジェクト、リポジトリ、チェックアウト、および有効な機能コンテキストを解決します | いいえ |
find_capability | 呼び出し可能、不足、リクエスト可能、および未サポートの機能を検出します | いいえ |
request_capability | 復旧方法を確認するか、OAuth 認可チャレンジをリクエストします | いいえ |
プロジェクト
| ツール | 説明 | 変更 |
|---|---|---|
project_list | ステータスによるフィルタリング、上限付きカーソルページネーション、安定した ID、および簡潔な概要を使ってプロジェクトを一覧表示します | いいえ |
project_create | 新しいプロジェクトを作成します | はい |
project_update | プロジェクト名、概要、ステータス、絵文字を更新します | はい |
project_archive | プロジェクトをアーカイブします(破壊的操作) | はい |
project_get_context | プロジェクトの完全なコンテキスト(タスク、メモ、シグナル)を取得します | いいえ |
タスク
| ツール | 説明 | 変更 |
|---|---|---|
task_list | プロジェクト/ステータス/フェーズ/工数/タイトルのフィルターを指定して、人間が計画するタスクを一覧表示します | いいえ |
task_get | 人間が計画する単一のタスクの詳細をすべて取得します | いいえ |
task_create | 優先度、フェーズ、工数、受け入れ基準を指定して、人間が計画するタスクを作成します | はい |
task_update | 人間が計画するタスクのフィールド(タイトル、ステータス、優先度、フェーズ、工数、スコープ)を更新します | はい |
task_delete | タスクを削除します(破壊的操作) | はい |
task_bulk_delete | ID またはフィルターを指定して、タスクの削除をプレビューするか、一括削除します | はい |
task_complete | タスクを完了としてマークします | はい |
エージェント
| ツール | 説明 | 変更 |
|---|---|---|
agent_list | ユーザーに表示されるエージェントの別名と機能を一覧表示します | いいえ |
agent_get | スラッグまたは ID でエージェントの別名を取得します | いいえ |
agent_create | エージェントの別名を作成します | はい |
agent_update | 別名のメタデータ、機能、または権限を更新します | はい |
agent_disable | 履歴を削除せずに別名を無効にします | はい |
agent_work_list | 別名に割り当てられた実行可能な作業を一覧表示します | いいえ |
作業項目
| ツール | 説明 | 変更 |
|---|---|---|
work_item_list | 依存関係に基づく実行可能性の正式な判定を含め、作業項目を一覧表示します | いいえ |
work_item_get | 作業の詳細、依存関係、充足状況、実行可能性を取得します | いいえ |
work_item_create | オプションで UUID の dependsOn エッジを指定して、範囲を限定した作業を作成します | はい |
work_item_dependencies_replace | 作業項目の UUID 依存関係をアトミックに置き換えます | はい |
work_item_claim | キューにある実行可能な作業をリース付きで取得します | はい |
work_dependency_policy_get | プロジェクトのデフォルトの依存関係ゲートを取得します | いいえ |
work_dependency_policy_update | プロジェクトのデフォルトの依存関係ゲートを設定します | はい |
work_item_start | 取得済みの作業を実行中としてマークします | はい |
work_item_heartbeat | リースを延長します | はい |
work_item_block | 作業をブロック中としてマークします | はい |
work_item_review | 作業をレビューが必要な状態としてマークします | はい |
work_item_complete | 要約/成果物を添えて作業を完了します | はい |
work_item_fail | 作業を失敗としてマークします | はい |
work_item_release | 作業をキューに戻します | はい |
work_item_cancel | 作業をキャンセルします | はい |
ナレッジ/メモ
| ツール | 説明 | 変更 |
|---|---|---|
note_list | 種類、プロジェクト、アーカイブ、タイトルのフィルターを指定してメモを一覧表示します | いいえ |
note_get | 単一のメモの内容をすべて取得します | いいえ |
note_search | ナレッジベース全体をセマンティック検索します | いいえ |
note_create | 新しいメモを作成します(Markdown) | はい |
note_update | メモのタイトル、内容、または種類を更新します | はい |
note_delete | メモを削除します(破壊的操作) | はい |
note_bulk_delete | ID またはフィルターを指定して、メモの削除をプレビューするか、一括削除します | はい |
人物
| ツール | 説明 | 変更 |
|---|---|---|
people_search | あいまい検索または完全一致/前方一致のフィルターで連絡先を検索します | いいえ |
person_create | 連絡先を作成します | はい |
person_update | 連絡先を更新します | はい |
person_delete | 連絡先を削除します(破壊的操作) | はい |
people_bulk_delete | ID またはフィルターを指定して、連絡先の削除をプレビューするか、一括削除します | はい |
person_enrichment_availability | プロバイダーに処理を依頼せずに、ID の準備状況と現在のアプリ内料金を確認します | いいえ |
person_enrichment_run | 有料で冪等なアプリ相当のエンリッチメントを実行し、保存された提案と課金の証跡を返します | はい |
person_enrichment_apply | 決済確定済みの実行結果から、選択したプロフィール項目と事実を適用します。再試行に対する安全性はありません | はい |
組織
| ツール | 説明 | 変更 |
|---|---|---|
organization_search | あいまい検索、または完全一致/前方一致フィルターで組織を検索します | いいえ |
organization_create | 組織を作成します | はい |
organization_update | 組織を更新します | はい |
organization_delete | 組織を削除します(破壊的操作) | はい |
organization_bulk_delete | ID またはフィルターを指定して、組織の削除をプレビューまたは一括実行します | はい |
organization_enrichment_availability | プロバイダーを実行せずに、プロバイダーの利用可否と現在のアプリ価格を確認します | いいえ |
organization_enrichment_preview | 有料で冪等なアプリのプレビューを実行し、正規 CRM への書き込みをせずに証拠を保存します | はい |
リードの発見
| ツール | 説明 | 変更 |
|---|---|---|
lead_discovery_company_search | 制限付きの有料企業検索を 1 回実行し、ソースに基づく審査候補をステージングします | はい |
lead_discovery_candidate_list | 候補と CRM との照合/審査状況を一覧表示します | いいえ |
lead_discovery_candidate_review | 理由を記録して、候補を 1 件選定または却下します | はい |
lead_discovery_import_plan_create | 選定済み候補から永続的な CRM インポート計画を作成します。承認と適用は別の手順です | はい |
CLI と MCP に共通する承認および適用のライフサイクルについては、ヘッドレス CRM インポート計画を参照してください。
カレンダー
| ツール | 説明 | 変更 |
|---|---|---|
calendar_list_events | 指定した期間のカレンダーイベントを一覧表示します | いいえ |
calendar_create_event | 新しいカレンダーイベントを作成します | はい |
calendar_update_event | カレンダーイベントを更新します | はい |
calendar_delete_event | カレンダーイベントを削除します(破壊的操作) | はい |
ローカルソースのコンテキスト
| ツール | 説明 | 変更 |
|---|---|---|
git_blame_symbol | ローカルファイルの範囲に対して git blame を実行します | いいえ |
ソースの調査と検索は、Git、rg、エディター、またはエージェントネイティブのツールを使用して、認可されたチェックアウト内で行います。Siftable は厳選されたコードメモリーを保存しますが、リポジトリのソースをインデックス化したり、意味的に検索したりすることはありません。
コードメモリー
| ツール | 説明 | 変更 |
|---|---|---|
code_memory_store | 厳選されたコード情報を保存します | はい |
code_memory_search | 保存されたコード情報を検索します | いいえ |
code_memory_list | 保存されたすべてのコードメモリーを一覧表示します | いいえ |
code_memory_delete | コードメモリーを削除します(破壊的操作) | はい |
Vault/シークレット
| ツール | 説明 | 変更 |
|---|---|---|
vault_list | Vault エントリーを一覧表示します(メタデータのみ) | いいえ |
vault_create | 新しい暗号化シークレットを保存します | はい |
vault_update | Vault エントリーのメタデータを更新します | はい |
vault_search | 名前または説明で Vault エントリーを検索します | いいえ |
vault_audit | Vault の監査証跡を確認します | いいえ |
vault_materialization_request | 特定のマテリアライズ先への承認を申請します | はい |
vault_materialization_status | シークレットのバイト列を返さずに、マテリアライズの状態を確認します | いいえ |
capability_list | ガバナンス対象の Vault 実行機能を一覧表示します | いいえ |
capability_describe | ガバナンス対象の Vault 実行機能について説明します | いいえ |
capability_execute | シークレットのバイト列を公開せずに、ガバナンス対象の機能を実行します | はい |
vault_read は廃止されました。MCP が平文のシークレットのバイト列を返すことはありません。ガバナンス対象の機能を使うか、明示的に承認されたマテリアライズを利用してください。
エンティティグラフ
| ツール | 説明 | 変更 |
|---|---|---|
entity_graph | エンティティの関係グラフをたどります | いいえ |
schema_introspect | データモデル全体とエンティティの種類を調べます | いいえ |
ドキュメントのアップロード
| ツール | 説明 | 変更 |
|---|---|---|
upload_document | PDF、Markdown、またはテキストファイルを Knowledge にアップロードします | はい |
データセット(機能フラグ:DATASETS_ENABLED=true)
| ツール | 説明 | 変更 |
|---|---|---|
dataset_list | データセットを一覧表示します | いいえ |
dataset_create | データセットを作成します | はい |
dataset_query | フィルターやソート条件でレコードを検索します | いいえ |
dataset_mutate | レコードを作成/更新/削除します(破壊的操作) | はい |
dataset_schema_modify | フィールドを追加/更新/削除します(破壊的操作) | はい |
dataset_summarize | スキーマとサンプル行を要約します | いいえ |
dataset_facets | フィールドの値の分布を表示します | いいえ |
dataset_quality_check | 欠損値の指標、無効な値、一意性の問題、値の繰り返しに関する観察結果を表示します | いいえ |
dataset_aggregate | グループ化された指標(件数、平均、合計など)を表示します | いいえ |
dataset_bucket | 数値/日付フィールドを範囲に分割します | いいえ |
dataset_rank | ソート条件または重み付き計算式に基づいてレコードを順位付けします | いいえ |
dataset_analyze | 自然言語による分析結果を生成します | いいえ |
dataset_compare | セグメント間の指標を比較します | いいえ |
dataset_export | レコードを CSV としてエクスポートします | いいえ |
dataset_join_rows | エイリアススコープのフィールドを使用して自己結合します | いいえ |
dataset_compute_fields | 派生列(ラグ、差分、ローリング)を計算します | いいえ |
dataset_timeseries | 変換を伴う時系列分析を行います | いいえ |
dataset_materialize_result | 派生結果を新しいデータセットとして保存します | はい |
dataset_plot_result | 派生結果からのチャートペイロードを検証します | いいえ |
オントロジー(機能フラグ:DATASET_ONTOLOGY_ENABLED=true)
| ツール | 説明 | 変更 |
|---|---|---|
object_find | 型とプロパティのフィルターでオブジェクトを検索します | いいえ |
object_links | オブジェクトのグラフリンクをたどります | いいえ |
object_action_run | オブジェクトに対して宣言型アクションを実行します(破壊的操作) | はい |
使用例
1. プロジェクトのコンテキストを取得してタスクを作成する
ユーザープロンプト:「認証プロジェクトのコンテキストを取得し、トークン更新のバグを修正するタスクを作成してください」
呼び出されるツール:
project_list— プロジェクトを一覧表示し、認証プロジェクトを見つけますproject_get_context— プロジェクトのタスク、メモ、シグナルを取得しますtask_create— タイトル、説明、プロジェクトとの関連付けを含む、人間による計画タスクを作成します
結果: AI は既存のプロジェクトコンテキスト(未完了のタスクや最近のメモ)を読み込み、重複を避けたうえで、適切なプロジェクトに紐付けられた、範囲が明確なタスクを作成します。
エージェントを実行するには、work_item_create で実行可能な作業項目を作成し、taskId に親となる人間のタスクを設定します。タスクツールでは計画の状態を管理し、作業項目ツールでは実行、リース、成果物、検証、レビューの状態を管理します。
依存関係は、信頼できる UUID 参照です。dependsOn には { workItemId, requiredGate? } の配列を渡します。requiredGate は done または commands_passed です。ゲートを省略した場合は、プロジェクトの作業依存関係ポリシーに従って解決されます。一覧および取得結果には、解決済みの dependencies 投影と、派生した claimability(ready、waiting、dependency_failed)が含まれます。依存関係のエッジ一式を置き換えるには work_item_dependencies_replace を使用します。依存関係をすべて削除するには、空の配列を使用します。過去の verified ゲートは、検証機能の廃止に伴う移行中に commands_passed に正規化されます。
リースが所有権を持つライフサイクル呼び出し(start、heartbeat、block、review、fail)には、work_item_claim が返す claimOwner と claimToken の両方が必要です。release には有効なトークンが必要です。complete はリース所有の完了に必要な認証情報を受け取れますが、人間がリースなしで needs_review を解決できるよう、これらの指定は任意です。同様に、cancel にトークンは不要です。取得/一覧表示の出力にはクレームトークンは含まれません。クライアントはログに記録したり、永続化したりしないでください。
2. ナレッジの検索とメモの作成
ユーザーのプロンプト:「デプロイプロセスを検索して、手順をまとめたメモを作成してください」
呼び出されるツール:
note_search— ナレッジベースから「デプロイプロセス」を検索しますcode_memory_search— デプロイ関連の記憶について、保存されたコードの情報を検索しますnote_create— デプロイ手順をまとめた Markdown メモを作成します
結果: AI は既存のメモとコードの記憶から情報を統合し、関連するプロジェクトにリンクされた単一の参照メモを作成します。
リソース
サーバーは、プロジェクトのコンテキストバンドルを MCP リソースとしても公開します。
exf://projects/{id}/context- プロジェクトの完全なコンテキストバンドル
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
SIFT_API_URL | はい | Siftable API URL |
SIFT_PAT | はい | 個人用アクセストークン |
既存の MCP 設定では、従来の EXF_API_URL と EXF_PAT も引き続きサポートされます。
開発
# Install dependencies
npm install
# Run in development mode
npm run dev
# Test with MCP Inspector
npm run inspect
# Build for production
npm run build
セキュリティ
- PAT は SHA-256 ハッシュとして保存され、平文が保存されることはありません
- トークンは Siftable Settings からいつでも取り消せます
- 用途に必要な最小限のスコープを使用してください
- トークンをバージョン管理にコミットしないでください
スコープ
| スコープ | 説明 |
|---|---|
mcp:* | プロジェクト、タスク、カレンダー、ナレッジ、人物に関する主要な操作 |
projects:read | プロジェクトデータの読み取り |
projects:write | プロジェクトの作成/更新 |
tasks:read | タスクの読み取り |
tasks:write | タスクの作成/更新/完了 |
knowledge:read | メモの検索/読み取り |
knowledge:write | メモの作成 |
calendar:read | カレンダー/空き時間の表示 |
calendar:write | カレンダーイベントの作成 |
people:read | 連絡先の検索/表示 |
people:write | 連絡先の作成/更新 |
work:read | 実行可能な作業キューの読み取り |
work:write | 実行可能な作業キューの変更 |
lead_discovery:read | リード発見の実行結果と候補の読み取り |
lead_discovery:write | 有料検索の実行と候補の確認/インポート |
vault:metadata:read | Vault のメタデータとマテリアライズ状況の読み取り |
vault:manage | Vault のメタデータの作成/更新とマテリアライズのリクエスト |
vault:audit:read | Vault の監査証跡の読み取り |
トラブルシューティング
「SIFT_API_URL environment variable is required」
MCP クライアントの設定で env セクションを構成していることを確認してください。
「Invalid token」
- トークンが
sift_pat_または従来のexf_pat_で始まっていることを確認してください - トークンが取り消されていないことを確認してください
- トークンの有効期限が切れていないことを確認してください
ツールが表示されない
- 設定を変更した後、IDE を再起動してください
- IDE のログで MCP エラーを確認してください
npm run inspectを実行して、サーバーを直接テストしてみてください
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。