mcpField
M
MCP Server for Software Development

MCP Server for Software Development

Local
github.com/kvas-itDeveloper Tools0Updated 74w ago

About MCP Server for Software Development

MCP server for Claude Desktop that routes filesystem and shell operations through a daemon. It combines operation discovery with validated requests, logs, and detailed errors.

Key features

  1. 01List, read, write, edit, move, and remove files
  2. 02Create and remove directories
  3. 03Run shell commands with output and exit status
  4. 04Discover operation schemas dynamically
  5. 05Validate parameters and return detailed errors

Use cases

  1. 01Inspect and modify project files through Claude Desktop
  2. 02Run shell commands in a target directory
  3. 03Review operation logs when troubleshooting

MCP support

Exposes two MCP tools: one to discover available filesystem operations and schemas, and another to execute them through the daemon.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Server for Software Development

An MCP server that provides filesystem and shell access to Claude desktop.

Architecture

Claude ←→ MCP Server ←→ Unix Socket ←→ Filesystem Daemon
       (2 tools)      (JSON RPC)     (file operations, shell)

Key Benefits

  • ✅ Single permission prompt (2 tools vs 15+ in original)
  • ✅ Environment control (daemon runs with proper venv/directory)
  • ✅ Terminal visibility (all operations logged with context)
  • ✅ Dynamic discovery (operations auto-documented)
  • ✅ Rich error handling (detailed errors with suggestions)
  • ✅ Type safety (parameter schemas with validation)

Quick Start

  1. Start the filesystem daemon (in your target directory):

    python fs_access.py           # Normal mode
    python fs_access.py --verbose # Verbose mode (shows shell output, file contents, edit details)
    
  2. Connect Claude to the MCP server via configuration:

    {
      ...
      "mcpServers": {
        "Dev": {
          "command": "uv",
          "args": [
            "run",
            "--with",
            "fastmcp",
            "$path/mcp-server-dev/mcp_server.py"
          ]
        }
      }
    }
    
  3. Test the integration:

    • Check that Dev is visible in the "search and tools" menu in Claude Desktop
    • Run the filesystem access server and talk to Claude to see if it can use the tools.

MCP Tools Available to Claude

1. get_available_operations()
  • Purpose: Discover available filesystem operations and their schemas
  • Returns: Dict with operation schemas including types, descriptions, defaults
2. execute_fs_operation(operation, params)
  • Purpose: Execute a filesystem operation via the daemon
  • Parameters:
    • operation: Name of operation (string)
    • params: Parameters for the operation (dict)
  • Returns: Dict with success status, result/error, and logs

Available Operations

File Operations
ls(path=".")

List files and directories in the specified path.

  • Example: execute_fs_operation("ls", {})
  • Example: execute_fs_operation("ls", {"path": "/tmp"})
read_file(path)

Read file contents as UTF-8 string.

  • Example: execute_fs_operation("read_file", {"path": "README.md"})
write_file(path, content)

Write content to file (creates or overwrites).

  • Example: execute_fs_operation("write_file", {"path": "test.txt", "content": "Hello world!"})
edit_file(path, changes)

Apply search/replace operations to file.

  • Example:
execute_fs_operation("edit_file", {
    "path": "config.py",
    "changes": [
        ["DEBUG = False", "DEBUG = True"],
        ["localhost", "production.com"]
    ]
})
Directory Management
mkdir(path)

Create directory and any necessary parent directories.

  • Example: execute_fs_operation("mkdir", {"path": "project/src/utils"})
rmdir(path)

Remove directory and all its contents recursively (use with caution!).

  • Example: execute_fs_operation("rmdir", {"path": "temp_project"})
File & Directory Management
rm(path)

Remove a file or empty directory.

  • Example: execute_fs_operation("rm", {"path": "unwanted_file.txt"})
  • Example: execute_fs_operation("rm", {"path": "empty_dir"}) (only if empty)
mv(src, dst)

Move or rename files and directories.

  • Example: execute_fs_operation("mv", {"src": "old_name.txt", "dst": "new_name.txt"})
  • Example: execute_fs_operation("mv", {"src": "temp", "dst": "project/temp"})
Shell Commands
shell(command, args=[], timeout=30)

Execute shell commands and return stdout, stderr, exit_code.

  • Example: execute_fs_operation("shell", {"command": "git", "args": ["status"]})
  • Example: execute_fs_operation("shell", {"command": "python", "args": ["--version"]})
  • Example: execute_fs_operation("shell", {"command": "find", "args": [".", "-name", "*.py"], "timeout": 60})
  • Returns: {"stdout": "...", "stderr": "...", "exit_code": 0, "command": "...", "working_directory": "..."}

Error Handling

  • Connection errors: Daemon not running → helpful hints provided
  • Invalid operations: Lists available operations with signatures
  • File errors: Detailed error types (FileNotFoundError, PermissionError, etc.)
  • Parameter errors: Type validation and requirements checking

Usage Pattern for Claude

  1. Discovery: Call get_available_operations() to see what's available
  2. Execution: Call execute_fs_operation(operation_name, params_dict)

Core Files

  • fs_access.py - Filesystem daemon with all operations
  • mcp_server.py - MCP server providing Claude interface
  • socket_protocol.py - Unix socket communication layer
  • shell_examples.py - Example shell commands

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.