Skip to main content
Glama
ConnorBoetig-dev

Unrestricted Development MCP Server

README.md
# Unrestricted Development MCP Server

A Model Context Protocol (MCP) server that provides AI with unrestricted access to your development environment.

## Features

### āœ… Fully Implemented

#### 1. Filesystem Tools (10 tools)
- `fs_read_file` - Read file contents
- `fs_write_file` - Write/overwrite files with auto-directory creation
- `fs_append_file` - Append to existing files
- `fs_delete_file` - Delete files
- `fs_list_directory` - List directory contents (recursive support)
- `fs_create_directory` - Create directories
- `fs_delete_directory` - Delete directories (recursive support)
- `fs_get_file_info` - Get file/directory metadata
- `fs_move_file` - Move/rename files
- `fs_copy_file` - Copy files

#### 2. Shell Tools (2 tools)
- `shell_execute` - Execute any shell command with optional sudo
- `shell_execute_streaming` - Execute long-running commands with streaming output

### 🚧 Stubbed (TODO)
- Docker tools (container management)
- MongoDB tools (database operations)
- Git tools (version control)
- Process tools (process management)
- Network tools (HTTP, SSH, etc.)

## Quick Setup (Ubuntu)

1. **Install dependencies:**
   ```bash
   cd /home/connor-boetig/proj/mcp2
   npm install
   ```

2. **Build the project:**
   ```bash
   npm run build
   ```

3. **Add to Claude Code:**

   Use the Claude Code CLI to add the MCP server:
   ```bash
   claude mcp add-json unrestricted-dev '{"command":"node","args":["/home/connor-boetig/proj/mcp2/build/index.js"],"cwd":"/"}'
   ```

   Verify it's configured:
   ```bash
   claude mcp list
   ```

   You should see: `unrestricted-dev: node /home/connor-boetig/proj/mcp2/build/index.js - āœ“ Connected`

4. **Start using it!** - The MCP tools are now available globally in every Claude Code conversation.

   Type `/mcp` to see your configured servers, or just start asking Claude to use the tools!

## Development

Run manually for testing:
```bash
npm start
```

Watch mode for development:
```bash
npm run watch
```

## Working Directory Behavior

**Important Notes:**
- The MCP server launches from the **root directory** (`/`) for full system access
- For file operations:
  - **Absolute paths** (e.g., `/home/connor-boetig/projects/file.txt`) always work
  - **Relative paths** (e.g., `./etc/nginx/nginx.conf` or `home/connor-boetig/file.txt`) are relative to `/`
  - Both absolute and relative paths work seamlessly since we start from root

## Security Warning

āš ļø This server grants **UNRESTRICTED** system access including:
- Full filesystem read/write/delete
- Shell command execution with sudo
- All privileges you have

**Only use this on:**
- Local development machines (NOT production)
- Trusted environments (VM, Docker, dedicated dev box)
- When you understand and accept the risks

## Example Usage

Once connected, the AI can:

```javascript
// Read a file
await use_mcp_tool({
  server_name: "unrestricted-dev",
  tool_name: "fs_read_file",
  arguments: { path: "/path/to/file.txt" }
});

// Install a package
await use_mcp_tool({
  server_name: "unrestricted-dev",
  tool_name: "shell_execute",
  arguments: {
    command: "apt install -y nodejs",
    sudo: true
  }
});

// List directory
await use_mcp_tool({
  server_name: "unrestricted-dev",
  tool_name: "fs_list_directory",
  arguments: {
    path: "/home/user/projects",
    recursive: true,
    showHidden: false
  }
});
```

## Project Structure

```
mcp2/
ā”œā”€ā”€ package.json              # Dependencies and scripts
ā”œā”€ā”€ tsconfig.json             # TypeScript config
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts              # Main server entry point
│   └── tools/
│       ā”œā”€ā”€ filesystem.ts     # āœ… Fully implemented
│       ā”œā”€ā”€ shell.ts          # āœ… Fully implemented
│       ā”œā”€ā”€ docker.ts         # 🚧 Stub
│       ā”œā”€ā”€ mongodb.ts        # 🚧 Stub
│       ā”œā”€ā”€ git.ts            # 🚧 Stub
│       ā”œā”€ā”€ process.ts        # 🚧 Stub
│       └── network.ts        # 🚧 Stub
└── build/                    # Compiled output
```

## Development

Watch mode for development:
```bash
npm run watch
```

## License

MIT

TDQS

B3.2/5.0

Scored across 49 tools

Disambiguation4/5

The tools are grouped by domain (git, docker, filesystem, shell) and each has a distinct purpose. However, there is some potential confusion between shell_execute and shell_execute_streaming, and between docker_compose_ps and docker_ps, though their descriptions clarify the differences.

Naming Consistency4/5

Tool names consistently follow a domain_prefix_verb pattern (e.g., fs_read_file, git_commit, docker_build, shell_execute). Minor deviations exist like docker_compose_up vs docker_compose_ps, but overall the naming is predictable and consistent.

Tool Count3/5

49 tools is on the heavy side for a development server, but the breadth is justified by covering git, Docker, filesystem, and shell operations. It feels slightly over-scoped but each tool serves a distinct purpose.

Completeness4/5

The server provides comprehensive coverage for git, Docker, and filesystem operations, including lifecycle commands (create/read/update/delete). Minor gaps exist, such as no dedicated docker_compose_build or fs_find/search tool, but shell_execute can cover those cases.