Unrestricted Development MCP Server
Provides container management capabilities (currently stubbed/TODO)
Provides version control operations (currently stubbed/TODO)
Provides database operations for MongoDB instances (currently stubbed/TODO)
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Unrestricted Development MCP Server list files in my home directory"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 contentsfs_write_file- Write/overwrite files with auto-directory creationfs_append_file- Append to existing filesfs_delete_file- Delete filesfs_list_directory- List directory contents (recursive support)fs_create_directory- Create directoriesfs_delete_directory- Delete directories (recursive support)fs_get_file_info- Get file/directory metadatafs_move_file- Move/rename filesfs_copy_file- Copy files
2. Shell Tools (2 tools)
shell_execute- Execute any shell command with optional sudoshell_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)
Install dependencies:
cd /home/connor-boetig/proj/mcp2 npm installBuild the project:
npm run buildAdd 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 listYou should see:
unrestricted-dev: node /home/connor-boetig/proj/mcp2/build/index.js - ā ConnectedStart using it! - The MCP tools are now available globally in every Claude Code conversation.
Type
/mcpto see your configured servers, or just start asking Claude to use the tools!
Development
Run manually for testing:
npm startWatch mode for development:
npm run watchWorking Directory Behavior
Important Notes:
The MCP server launches from the root directory (
/) for full system accessFor file operations:
Absolute paths (e.g.,
/home/connor-boetig/projects/file.txt) always workRelative paths (e.g.,
./etc/nginx/nginx.conforhome/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 outputDevelopment
Watch mode for development:
npm run watchLicense
MIT
Available Tools
49 toolsdocker_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
Scored across 49 tools
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.
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.
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.
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
Develop, manage, and debug Railway projects, services, and deployments from within agents.
Work on your own computers from Claude or ChatGPT: run commands, edit and search files.
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Manage remote servers, SSH terminals, files, databases and proxies with scoped access and approvals.