Cursor プラグイン
Nolto の Cursor プラグインは、MCP サーバー接続・4 つのスキル(プラン登録・進捗報告・ステータス確認)・Stop フック・テンプレートを Cursor の標準設定ロケーションにまとめて配置します。mcp.json を手で編集する代わりに、インストールスクリプトを実行するだけで Cursor から Nolto を操作できるようになります。
ソースは公開リポジトリ uruca-kk/nolto-cursor-plugin で配布されています。
Cursor のプラグイン読み込みは Claude Code / Codex CLI とは異なります。cursor-agent --plugin-dir <dir> は MCP サーバーもスキルも登録しません(読み込まれるのは rules / commands / agents のみ)。そのため、Cursor 標準の設定ロケーション(~/.cursor/ または プロジェクトの .cursor/)に配置します。Claude Code の /plugin … スラッシュコマンドは Cursor には適用されません。
インストール
jq が必要です。公開リポジトリを clone して、同梱の scripts/install.sh を実行します:
git clone https://github.com/uruca-kk/nolto-cursor-plugin.git
cd nolto-cursor-plugin
./scripts/install.sh # ~/.cursor/ に配置(全プロジェクト共通)
# または
./scripts/install.sh --project # カレントの ./.cursor/ に配置(このプロジェクトのみ)
スクリプトは既存設定を壊さずにマージします:
skills/*を<cursor>/skills/<name>/にコピーmcp.jsonのnoltoを<cursor>/mcp.jsonのmcpServersにマージ(他の MCP サーバーは保持)- Stop フックを
<cursor>/hooks.jsonの.hooks.stopにマージ(他のフックは保持・冪等)
Cursor は MCP ツールを mcp_nolto_<tool>(例 mcp_nolto_register_plan)として公開します。スキル本文は bare 名(register_plan)で書かれていますが、エージェントが自動的に解決して呼び出します。
認証
デスクトップ Cursor — OAuth
~/.cursor/mcp.json に nolto(url のみ)が入った状態で最初に Nolto のツールを呼び出すと、Cursor ネイティブの OAuth 2.1 + PKCE 同意画面がブラウザで開きます(コールバック: cursor://anysphere.cursor-mcp/oauth/callback)。承認するとトークンが Cursor に保存され、以降は自動で認証されます。install.sh が書き込むのはこの url のみのエントリです。
ヘッドレス: nolto login(device-code フロー)
SSH リモート・コンテナ・CI などブラウザを開けない環境では OAuth が完了できません。@nolto/cli(>= 0.3.0)の nolto login は、別端末(スマホ・ラップトップ)のブラウザで承認するだけで済みます:
npm install -g @nolto/cli
nolto login --client cursor
表示された URL を任意の端末で承認すると、トークンを取得して ~/.cursor/mcp.json の nolto に Bearer ヘッダを書き込みます。手動でトークンを扱う必要はありません。
代替: Personal API Token を手動で渡す
OAuth の代わりに Personal API Token を直接設定することもできます。~/.cursor/mcp.json(または .cursor/mcp.json)の nolto に、環境変数経由でヘッダーを追加します:
{
"mcpServers": {
"nolto": {
"url": "https://nolto.app/mcp",
"headers": { "Authorization": "Bearer ${env:NOLTO_TOKEN}" }
}
}
}
Personal API Token は mcp:read と mcp:write の両スコープを持ちます。パスワードと同様に扱い、ソースコードやプラグイン設定に直書きしないでください。トークンは 設定 › API トークン で発行します。
含まれるスキル
プラグインは、Cursor が Nolto の MCP ツールを「いつ・どう使うか」を判断するための 4 つのスキルを同梱しています。該当する依頼をすると自動的に発火します。
| スキル | 発火する場面 | 主に使うツール |
|---|---|---|
| register-plan | 「このプランを Nolto に登録して」「プランを共有したい」 | register_plan / register_structured_plan |
| report-progress | 「フェーズ 2 を進行中にして」「Phase 3 のテストが合格した」「最終レビュー GO で」 | update_phase_status / record_phase_test_result / record_plan_review |
| plan-status | 「いま何が進んでる?」「Plan X の状況を要約して」 | list_plans / get_plan |
| link-project | 「このリポを Nolto に紐付けて」「nolto.json を作って」 | list_projects(+ nolto.json を作成) |
各スキルが扱うステータス・判定値は Nolto 本体と一致しています(プランステータス: not_started / in_progress / done / discarded、テスト判定: passed / failed / skipped、レビュー判定: go / no_go)。
プロジェクトの紐付け(nolto.json)
複数のリポジトリを並行して扱う場合、リポジトリの root に nolto.json を置くと、そのリポジトリで操作する Nolto プロジェクトが固定されます。スキルはこのファイルを読んで毎回 projectId を明示送信するため、プロジェクトの取り違えや競合が起きません。
{ "projectId": "<uuid>" }
@nolto/cli の nolto link <projectId> でも作成できます。詳しくは CLI ガイドのリポジトリ紐付けを参照してください。
推奨プランテンプレート
プラグインに推奨プランテンプレートが同梱されています。このテンプレートに沿って書かれたプランは、Nolto の分類器(型1 = 実装プラン)が正確にフェーズとステータスを読み取れます。
| ファイル | 用途 |
|---|---|
templates/plan-template.md | 推奨プランテンプレート(フェーズ・ステータス例付き) |
templates/AGENTS.md.sample | プロジェクトの AGENTS.md に貼り付けるガイドラインスニペット |
プランは日本語で書いてください。Nolto の分類器パイプラインは本文をそのまま日本語ビューに表示します。英語プランでも登録できますが、非エンジニア向けの可視化が読みづらくなります。templates/AGENTS.md.sample をプロジェクトの AGENTS.md に貼り付けると、以後 Cursor が自動的にこの規則に従ってプランを作成します。
Stop フック(任意・CLI が必要)
scripts/install.sh が <cursor>/hooks.json の .hooks.stop に Stop フックを登録します。セッション終了時に、キューに溜めた進捗をまとめて送信するオプトイン機能です。
nolto queue ... # セッション中: .nolto/pending.jsonl に追記(トークン不要・オフライン)
(セッション終了時に Stop フックが自動送信)
前提条件(キュー送信を使う場合のみ)
@nolto/cli >= 0.2.0が PATH 上にインストールされていること(npm install -g @nolto/cli)NOLTO_TOKEN環境変数(またはnolto initで設定したトークン)が利用可能なこと
@nolto/cli を入れなくてもプラグイン本体(MCP + スキル)は問題なく使えます。CLI が未インストールの場合、Stop フックはエラーを出さず黙って何もしません(初回のみ導入のヒントを 1 回表示)。report-progress スキルのダイレクト MCP 呼び出しで進捗は即時反映されます。
report-progress スキル(ダイレクト MCP 呼び出し)とキュー+フックはどちらか一方を使ってください。同じ更新に両方を使うと二重送信になります。