Model Context Protocol (MCP)
Claude Desktop、Cursor、Antigravity、Windsurf、VS Code などの外部AIアシスタントを、お使いのローカルNoustワークスペースにリアルタイムで直接連携させることができます。
公式オープンソースサーバー @noust-app/mcp は、AIモデルとノート、Nexusマークダウンドキュメント、キャンバストポロジーの間で、100%ローカルかつ安全な双方向通信を提供します。
AIはワークスペースで何ができるのか?
チャット画面にノートを手動でコピー&ペーストする必要はありません。MCPにより、AIアシスタントはキャンバスを自律的に理解し、操作できます:
- 🔍 インテリジェントな検索と参照: AIにノート、Nexusページ、目標の横断検索を依頼できます。モデルはHTMLタグを無視し、切り詰められることなく完全なテキストを取得します。
「Noustワークスペース内からデプロイチェックリストを検索し、残りのタスクを要約してください。」
- ✍️ キャンバス上でのリアルタイム作成・編集・削除: AIアシスタントは、画面上で開いているキャンバス上に新しいノートカードを作成したり、既存のテキストを更新したり、不要なノートを直接削除できます。
「今回の議論で決まった重要ポイント3点を、キャンバス上の新しいノートとして作成してください。」
- 🎯 目標とマイルストーンの自律管理: プロジェクトの目標を自動で管理できます。AIモデルは新しい目標の作成、期限や優先度の更新、完了フラグの付与、進捗内容の追記、削除を自由に行えます。
「金曜日までにステージング環境をデプロイする高優先度の目標を追加し、前回の移行タスクを完了としてマークしてください。」
- 📄 Nexusドキュメントの包括的管理: 大規模なナレッジベースも簡単に構築できます。AIアシスタントはグローバルなNexusドキュメントの新規作成、Markdownセクションの追記、内容の書き換え、削除を行えます。
「議論したエンドポイントを詳細にまとめた『APIアーキテクチャ』というNexusドキュメントを作成してください。」
- 🏷️ 再利用可能なフラグとカラーハーモニー: ドメイン内のフラグ一覧の確認や新規作成が可能です。AIアシスタントは既存のカラーを確認し(
list_flags)、重複しない独自の色合い(例:既存と被らないオレンジ系統)を選定したり、自動で視認性の高い配色を生成できます。「このドメインのフラグを一覧表示し、既存と被らないオレンジ色の『コードレビュー』フラグを作成してください。」
- 🧭 インタラクティブな視覚的ナビゲーション: ボード上の特定の場所やドキュメントの表示を求めると、Noustは自動的に視点をパン・ズームし、キャンバス上のノートを発光ハイライトするか、対象のNexusドキュメントを開いてフォーカスします。
「マーケティングスプリントの目標がキャンバスのどこにあるか画面上で示してください。」
- 🖼️ 埋め込み画像に対するマルチモーダル対応: ビジョン対応モデル(Claude 3.5 Sonnet、GPT-4o、Gemini)は、ノートに貼り付けられた画像やアーキテクチャ図を直接読み取って分析できます。
- 📦 MCP リソースによるダイレクトコンテキスト: ツール呼び出しを実行する代わりに、標準の MCP リソース URI(
noust://)を通じて、アクティブなワークスペースの概要、ノートの内容、Nexus ドキュメントをモデルのコンテキストウィンドウに直接アタッチできます。「おすすめの提案を行う前に、
noust://workspace/activeを確認してドメインの構成を把握してください。」 - 🗂️ マルチワークスペースおよびタブ間ルーティング: 複数の開いているワークスペースを同時に操作できます。AIアシスタントはアクティブなタブを確認し、
workspaceパラメータを使用して名前で特定のワークスペースを直接指定するか、アンカーされたローカルディレクトリとシームレスに対話できます。「アクティブなワークスペースを一覧表示し、『Mobile App』ワークスペースに新しいリリースノートを追加してください。」
デュアルモードアーキテクチャ (オンライン & オフライン)
@noust-app/mcp は、Noustが開いているときも閉じているときも確実に動作します:
- オフライン / ファイル限定モード: Noustが閉じている場合、MCPサーバーはローカルディスクに保存されている
.noustファイルから直接データを読み取ります。オフライン環境でも検索やノートの取得、画像解析が可能です。 - ライブブリッジモード (ゼロトラスト): ChromiumブラウザでNoustを開き、フォルダ同期とMCP(Menu Shell 内の Agent パネル)が有効になっている場合、軽量なローカルWebSocketブリッジ (
127.0.0.1:8421) が自動接続し、AIによるキャンバス編集やナビゲーションが可能になります。
暗号化ワークスペース
.noust ファイルがユーザーパスワードで暗号化されている場合、MCPサーバーはNoustがブラウザで開かれアクティブな状態でのみ動作します。これにより、AIエージェントはディスクから直接 .noust の内容を読み取ることができず、MCPサーバー経由の公式ツールを使用することが厳格に求められます。
マルチワークスペースおよびタブ間ルーティング
Noustは、ブラウザの複数タブで異なるワークスペースを同時に開き、それぞれを個別のローカルフォルダにリンクすることをサポートしています。@noust-app/mcp はマルチワークスペース環境をクリーンかつ予測可能に処理します:
- ローカルワークスペースアンカー: MCPサーバーが
--workspace <フォルダ>で起動された場合、そのディレクトリ内のローカル.noustファイルを検出します。ブラウザのタブがそのワークスペースを同期している場合、すべての操作はデフォルトで自動的にそのタブを対象とします。 - 単一のアクティブタブ: ブラウザでアクティブなワークスペースタブが1つだけの場合、明示的なワークスペースパラメータを指定することなく自動的にそのタブへルーティングされます。
- タブ間の曖昧さ解消 (Disambiguation): ブラウザタブ全体で複数のワークスペースがアクティブで、クライアントが特定のワークスペースディレクトリ外で実行されている場合(または別のタブを対象とする場合)、すべてのツールでオプションの
workspaceパラメータを受け付けます。曖昧な場合、サーバーはアクティブなワークスペース名を一覧表示し、どのワークスペースを検査または編集するか指定するようアシスタントに促します。 - ワークスペースステータスの確認:
get_workspace_statusツールにより、すべてのアクティブなブラウザセッション、接続中のワークスペース、および現在のデフォルト対象がレポートされます。
標準 MCP リソース (Resources)
実行可能なツール(Tools)に加え、@noust-app/mcp は Model Context Protocol の公式リソース仕様(resources/list および resources/read)を実装しています。これにより、Claude Desktop、Cursor、Antigravity などの対応クライアントは、ツール呼び出しを消費することなく、ワークスペースの状態を確認したり、ノートやドキュメントをプロンプトコンテキストに直接取り込むことができます:
| リソース URI | タイプ | フォーマット | 説明 |
|---|---|---|---|
noust://workspace/active | 静的 | JSON (application/json) | アクティブなワークスペースの完全な概要:ID、名前、ドメイン一覧、ノート数、Nexus ドキュメント数、ライブブリッジ接続状態。 |
noust://notes/{noteId} | 動的テンプレート | Markdown (text/markdown) | キャンバスノートの完全な内容(タイトル、ドメイン、キャンバス参照 1A1、本文)。resources/list で自動検出可能。 |
noust://documents/{docId} | 動的テンプレート | Markdown (text/markdown) | Nexus フリーテキストドキュメントの完全なマークダウン内容(タイトル、本文)。resources/list で自動検出可能。 |
noust://objectives/active | 静的 | JSON (application/json) | ワークスペース内のアクティブな目標、マイルストーン、カテゴリ、割り当てられたフラグのリアルタイム一覧。 |
リソースの自動検出とデュアルモード
- IDE でのコンテキスト自動補完:
resources/listをサポートするクライアントは、コンテキストセレクター(Cursor の@メンションや Claude Desktop のリソース一覧)で利用可能なすべてのノートと Nexus ドキュメントを自動表示します。 - デュアルモードの継続性: ブラウザで Noust が開きブリッジが有効な場合、リソースはインメモリの最新状態を返します。Noust が閉じている場合は、ローカルディスクの
.noustファイルから直接読み込まれます。
クライアントでのクイック設定
グローバルインストールの必要はありません。MCPクライアントは npx 経由でオンデマンドにサーバーを実行します。
前提条件
- マシンに Node.js
>= 18.0.0がインストールされていること。 - ローカル自動同期 によりローカルフォルダと連携済みのNoustワークスペース。
- Noustの Menu Shell 内にある Agent パネルで MCP ブリッジ を有効化すること。
1. Claude Desktop
Claude Desktopの設定ファイルに noust を追加します:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"noust": {
"command": "npx",
"args": [
"-y",
"@noust-app/mcp",
"--workspace",
"/absolute/path/to/your/noust-workspace-folder"
]
}
}
}Windowsでのパス表記
Windows環境のJSON設定ファイルでは、構文エラーを防ぐため、ダブルバックスラッシュ(例: "C:\\Users\\YourName\\Documents\\Noust")またはスラッシュ(例: "C:/Users/YourName/Documents/Noust")を使用してください。
2. Cursor IDE
プロジェクトの .cursor/mcp.json または Settings > Features > MCP Servers に追加します:
{
"mcpServers": {
"noust": {
"command": "npx",
"args": [
"-y",
"@noust-app/mcp",
"--workspace",
"/absolute/path/to/your/noust-workspace-folder"
]
}
}
}セキュリティとプライバシー (ゼロ知識)
クラウドAIモデルとデータプライバシーに関する注意
Noustおよび @noust-app/mcp はお使いのローカルマシン上(127.0.0.1)で完全に動作し、Noustのサーバーへデータを送信することは一切ありませんが、MCPツール(search_workspace、get_note、get_document、get_objective など)によって読み取られた情報は、接続しているAIアシスタントのプロンプトコンテキストとして渡されます。
サードパーティのクラウドAIモデル(Claude/Anthropic、ChatGPT/OpenAI、Gemini/Google など)をご利用の場合、ワークスペースから取得されたデータはインターネット経由で各AI事業者のサーバーへ送信され、各社のプライバシーポリシーおよびデータ保持規約に基づいて処理されます。
データの完全な主権が必要な場合や極めて機密性の高いデータを扱う場合は、ローカル環境で自ホストするLLM(Ollama、LM Studio、またはローカルのオープンソースモデルなど)とMCPクライアントを連携させて利用することを推奨します。
@noust-app/mcp は厳格なローカルファーストのセキュリティ原則に従います:
- 100% ローカルループバック: 通信はすべて
127.0.0.1のみで完結し、外部サーバーへのデータ送信は一切行われません。 - 一時共有シークレットトークン: 各セッションごとに権限
0600で保護された256ビットの一時トークン (.noust-bridge.token) を生成します。 - サニタイズ処理: 外部AIによって生成されたコンテンツは、XSS攻撃を防ぐためDOMPurifyを通じて自動的に無害化されてから描画されます。
- 暗号化ワークスペース:
.noustファイルがユーザーパスワードで暗号化されている場合、MCPサーバーはNoustがブラウザで開かれアクティブな状態でのみ動作します。これにより、AIエージェントはディスクから直接.noustの内容を読み取ることができず、MCPサーバー経由の公式ツールを使用することが厳格に求められます。
技術ドキュメントとソースコード
CLIオプション (-d / -r) やツールスキーマの完全な仕様については、公式GitHubリポジトリをご覧ください: