Enables reading and writing Windows batch files (.bat) within permitted directories
Supports reading and writing CSS files within permitted directories
Enables reading, writing, and listing files within permitted directories with extension filtering for security, focused on document management in user-designated safe folders
Provides support for handling JavaScript files, allowing reading and writing .js files within permitted directories
Supports reading and writing shell script files (.sh) within permitted directories
Implemented in TypeScript and provides support for handling TypeScript files, including reading and writing .ts files within permitted directories
Enables reading and writing XML files within permitted directories
Provides support for reading and writing YAML files within permitted directories
Simple MCP Server
TypeScriptで作成されたシンプルなMCP(Model Context Protocol)サーバのサンプルです。ClaudeDesktopから使用して、ファイル操作やシステム情報の取得が可能です。
🔒 セキュリティ機能
このMCPサーバーにはパスアクセス制限機能が組み込まれており、安全なディレクトリのみへのアクセスを許可します。
許可されるディレクトリ
- ユーザーのDocuments/00_AI_Areaフォルダ(現在の設定)
- その他カスタム設定可能
ブロックされるディレクトリ
- システムディレクトリ(
/etc
、/bin
、/Windows
、/Program Files
など) - 機密情報ディレクトリ(
.ssh
、.aws
、.config
など)
許可されるファイル拡張子
.txt
, .md
, .json
, .js
, .ts
, .html
, .css
, .py
, .java
, .cpp
, .c
, .h
, .xml
, .yaml
, .yml
, .log
, .csv
, .tsv
, .sql
, .sh
, .bat
, .ps1
機能
- read_file: ファイルの読み込み(許可されたディレクトリのみ)
- write_file: ファイルへの書き込み(許可されたディレクトリのみ)
- list_directory: ディレクトリの一覧表示(許可されたディレクトリのみ)
- get_system_info: システム情報の取得
- create_sample_file: サンプルファイルの作成(テスト用)
- get_allowed_paths: アクセス可能なパス一覧を表示(新機能)
セットアップ
1. 依存関係のインストール
2. ビルド
3. ClaudeDesktop設定
ClaudeDesktopの設定ファイル(通常 %APPDATA%\Claude\claude_desktop_config.json
)を編集します:
重要: args
の配列には、プロジェクトの dist/index.js
への絶対パスを指定してください。
4. ClaudeDesktopの再起動
設定を反映するため、ClaudeDesktopを再起動してください。
開発モード
開発中は以下のコマンドでサーバーを直接実行できます:
使用例
ClaudeDesktopで以下のようなリクエストを試してみてください:
システム情報の取得
アクセス可能なパスの確認
サンプルファイルの作成
ファイルの読み込み
ディレクトリの一覧表示
ファイルへの書き込み
🔧 設定のカスタマイズ
PathValidator
クラスの設定を変更することで、アクセス許可ルールをカスタマイズできます:
ファイル構成
トラブルシューティング
MCPサーバーが認識されない場合
- ClaudeDesktopの設定ファイルのパスが正しいか確認
dist/index.js
への絶対パスが正しいか確認npm run build
でビルドが正常に完了しているか確認- ClaudeDesktopを完全に再起動
ファイル操作でエラーが発生する場合
- ファイルパスが存在するか確認
- 適切な読み書き権限があるか確認
- 相対パスではなく絶対パスを使用してみる
セキュリティ関連のエラー
"許可されていないパスです"
- アクセスしようとしているパスが許可されたディレクトリ内にありません
- get_allowed_pathsツールを使用してアクセス可能なパスを確認してください
"許可されていないファイル拡張子です"
- サポートされていないファイル拡張子にアクセスしようとしています
- 許可された拡張子の一覧を確認し、必要に応じて設定を変更してください
デバッグモード
サーバーの動作ログは標準エラー出力に出力されます:
カスタマイズ
新しいツールを追加するには:
TOOLS
配列に新しいツール定義を追加setupToolHandlers()
メソッドにハンドラーを追加- 対応するメソッドを実装
例えば、現在時刻を取得するツールを追加したい場合は、get_current_time
のようなツールを実装できます。
🛡️ セキュリティ考慮事項
- パスアクセス制限: システムファイルや機密情報への不正アクセスを防止
- ファイル拡張子フィルタ: 実行可能ファイルや危険なファイル形式をブロック
- パス正規化: 相対パスや「..」を使った親ディレクトリへの不正アクセスを防止
- エラーハンドリング: 適切なエラーメッセージでセキュリティ違反を通知
よくある質問
Q: 新しいディレクトリにアクセスしたい場合は?
A: クラスの配列にパスを追加してサーバーを再起動してください。 PathValidator``allowedPaths
Q: セキュリティ制限を無効にできますか?
A: セキュリティ上推奨されませんが、メソッドで常に{ isValid: true, normalizedPath }
を返すように変更できます。 validatePath
Q: 大きなファイルの処理は可能ですか?
A: 現在の実装では、ファイル全体をメモリに読み込むため、非常に大きなファイルの処理には適していません。
注意事項
- このサンプルは学習・テスト目的で作成されています
- 本番環境で使用する場合は、適切なエラーハンドリングとセキュリティ対策を追加してください
- ファイル操作は実行するユーザーの権限で行われます
- セキュリティ制限により、許可されたディレクトリ以外にはアクセスできません
厳重注意: このサーバーはローカル環境での使用を想定しています。本番環境で使用する場合は、追加のセキュリティ対策を検討してください。
ライセンス
MIT License
local-only server
The server can only run on the client's local machine because it depends on local resources.
A TypeScript-based MCP server that enables Claude Desktop to perform file operations and retrieve system information, with built-in security features that restrict access to safe directories only.
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that enables saving and sharing Claude Desktop conversations, allowing users to store chats privately or make them public through a web interface.Last updated -210TypeScriptMIT License
- AsecurityFlicenseAqualityA TypeScript-based MCP server that implements a simple notes system, allowing users to create, access, and generate summaries of text notes through Claude Desktop.Last updated -12801JavaScript
- AsecurityFlicenseAqualityA server built on mcp-framework that enables integration with Claude Desktop through the Model Context Protocol.Last updated -11
- AsecurityFlicenseAqualityA TypeScript-based MCP server that implements a simple notes system, allowing users to create, access, and generate summaries of notes via Claude Desktop integration.Last updated -21JavaScript