MCP Server for Software Development について
Claude Desktop向けに、デーモン経由でファイルシステムとシェルを操作するMCPサーバーです。操作の検出、パラメーター検証、ログ、詳細なエラー情報を備えています。
主な機能
- 01ファイルの一覧表示、読み書き、編集、移動、削除
- 02ディレクトリの作成と削除
- 03出力と終了ステータス付きのシェル実行
- 04操作スキーマの動的な検出
- 05パラメーター検証と詳細なエラー返却
活用シーン
- 01Claude Desktopからプロジェクトファイルを確認・変更
- 02対象ディレクトリでのシェルコマンド実行
- 03トラブルシューティング時の操作ログ確認
MCP 対応
利用可能なファイルシステム操作とスキーマを検出するツールと、デーモン経由で操作を実行するツールの2つを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ソフトウェア開発用 MCP サーバー
Claude デスクトップにファイルシステムとシェルへのアクセスを提供する MCP サーバーです。
アーキテクチャ
Claude ←→ MCP Server ←→ Unix Socket ←→ Filesystem Daemon
(2 tools) (JSON RPC) (file operations, shell)
主なメリット
- ✅ 権限確認が1回だけ(元の15個以上のツールに対して2つ)
- ✅ 環境を制御(デーモンは適切な venv/ディレクトリで実行)
- ✅ ターミナルで可視化(すべての操作がコンテキストとともに記録されます)
- ✅ 動的な検出(操作が自動でドキュメント化されます)
- ✅ 充実したエラー処理(提案を含む詳細なエラー)
- ✅ 型安全性(検証付きパラメータスキーマ)
クイックスタート
-
ファイルシステムデーモンを起動します(対象ディレクトリで):
python fs_access.py # Normal mode python fs_access.py --verbose # Verbose mode (shows shell output, file contents, edit details) -
設定を通じて Claude を MCP サーバーに接続します:
{ ... "mcpServers": { "Dev": { "command": "uv", "args": [ "run", "--with", "fastmcp", "$path/mcp-server-dev/mcp_server.py" ] } } } -
連携をテストします:
- Claude Desktop の「検索とツール」メニューに Dev が表示されていることを確認します
- ファイルシステムアクセスサーバーを実行し、Claude と会話してツールを使用できるか確認します。
Claude で利用できる MCP ツール
1. get_available_operations()
- 目的:利用可能なファイルシステム操作とそのスキーマを確認します
- 戻り値:型、説明、デフォルト値を含む操作スキーマの Dict
2. execute_fs_operation(operation, params)
- 目的:デーモンを介してファイルシステム操作を実行します
- パラメータ:
operation:操作名(string)params:操作のパラメータ(dict)
- 戻り値:成功ステータス、結果/エラー、ログを含む Dict
利用可能な操作
ファイル操作
ls(path=".")
指定したパス内のファイルとディレクトリを一覧表示します。
- 例:
execute_fs_operation("ls", {}) - 例:
execute_fs_operation("ls", {"path": "/tmp"})
read_file(path)
ファイルの内容を UTF-8 文字列として読み込みます。
- 例:
execute_fs_operation("read_file", {"path": "README.md"})
write_file(path, content)
ファイルに内容を書き込みます(ファイルを作成または上書きします)。
- 例:
execute_fs_operation("write_file", {"path": "test.txt", "content": "Hello world!"})
edit_file(path, changes)
ファイルに検索/置換操作を適用します。
- 例:
execute_fs_operation("edit_file", {
"path": "config.py",
"changes": [
["DEBUG = False", "DEBUG = True"],
["localhost", "production.com"]
]
})
ディレクトリ管理
mkdir(path)
ディレクトリと、必要な親ディレクトリを作成します。
- 例:
execute_fs_operation("mkdir", {"path": "project/src/utils"})
rmdir(path)
ディレクトリとその内容をすべて再帰的に削除します(注意して使用してください!)。
- 例:
execute_fs_operation("rmdir", {"path": "temp_project"})
ファイルとディレクトリの管理
rm(path)
ファイルまたは空のディレクトリを削除します。
- 例:
execute_fs_operation("rm", {"path": "unwanted_file.txt"}) - 例:
execute_fs_operation("rm", {"path": "empty_dir"})(空の場合のみ)
mv(src, dst)
ファイルやディレクトリを移動または名前変更します。
- 例:
execute_fs_operation("mv", {"src": "old_name.txt", "dst": "new_name.txt"}) - 例:
execute_fs_operation("mv", {"src": "temp", "dst": "project/temp"})
シェルコマンド
shell(command, args=[], timeout=30)
シェルコマンドを実行し、stdout、stderr、exit_code を返します。
- 例:
execute_fs_operation("shell", {"command": "git", "args": ["status"]}) - 例:
execute_fs_operation("shell", {"command": "python", "args": ["--version"]}) - 例:
execute_fs_operation("shell", {"command": "find", "args": [".", "-name", "*.py"], "timeout": 60}) - 戻り値:
{"stdout": "...", "stderr": "...", "exit_code": 0, "command": "...", "working_directory": "..."}
エラー処理
- 接続エラー:デーモンが実行されていない場合 → 役立つヒントが表示されます
- 無効な操作:利用可能な操作とシグネチャが一覧表示されます
- ファイルエラー:詳細なエラーの種類(FileNotFoundError、PermissionError など)
- パラメータエラー:型の検証と要件の確認
Claude の使用パターン
- 検出:
get_available_operations()を呼び出して、利用可能な操作を確認します - 実行:
execute_fs_operation(operation_name, params_dict)を呼び出します
コアファイル
fs_access.py- すべての操作を備えたファイルシステムデーモンmcp_server.py- Claude インターフェースを提供する MCP サーバーsocket_protocol.py- Unix ソケット通信レイヤーshell_examples.py- シェルコマンドの例
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。