Mcp Smb Server について
MCP SMB Serverは、AIエージェントがSMB/CIFS共有やローカルディレクトリのファイルに実行時アクセスするためのゲートウェイです。要求時にのみファイルを読み取り、インデックス化や複製をせず、OSやSMB本来の権限に従います。
主な機能
- 01SMBとローカルファイルシステムへのアクセス
- 02ネイティブな権限適用
- 03要求時のファイルアクセス
- 04ディレクトリ一覧と範囲指定読み取り
- 05stdio通信
活用シーン
- 01権限のあるSMB共有ファイルの読み取り
- 02設定済みローカルパス内のファイル参照
- 03OS権限に沿ったファイルアクセス
MCP 対応
MCPクライアントに`list_directory`と`read_file`ツールを公開します。MCPを実行時の制御層として使い、ファイルの認可は基盤のファイルシステムまたはSMBサーバーに委ねます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP SMB サーバー
Model Context Protocol(MCP)を使用する AI エージェント向けの、実行時ファイルアクセスゲートウェイです。
このプロジェクトでは、ネイティブのファイルシステム権限の適用を維持しながら、AI エージェントが実行時に SMB/CIFS 共有またはローカルファイルシステムのパスにアクセスできます。
基盤となるシステムがファイルを読み取れない場合、エージェントもそのファイルを読み取れません。
このプロジェクトが提供しないもの
- ❌ ファイルシステムのインデックス作成は行いません
- ❌ 埋め込みやベクトルデータベースはありません
- ❌ データの同期や事前コピーは行いません
- ❌ 権限の回避は行いません
- ❌ IAM やポリシーエンジンはありません
提供する機能
- ✅ ファイルをアクセス時にのみ公開します
- ✅ ネイティブの SMB/OS 権限の適用に依存します
- ✅ 実行時のコントロールプレーンとして MCP を使用します
- ✅ SMB と ローカルファイルシステムのバックエンドをサポートします
- ✅ stdio を介して通信します(VS Code/エージェントとの連携に適しています)
このプロジェクトが必要な理由
多くの AI ファイル連携は、次のパターンに従います。
Filesystem → Sync → Index → Embed → Agent
これでは権限モデルが崩れ、アクセス権の取り消しが不可能になります。
このプロジェクトでは、代わりに次のように動作します。
Agent → MCP → Runtime filesystem access → Native permission check
インデックス作成なし。複製なし。ポリシーの再実装なし。
バックエンド
ローカルモード
- ローカルディレクトリにアクセスします
- 設定されたベースパスに制限されます
- OS の権限を使用します
SMB モード
- SMB/CIFS 共有にアクセスします
- 認可は SMB サーバーによって処理されます
- 認証情報は設定ファイルに保存されません
利用可能な MCP ツール
list_directory
指定されたパスにあるファイルとディレクトリを一覧表示します。
引数
path(文字列、必須)
read_file
ファイルの指定範囲を読み取ります。
引数
path(文字列、必須)max_bytes(数値、任意、デフォルト:8192)
設定
設定はプロセスレベルで、起動時に一度だけ読み込まれます。
設定例の詳細については、設定ガイドを参照してください。
クイックスタート:
# SMB mode with environment variables
export MCP_MODE=smb
export SMB_ADDR=localhost:445
export SMB_SHARE=finance
export SMB_AUTH=ntlm
export SMB_USER=alice
export SMB_PASSWORD=your_password
./mcp-smb-server
# Local mode with config file
./mcp-smb-server --config config.yaml
アーキテクチャ
MCP → FileBackend → { Local | SMB }
サーバーは認可を判断しません。
すべてのアクセス判断は、基盤となるファイルシステムまたは SMB サーバーによって行われます。
このプロジェクトに意図的に含めていない機能
- 集中型のポリシー管理
- 承認ワークフロー
- バックエンドをまたぐアクセスルール
- 監査情報の集約
このプロジェクトは、より高度なガバナンスを構築する土台となる、最小限で正確な実行境界を定めます。
インストール
前提条件
- Go 1.24 以降
- SMB モードの場合:SMB/CIFS サーバーへのアクセス
- ローカルモードの場合:適切なファイルシステム権限
ビルド
git clone <repository-url>
cd mcp-smb-server
go build -o mcp-smb-server ./cmd/server
ライセンス
Apache License 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。