🚀 MCP Cut-Copy-Paste Clipboard Server
AI支援コーディングエージェント向けのクリップボード操作を提供するModel Context Protocol (MCP)サーバーです。完全な監査履歴とセッション管理を備え、複数のファイル間でコードブロックの切り取り、コピー、貼り付け、元に戻す操作が可能です。
✨ 主な機能
- 🎯 6つのMCPツール:copy_lines、cut_lines、paste_lines、show_clipboard、undo_last_paste、get_operation_history
- 📋 セッションベースのクリップボード:各セッションは独立したクリップボード状態を維持します。
- ↩️ スマートな元に戻し機能:完全なファイルスナップショットを使用して貼り付け操作を元に戻すことができ、切り取り元のファイルも自動的に復元されます。
- 📊 監査履歴:デバッグ用のSQLiteベースの操作ログがあります。
- 🔐 暗号化されたクリップボードストレージ:AES-256-GCMで暗号化されたペイロードを、SQLiteデータベースと同じ場所に保存されるインストールごとのキーで保護します。
- 🛡️ パスアクセス制御:オプションで
.gitignore
形式の許可リストを使用して、ファイルシステムへのアクセスを制限できます(ドキュメント)。
- 🔒 セッション管理:24時間のタイムアウトで自動的にクリーンアップされます。
- 🚀 NPX対応:npmを通じて簡単にインストールと更新ができます。
- 🌍 Unicodeサポート:国際文字や絵文字を完全にサポートします。
- 🛡️ バイナリファイル検出:PNG、PDF、JPEG、GIFなどのバイナリ形式を自動的に拒否します。
- 📏 柔軟な行挿入:行番号0(ファイルの先頭)への貼り付けをサポートします。
📦 インストール
NPXを使用する場合(推奨)
npx cut-copy-paste-mcp
NPMを使用する場合
npm install -g cut-copy-paste-mcp
cut-copy-paste-mcp
ローカル開発用
git clone https://github.com/Pr0j3c7t0dd-Ltd/cut-copy-paste-mcp.git
cd cut-copy-paste-mcp
npm install
npm run build
node dist/cli.js
🚀 クイックスタート
Claude Code / Claude Desktopユーザー向け
-
MCPサーバーを設定する:
- macOSの場合は
~/Library/Application Support/Claude/claude_desktop_config.json
を開きます。
- Windowsの場合は
%APPDATA%\Claude\claude_desktop_config.json
を開きます。
- 以下の設定を追加します:
{
"mcpServers": {
"clipboard": {
"command": "npx",
"args": ["cut-copy-paste-mcp"]
}
}
}
-
Claude Desktop/Codeを再起動して、MCPサーバーを読み込みます。
-
ツールが利用可能か確認する:
- 会話でクリップボードツールが表示されるはずです。
- 「Show me the available clipboard tools」と試してみましょう。
-
クリップボードの使用を開始する:
- 「Copy lines 10-25 from src/utils.ts」
- 「Show me what's in the clipboard」
- 「Paste the clipboard to line 5 in src/helpers.ts」
その他のMCPクライアント向け
- サーバーをインストールする(上記の「インストール」を参照)
- MCPクライアントを設定して
cut-copy-paste-mcp
に接続する
- AIエージェントの指示を設定する(オプションですが推奨):
- から使用ガイドラインをコピーして、エージェントの指示ファイルに追加します:
- Claude Desktop/Code:プロジェクトルートの
CLAUDE.md
に追加します。
- Cursor IDE:プロジェクトの
.cursorrules
またはAGENTS.md
に追加します。
- その他のエージェント:エージェントのカスタムルール/指示ファイルに追加します。
- これらのガイドラインは、AIがクリップボード操作をいつ、どのように効果的に使用するかを理解するのに役立ちます。
- AIコーディングワークフローでクリップボード操作を開始する
ワークフローの例
You/AI: "I need to refactor the authentication logic.
Copy lines 45-80 from src/auth/old-auth.ts"
AI: [Uses copy_lines tool]
✓ Copied 36 lines from src/auth/old-auth.ts:45-80
You/AI: "Now paste this into a new file src/auth/token-handler.ts at line 1"
AI: [Uses paste_lines tool]
✓ Pasted to src/auth/token-handler.ts:1
You/AI: "Actually, I want to undo that and paste it somewhere else"
AI: [Uses undo_last_paste tool]
✓ Undone paste operation, restored 1 file(s)
💻 使用例
基本的な使用法
以下は、copy_lines
ツールを使用してコードをコピーする例です。
{
"tool": "copy_lines",
"arguments": {
"file_path": "src/utils/helpers.ts",
"start_line": 10,
"end_line": 25
}
}
高度な使用法
以下は、paste_lines
ツールを使用して複数の場所にコードを貼り付ける例です。
{
"tool": "paste_lines",
"arguments": {
"targets": [
{
"file_path": "src/services/auth.ts",
"target_line": 5
},
{
"file_path": "src/services/api.ts",
"target_line": 8
},
{
"file_path": "src/services/storage.ts",
"target_line": 3
}
]
}
}
📚 ドキュメント
MCPツールリファレンス
1. copy_lines
ソースファイルを変更せずに、ファイルの行をセッションクリップボードにコピーします。
パラメーター:
file_path
(string, required):ソースファイルのパス
start_line
(number, required):開始行番号(1から始まる)
end_line
(number, required):終了行番号(含む)
例:
{
"tool": "copy_lines",
"arguments": {
"file_path": "src/utils/helpers.ts",
"start_line": 10,
"end_line": 25
}
}
戻り値:
{
"success": true,
"content": "...",
"lines": ["..."],
"message": "Copied 16 line(s) from src/utils/helpers.ts:10-25"
}
2. cut_lines
ファイルから行を切り取ります(ソースから削除し、クリップボードに保存します)。
パラメーター:
file_path
(string, required):ソースファイルのパス
start_line
(number, required):開始行番号(1から始まる)
end_line
(number, required):終了行番号(含む)
例:
{
"tool": "cut_lines",
"arguments": {
"file_path": "src/legacy/old-module.ts",
"start_line": 50,
"end_line": 75
}
}
戻り値:
{
"success": true,
"content": "...",
"lines": ["..."],
"message": "Cut 26 line(s) from src/legacy/old-module.ts:50-75"
}
3. paste_lines
クリップボードの内容を1つまたは複数の場所に貼り付けます。
パラメーター:
targets
(array, required):貼り付け先の配列
file_path
(string):貼り付け先のファイルパス
target_line
(number):貼り付ける行番号(1から始まる)
例(単一の貼り付け先):
{
"tool": "paste_lines",
"arguments": {
"targets": [
{
"file_path": "src/components/NewComponent.tsx",
"target_line": 20
}
]
}
}
例(複数の貼り付け先):
{
"tool": "paste_lines",
"arguments": {
"targets": [
{
"file_path": "src/services/auth.ts",
"target_line": 5
},
{
"file_path": "src/services/api.ts",
"target_line": 8
},
{
"file_path": "src/services/storage.ts",
"target_line": 3
}
]
}
}
戻り値:
{
"success": true,
"pastedTo": [
{ "file": "src/components/NewComponent.tsx", "line": 20 }
],
"message": "Pasted to 1 location(s)"
}
4. show_clipboard
現在のクリップボードの内容とメタデータを表示します。
パラメーター:なし
例:
{
"tool": "show_clipboard",
"arguments": {}
}
戻り値:
{
"hasContent": true,
"content": "...",
"sourceFile": "src/utils/helpers.ts",
"startLine": 10,
"endLine": 25,
"operationType": "copy",
"copiedAt": 1699564800000
}
5. undo_last_paste
最新の貼り付け操作を元に戻します。もし貼り付けが切り取り操作から来た場合、貼り付け先と切り取り元の両方のファイルが元の状態に復元されます。
パラメーター:なし
例:
{
"tool": "undo_last_paste",
"arguments": {}
}
戻り値:
{
"success": true,
"restoredFiles": [
{ "file": "src/components/NewComponent.tsx", "line": 20 },
{ "file": "src/legacy/old-module.ts", "line": 0 }
],
"message": "Undone paste operation, restored 2 file(s)"
}
動作:
- Copy → Paste → Undo:貼り付け先のファイルのみが復元されます。
- Cut → Paste → Undo:貼り付け先と切り取り元の両方のファイルが復元されます。
6. get_operation_history
デバッグ用の操作履歴を取得します。
パラメーター:
limit
(number, optional):返す操作の最大数(デフォルト: 10)
例:
{
"tool": "get_operation_history",
"arguments": {
"limit": 5
}
}
戻り値:
{
"operations": [
{
"operationId": 42,
"operationType": "paste",
"timestamp": 1699564800000,
"details": {
"targetFile": "src/components/NewComponent.tsx",
"targetLine": 20
}
}
]
}
使用パターン
パターン1: リファクタリング - 関数の抽出
1. 抽出するコードを特定する → ファイルを分析して移動する行を見つける
2. コードを切り取る → cut_linesを使用して元の場所から削除する
3. クリップボードを確認する → show_clipboardを使用して内容を確認する
4. 新しい場所に貼り付ける → paste_linesを使用して新しい場所に挿入する
5. 結果を確認する → 両方のファイルの正しさを確認する
パターン2: ボイラープレートのコピー
1. ソースコードを見つける → 再利用可能なコードパターンを特定する
2. パターンをコピーする → copy_linesを使用してボイラープレートをキャプチャする
3. 貼り付け先を特定する → このパターンが必要なすべてのファイルをリストする
4. 複数の場所に貼り付ける → paste_linesを使用して複数の貼り付け先に貼り付ける
5. 確認する → 貼り付けた内容をチェックする
パターン3: ファイル間でのコードの移動
1. ソースから切り取る → cut_linesを使用してコードを削除する
2. 宛先に貼り付ける → paste_linesを使用して挿入する
3. 両方のファイルを確認する → ソースがクリーンアップされていることを確認する
4. 参照を更新する → 必要に応じてインポートを修正する
パターン4: 安全な実験
1. テスト用にコードをコピーする → copy_linesを使用して現在の状態をキャプチャする
2. テスト場所に貼り付ける → 実験用のバージョンを作成する
3. 変更をテストする → 修正を行う
4. 決定する → 失敗した場合はundo_last_pasteを使用する
パターン5: 切り取り操作の元に戻し
1. ソースからコードを切り取る → cut_linesを使用してソースから削除する
2. 宛先に貼り付ける → paste_linesを使用して宛先に追加する
3. 間違いに気づく → 移動を元に戻すことを決定する
4. 貼り付け操作を元に戻す → undo_last_pasteを使用する
5. 結果 → ソースと宛先の両方のファイルが元の状態に復元される
注意:切り取り操作からの貼り付けを元に戻すと、サーバーは自動的に両方のファイルを復元します - 貼り付け先が復元され、切り取り元も削除された行とともに復元されます。
仕組み
何をするか
これは、AIアシスタント(Claudeなど)が使用できるコード用のスマートクリップボードと考えてください。ファイル全体をコピーする代わりに、以下のことができます:
- ファイルから特定の行をコピーする(例:10 - 25行目)
- 行を切り取る(元のファイルから削除する)
- それらの行を1つまたは複数のファイルに貼り付ける
- 間違えた場合は元に戻す
通信層
- MCP (Model Context Protocol) を使用します - AIアシスタントがツールと通信するための標準化された方法です。
- stdio(標準入出力)を使用します - AIはJSONメッセージを送信し、JSON応答を受け取ります。
- ライブラリ:
@modelcontextprotocol/sdk
(公式のMCPツールキット)
ストレージシステム
何かをコピーまたは切り取ったとき、それを保存する必要があります:
- SQLiteデータベース(シンプルなファイルベースのデータベース)を使用します。
- ライブラリ:
better-sqlite3
(Node.js用の高速で信頼性の高いSQLiteライブラリ)
- 保存する内容:
- コピーした内容(実際のコード)
- それがどこから来たか(ファイルパス、行番号)
- セッション情報(複数のAIが互いに干渉しないように)
- 元に戻す機能のための履歴
ファイル操作
すべての実際のファイルの読み書きには、以下を使用します:
- Node.jsの組み込み
fs
モジュール(ファイルシステム操作)
- 基本的なファイルの読み書きには外部ライブラリは必要ありません!
- コードは:
- ファイルを1行ずつ読み取ります。
- 特定の行範囲を挿入または削除します。
- 改行コードを保持します(WindowsとUnixスタイル)
操作フローの例
コピー操作:
1. AIが言う:"Copy lines 10-20 from myfile.js"
2. サーバーはNodeのfs.readFileSync()を使用してファイルを読み取ります。
3. ファイルから10 - 20行目を抽出します。
4. それらをSQLiteデータベース(あなたの「クリップボード」)に保存します。
5. コピーしたテキストをAIに返します。
貼り付け操作:
1. AIが言う:"Paste to line 5 in otherfile.js"
2. サーバーはSQLiteデータベースからクリップボードを取得します。
3. 貼り付け先のファイルのスナップショットを撮ります(後で元に戻すため)。
4. ファイルを読み取り、5行目に行を挿入します。
5. fs.writeFileSync()を使用して変更したファイルを書き戻します。
6. 元に戻す情報をデータベースに保存します。
元に戻す操作:
1. AIが言う:"Undo that paste"
2. サーバーはデータベースから最後の貼り付け操作を検索します。
3. 貼り付け前の保存されたスナップショットを見つけます。
4. ファイルを元の状態に復元します。
5. もし「切り取り」から来た場合は、切り取り元のファイルも復元します!
主要なライブラリ
ライブラリ |
目的 |
機能 |
@modelcontextprotocol/sdk |
MCPプロトコル |
AIアシスタントとの通信を処理します。 |
better-sqlite3 |
データベース |
クリップボード、履歴、および元に戻す情報を保存します。 |
fs (組み込み) |
ファイルシステム |
ファイルの読み書きを行います。 |
TypeScript |
言語 |
型安全なJavaScript(通常のJavaScriptにコンパイルされます) |
賢い部分
- セッション分離:各AIアシスタントに独自のクリップボードがあり、互いに干渉しません。
- 完全なスナップショット:貼り付ける前に、ファイル全体を保存するため、元に戻す操作が非常に信頼性高くなります。
- 行単位:行番号(「10 - 20行目」など)で動作するため、開発者がコードを考える方法と一致します。
- バイナリ検出:画像/PDFなどのバイナリファイルでは動作しません - テキストファイルのみをサポートします。
特別な点
通常のクリップボードとは異なり、以下の特徴があります:
- ✅ コードがどこから来たかを記憶します。
- ✅ 一度に複数のファイルに貼り付けることができます。
- ✅ 信頼性の高い元に戻し機能(切り取り操作でも)があります。
- ✅ ファイルやプロジェクトをまたいで動作します。
- ✅ すべての操作の履歴を保持します。
要するに:これは、AIの言語(MCP)を理解し、すべてをデータベース(SQLite)に記憶し、基本的なNode.jsツールを使用してファイルの読み書きを行う高度なクリップボードです。その魔法は、これらの要素をうまく調整して、AIコーディングアシスタントに信頼性の高い切り取り/コピー/貼り付け/元に戻す操作を提供することにあります!
🔧 技術詳細
コアコンポーネント
- MCPサーバー - プロトコル通信とツールの登録を処理します。
- セッションマネージャー - セッション状態とクリップボードバッファを管理します。
- ファイルハンドラー - 行番号をサポートしたファイルの読み書き操作を行います。
- 操作ロガー - 元に戻す機能のためのSQLiteベースの操作履歴を管理します。
- クリップボードマネージャー - セッションごとのクリップボードバッファを管理します。
データベーススキーマ
サーバーはSQLiteを使用し、4つの主要なテーブルがあります:
- sessions - アクティビティタイムスタンプを含むセッション追跡
- clipboard_buffer - セッションごとのクリップボード状態
- operations_log - すべての操作の監査履歴
- paste_history - 元に戻す機能を可能にする
データディレクトリ
デフォルトでは、データベースは以下の場所に保存されます:
- macOS/Linux:
~/.mcp-clipboard/clipboard.db
- Windows:
%USERPROFILE%\.mcp-clipboard\clipboard.db
CLIの使用方法
cut-copy-paste-mcp
cut-copy-paste-mcp --help
cut-copy-paste-mcp --version
設定
Claude Desktop / Claude Code
MCP設定ファイルに以下を追加します:
macOS/Linux:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"clipboard": {
"command": "npx",
"args": ["cut-copy-paste-mcp"]
}
}
}
ローカル開発用(まだnpmに公開されていない場合):
{
"mcpServers": {
"clipboard": {
"command": "node",
"args": ["/absolute/path/to/cut-copy-paste-mcp/dist/cli.js"]
}
}
}
Cursor IDE
Cursor MCP設定ファイルに以下を追加します:
macOS/Linux:~/.cursor/mcp_config.json
Windows:%USERPROFILE%\.cursor\mcp_config.json
{
"mcpServers": {
"clipboard": {
"command": "npx",
"args": ["cut-copy-paste-mcp"]
}
}
}
Cline (VS Code拡張機能)
Cline MCP設定に以下を追加します:
- VS Code設定を開きます。
- 「Cline: MCP Settings」を検索します。
- 以下の設定を追加します:
{
"mcpServers": {
"clipboard": {
"command": "npx",
"args": ["cut-copy-paste-mcp"]
}
}
}
セッションタイムアウト
セッションは、24時間の非アクティビティ後に自動的に期限切れになります。期限切れのセッションは、サーバー起動時にクリーンアップされます。
AIエージェントの設定
AIコーディングアシスタントがこのMCPサーバーを効果的に使用できるように、使用ガイドラインとベストプラクティスを提供することができます。
エージェントの指示を設定する
ファイルには、AIエージェント向けの包括的なガイドラインが含まれています。以下の内容があります:
- ツールの詳細なドキュメントとユースケース
- 一般的なリファクタリングタスクのワークフローパターン
- クリップボード操作のベストプラクティス
- エラーハンドリングのガイダンス
エージェントを設定する方法:
- Claude Desktop / Claude Codeユーザー:
- プロジェクトルートに
CLAUDE.md
を作成または編集します。
docs/AGENTIC_USAGE.md
の内容をこのファイルにコピーします。
- Claudeは、あなたのプロジェクトで作業する際に自動的にこれらの指示を使用します。
- Cursor IDEユーザー:
- プロジェクトルートに
.cursorrules
またはAGENTS.md
を作成または編集します。
docs/AGENTIC_USAGE.md
の内容をこのファイルにコピーします。
- Cursorは、AIとの対話にこれらのガイドラインを使用します。
- その他のMCPクライアント:
- クライアントのドキュメントを参照して、カスタム指示/ルールファイルを確認します。
docs/AGENTIC_USAGE.md
の内容を適切な設定に追加します。
これによって得られるもの
これらの指示を設定すると、AIアシスタントは以下のことができます:
- クリップボード操作とネイティブファイル編集の使い分けを知る
- 確立されたリファクタリングのワークフローパターンに従う
- 貼り付ける前にクリップボードの内容を確認する
- ボイラープレートの配布に複数の貼り付け先を使用する
- エラーを適切に処理する
例:「Refactor the authentication logic into a separate module」と要求すると、AIは以下のことを知っています:
cut_lines
を使用してコードを抽出する
show_clipboard
を使用してキャプチャされた内容を確認する
paste_lines
を使用して新しい場所に挿入する
- 結果が正しくない場合は
undo_last_paste
を提案する
ベストプラクティス
- ✅ 常にクリップボードを確認する - 貼り付け操作の前に
show_clipboard
を使用します。
- ✅ パターンには複数の貼り付け先を使用する - 同じコードを複数のファイルに効率的に適用します。
- ✅ 元に戻し機能を活用する - 貼り付けることを躊躇わず、いつでも元に戻すことができます。
- ✅ 操作履歴を確認する - 問題をデバッグするために
get_operation_history
を使用します。
- ✅ 行番号に注意する - 行番号は1から始まることを覚えておきます。
- ✅ 一連の操作を完了する - 新しい操作を開始する前に、コピー/切り取り/貼り付け/元に戻す操作を完了させます。
エラーハンドリング
サーバーは、一般的な問題に対して明確なエラーメッセージを提供します:
- ❌ ファイルが見つからない - "Copy failed: ENOENT: no such file or directory"
- ❌ 無効な行範囲 - "Invalid line range: start_line must be <= end_line"
- ❌ クリップボードが空 - "Clipboard is empty"
- ❌ 元に戻す貼り付け操作がない - "No paste operation to undo"
開発
テストの実行
npm test
npm test -- --watch
npm test -- src/__tests__/server.test.ts
npm test:coverage
ビルド
npm run build
npm run lint
npm run format
プロジェクト構造
src/
├── lib/
│ ├── database.ts # SQLiteの初期化
│ ├── session-manager.ts # セッションのライフサイクル
│ ├── file-handler.ts # ファイル操作
│ ├── clipboard-manager.ts # クリップボードバッファ
│ └── operation-logger.ts # 監査履歴
├── tools/
│ └── clipboard-tools.ts # 6つのMCPツールの実装
├── config/
│ └── tools.ts # ツールの定義
├── server.ts # MCPサーバー
├── cli.ts # CLIのエントリポイント
└── __tests__/ # テストファイル
テスト
このプロジェクトは、厳格なテスト駆動開発(TDD)に従っています:
- 12のテストスイートで213のテストがパスしています
- 90%以上のコードカバレッジを目標としています
- すべてのコアコンポーネントにユニットテストがあります
- 完全なワークフローに統合テストがあります
- バイナリファイル、Unicode、大きなファイルなどのエッジケースにテストがあります
- 切り取り-貼り付け-元に戻すワークフローに専用のテストがあります
設計上の決定
- ✅ JSONファイルではなくSQLiteを使用する - ACID保証を提供し、クエリが容易です。
- ✅ stdioトランスポートを使用する - ローカル開発に簡単で、MCPには十分です。
- ✅ 1から始まる行番号を使用する - エディタの慣例に合致します。
- ✅ 単一の元に戻しレベルを使用する - v1での複雑さを管理可能に保ちます。
- ✅ コピー/切り取り時に内容を返す - LLMに即座のフィードバックを提供します。
制限事項
- 📝 テキストファイルのみ - バイナリファイルは拒否されます。
- 📝 単一の元に戻しレベル - 最後の貼り付け操作のみを元に戻すことができます。
- 📝 10MBのクリップボード制限 - 最大クリップボードコンテンツサイズです。
- 📝 stdioトランスポートのみ - v2ではHTTPトランスポートが計画されています。
ロードマップ
v1.0 (現在)
- ✅ コアクリップボード操作
- ✅ セッション管理
- ✅ 元に戻す機能
- ✅ 操作履歴
v2.0 (計画中)
- 🔮 HTTPトランスポートのサポート
- 🔮 多段階の元に戻しスタック
- 🔮 大きなファイルの最適化(ストリーミング)
- 🔮 認証サポート
コントリビューション
コントリビューションは大歓迎です!以下の手順を踏んでください:
- リポジトリをフォークします。
- 機能ブランチを作成します (
git checkout -b feature/amazing-feature
)
- TDDの原則に従ってテストを書きます (RED → GREEN → REFACTOR)
- 変更をコミットします (
git commit -m 'Add amazing feature'
)
- ブランチにプッシュします (
git push origin feature/amazing-feature
)
- プルリクエストを開きます。
セキュリティ
- ✅ パスアクセス制御 - オプションの許可リストを使用して、ファイルシステム操作を制限します(詳細)。
- ✅ 暗号化されたストレージ - クリップボードデータをAES-256-GCMで暗号化して保存します。
- ✅ パス検証 - ディレクトリトラバーサル攻撃を防止します。
- ✅ 入力サニタイズ - すべての入力を操作前に検証します。
- ✅ エラーに敏感なデータを含まない - エラーメッセージにファイル内容を漏らさないようにします。
- ✅ ファイルサイズ制限 - 最大10MBのクリップボードサイズです。
詳細なセキュリティ情報については、Path Access Control Documentationを参照してください。
📄 ライセンス
MITライセンス - 詳細はLICENSEファイルを参照してください。
サポート
謝辞
AI支援コーディングワークフローのために❤️で作られました
セキュリティに関する考慮事項
- 暗号化されたストレージ:クリップボードエントリは、
~/.mcp-clipboard/clipboard.key
(または任意のカスタム--db-path
と同じ場所)に保存される32バイトのキーを使用して、AES-256-GCMで暗号化されて保存されます。
- キー管理:キーはサーバーが初めて実行されたときに自動的に作成されます。ファイルを置き換えて古いセッションをクリアすることで、キーをローテーションできます。
- ファイルパーミッション:サーバーは、クリップボードディレクトリとデータベース/キーファイルに700/600のパーミッションを適用します。これらを移動した場合は、これらのパーミッションが無傷であることを確認してください。
- パスアクセス制御:デフォルトでは、サーバーはすべてのファイルシステムパスにアクセスできます。アクセスを制限するには、
~/.mcp-clipboard/paths.allow
に許可されるパスパターンを記述します。設定例については、Path Access Control Documentationを参照してください。
- データベースの場所:将来のリリースでは、
DatabaseManager
コンストラクタまたはCLIフラグを介して、データベースの場所(したがってキーの場所)をオーバーライドできます。
制限されたアクセスのクイックセットアップ
サーバーを現在のプロジェクトのみに制限するには、~/.mcp-clipboard/paths.allow
を作成します:
# あなたのプロジェクトディレクトリのみを許可する
/Users/username/my-project/**
# 一般的なディレクトリを除外する
!**/node_modules/**
!**/.git/**
詳細な例とベストプラクティスについては、Path Access Control Documentationを参照してください。