Skip to main content
Glama
Unrestricted Development MCP Server

Unrestricted Development MCP Server

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:

    cd /home/connor-boetig/proj/mcp2
    npm install
  2. Build the project:

    npm run build
  3. Add to Claude Code:

    Use the Claude Code CLI to add the MCP server:

    claude mcp add-json unrestricted-dev '{"command":"node","args":["/home/connor-boetig/proj/mcp2/build/index.js"],"cwd":"/"}'

    Verify it's configured:

    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:

npm start

Watch mode for development:

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:

// 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:

npm run watch

License

MIT

Available Tools

49 tools
docker_buildC

Build a Docker image from a Dockerfile

Inputs: path (required), tag, dockerfile, buildArgs, +3 more.

docker_compose_downC

Stop and remove containers, networks created by docker-compose up

Inputs: volumes, removeOrphans, file, cwd.

docker_compose_logsB

View output from containers in a docker-compose stack

Inputs: services, tail, since, timestamps, +2 more.

docker_compose_psB

List containers in a docker-compose stack

Inputs: services, all, file, cwd.

docker_compose_upC

Create and start containers defined in docker-compose.yml

Inputs: detach, build, services, file, +1 more.

docker_execC

Execute a command inside a running container

Inputs: container (required), command (required), workdir, user, +2 more.

docker_imagesC

List Docker images

Inputs: filter, all, format, cwd.

docker_inspectB

Return low-level information on Docker objects (containers, images, networks, volumes)

Inputs: target (required), type, cwd.

docker_logsC

Fetch logs from a container

Inputs: container (required), tail, follow, since, +2 more.

docker_psC

List Docker containers with their status

Inputs: all, filter, format, cwd.

docker_pullC

Pull an image or repository from a registry

Inputs: image (required), allTags, cwd.

docker_restartC

Restart one or more containers

Inputs: containers (required), timeout, cwd.

docker_rmC

Remove one or more containers

Inputs: containers (required), force, volumes, cwd.

docker_rmiC

Remove one or more images

Inputs: images (required), force, cwd.

docker_startC

Start one or more stopped containers

Inputs: containers (required), cwd.

docker_stopC

Stop one or more running containers

Inputs: containers (required), timeout, cwd.

fs_append_fileA

Append content to an existing file. Creates the file if it doesn't exist.

Inputs: path (required), content (required), encoding.

fs_copy_fileB

Copy a file to a new location

Inputs: source (required), destination (required).

fs_create_directoryA

Create a new directory. Can create parent directories if they don't exist.

Inputs: path (required), recursive.

fs_delete_directoryA

Delete a directory. Can recursively delete all contents. WARNING: Use with caution as this is irreversible.

Inputs: path (required), recursive.

fs_delete_fileA

Delete a file from the filesystem. This operation is irreversible.

Inputs: path (required).

fs_get_file_infoB

Get detailed information about a file or directory (size, permissions, timestamps, etc.)

Inputs: path (required).

fs_list_directoryB

List contents of a directory with detailed information about each entry (name, type, size, permissions, etc.)

Inputs: path (required), recursive, showHidden.

fs_move_fileC

Move or rename a file or directory

Inputs: source (required), destination (required).

fs_read_fileA

Read the contents of a file from the filesystem. Supports text and binary files.

Inputs: path (required), encoding.

fs_write_fileA

Write content to a file. Creates the file if it doesn't exist, overwrites if it does. Can create parent directories.

Inputs: path (required), content (required), encoding, createDirs.

git_addA

Stage files for commit. Use "." to stage all changes

Inputs: files (required), cwd.

git_branchC

List, create, delete, or rename branches

Inputs: cwd, action, name, newName, +2 more.

git_checkoutC

Switch branches or restore files

Inputs: target (required), cwd, createBranch, force.

git_cloneB

Clone a repository into a new directory

Inputs: url (required), destination, cwd, branch, +1 more.

git_commitC

Create a commit with staged changes

Inputs: message (required), cwd, amend, noVerify.

git_configC

Get or set git configuration

Inputs: cwd, action, key, value, +1 more.

git_diffB

Show changes between commits, working tree, and staging area

Inputs: cwd, cached, files, commit.

git_fetchC

Download objects and refs from remote repository

Inputs: cwd, remote, prune.

git_initC

Initialize a new git repository

Inputs: cwd, bare.

git_logC

Show commit history with details

Inputs: cwd, limit, oneline, graph, +1 more.

git_mergeC

Merge a branch into current branch

Inputs: branch (required), cwd, noFf, abort.

git_pullC

Fetch and integrate changes from remote repository

Inputs: cwd, remote, branch, rebase.

git_pushC

Push commits to remote repository

Inputs: cwd, remote, branch, force, +1 more.

git_rebaseC

Reapply commits on top of another branch

Inputs: branch, cwd, interactive, abort, +1 more.

git_remoteC

Manage remote repositories

Inputs: cwd, action, name, url.

git_resetC

Reset current HEAD to specified state

Inputs: cwd, mode, commit, files.

git_revertC

Revert a commit by creating a new commit

Inputs: commit (required), cwd, noCommit.

git_showC

Show details of a commit

Inputs: commit, cwd.

git_stashC

Stash changes in working directory

Inputs: cwd, action, message, index.

git_statusB

Get repository status showing staged, unstaged, and untracked files

Inputs: cwd, short.

git_tagC

Create, list, or delete tags

Inputs: cwd, action, name, message, +1 more.

shell_executeA

Execute a shell command with full system access. Supports sudo for privileged operations.

Use this for:

  • Running system commands (apt, brew, yum, dnf, pacman, etc.)

  • Installing packages and dependencies

  • Managing services (systemctl, service, etc.)

  • File operations via shell utilities

  • Network operations (curl, wget, ssh, scp, etc.)

  • Git operations

  • Docker commands

  • Any other shell command

The command runs in /bin/bash by default. Output is captured and returned after completion. For long-running commands, use shell_execute_streaming instead.

Inputs: command (required), cwd, env, timeout, +2 more.

shell_execute_streamingA

Execute a long-running shell command with streaming output support. Captures output as it's produced.

Use this for:

  • Build processes (npm build, cargo build, etc.)

  • Long-running scripts

  • Services that produce continuous output

  • Commands that take significant time to complete

The command runs in /bin/bash by default. Output is streamed and returned when complete.

Inputs: command (required), cwd, env, shell, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    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.

    Related MCP Connectors