ok-mcp-toggle が管理する MCP を global/project scope で有効化/無効化する。管理対象は claude/gemini で、codex は対象外。
Resources
3Install
npx skillscat add okash1n/nix-home/ok-mcp-toggle Install via the SkillsCat registry.
SKILL.md
OK MCP Toggle
目的
ok-mcp-toggle 管理下の MCP を global/project 両対応で管理する。
対象クライアントは claude / gemini。codex は管理対象外。
認証情報はホーム配下に保持し、レジストリには機密値を保存しない。
User Interaction Contract
- ユーザーに
scripts/mcp_toggle.shや CLI の直接実行を要求しない。 - 有効化/無効化/追加/削除は常にエージェントが代行する。
- 変更系コマンド(
add/enable/disable/remove/preauth)の前に、必ず1回は確認ターンを挟む。 - 実行前に必要な選択(対象MCP、scope、clients、ignore方針)をユーザーに確認してから実行する。
- エージェントが推測で
ignore-targetやclientsを決めて実行しない。
Trigger Examples
- 「MCP 一覧を見せて」
- 「notion と asana を有効化して」
- 「box を remove して」
- 「ok-mcp-toggle で管理している MCP 一覧を見たい」
- 「Jina を add して preauth までやって」
Workflow
- 一覧を確認する
scripts/mcp_toggle.sh list - 必要ならガイド付きで追加する(add は常に preauth 実行)
scripts/mcp_toggle.sh add [name] --preset PRESET --scope global|project --clients <...> - 有効化する(project を含む場合は ignore 方針を明示)
scripts/mcp_toggle.sh enable <servers...> --scope <global|project|all> --clients <...> --ignore-target <gitignore|exclude|none> --ignore-granularity <mcp|client> - 状態を確認する
scripts/mcp_toggle.sh status - 不要なものを無効化・削除する
scripts/mcp_toggle.sh disable/scripts/mcp_toggle.sh remove
Notes
scope=globalはユーザー設定、scope=projectはプロジェクト設定に反映する。enable/disable/preauth/status/removeは scope を選択できる。enableで project scope を含む場合、ignore 方針(.gitignore/.git/info/exclude/ 追加しない)を必ず決定してから実行する。mcp_toggle.shは非対話CLIとして扱い、暗黙の既定値を使わない(--clients/ 対象MCP /--ignore-targetを必須化)。- 対話はスクリプト側ではなくエージェント側の責務で行う。
codexは管理対象外。claude/geminiのみ反映する。- レジストリは
config/registry.json、状態はconfig/state.json。 addは事前認証(preauth)失敗時に登録しない。boxは HTTP MCP としてclaude/geminiに設定する。旧codex + mcp-remote callback方式は使わない。list/statusは、codexに旧MCP設定(asana/notion/box/jina)が残っている場合に警告を出す。asana/boxは Claude で OAuth client 情報が必要なため、ASANA_MCP_CLIENT_ID/ASANA_MCP_CLIENT_SECRETとBOX_MCP_CLIENT_ID/BOX_MCP_CLIENT_SECRETを使用する。asanaの endpoint はクライアント別に分ける(Claude:https://mcp.asana.com/v2/mcp、Gemini:https://mcp.asana.com/mcp)。asana/notionの Gemini 定義には OAuth エンドポイントを明示する(oauth.authorizationUrl/tokenUrl/registrationUrl)。これにより/mcp auth時の動的 discovery 起因の resource mismatch を回避する。oauthの preauth は完全自動ではない。statusがneeds-auth/pending_user_authの場合はクライアント側で最終認証が必要。
Resources
scripts/mcp_toggle.sh: list/add/remove/enable/disable/status/preauth のエントリーポイントconfig/registry.json: 管理対象MCPの静的定義config/state.json: preauth 状態と最終エラー