umcp

nikhildx/umcp

3.2

If you are the rightful owner of umcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

UMCP is a secure, modular Model Context Protocol server designed for Ubuntu Linux system administration, enabling AI assistants and automation tools to interact with systems safely.

Tools
5
Resources
0
Prompts
0

Ubuntu OS MCP Server (UMCP)

A secure, modular MCP (Model Context Protocol) server for Ubuntu Linux system administration. Enables AI assistants and automation tools to safely interact with Ubuntu systems through authenticated, whitelisted operations.

Features

  • Multi-Protocol Support: stdio, HTTP/REST, and SSE (Server-Sent Events)
  • Comprehensive System Operations: Disk usage, process management, file operations, git commands, package management, and more
  • Security First: API key/JWT authentication, RBAC, command/path whitelisting, audit logging
  • MCP Compliant: Full support for Tools, Resources, and Prompts
  • OpenAPI 3.0: Auto-generated REST API documentation
  • Modular Architecture: Clean separation of concerns for easy extension

Quick Start

Installation

# Clone the repository
git clone https://github.com/umcp/umcp.git
cd umcp

# Create virtual environment
python3.11 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -e .

# Install development dependencies
pip install -e ".[dev]"

Configuration

# Copy example configuration
cp config/server.example.yaml config/server.yaml

# Edit configuration
nano config/server.yaml

Running the Server

# Stdio mode (for local MCP clients)
umcp --transport stdio

# HTTP mode (REST API + SSE)
umcp --transport http --port 8000

# With custom config
umcp --config config/server.yaml

Usage Examples

Using with MCP CLI Client

# List available tools
mcp-client list-tools --server stdio://umcp

# Execute a tool
mcp-client call-tool get_disk_usage --server stdio://umcp

Using HTTP REST API

# Get authentication token
curl -X POST http://localhost:8000/auth/token \
  -H "Content-Type: application/json" \
  -d '{"username": "admin", "password": "secret"}'

# Call a tool
curl -X POST http://localhost:8000/tools/get_disk_usage \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"human_readable": true}'

Available Tools

  • System Information: get_disk_usage, get_memory_info, get_system_info
  • File Operations: list_directory, change_permissions, change_ownership
  • Process Management: list_processes, get_process_info
  • Network: get_network_stats, netstat_query, lsof_query
  • Git Operations: git_clone, git_pull, git_status, git_log
  • Package Management: apt_update, apt_install
  • Service Management: systemctl_control, systemctl_status
  • Maintenance: cleanup_logs

Security

UMCP implements multiple security layers:

  • Authentication: API key or JWT token-based authentication
  • Authorization: Role-based access control (RBAC)
  • Whitelisting: Commands, paths, and users must be explicitly allowed
  • Audit Logging: All operations are logged for security review
  • Input Validation: Prevents command injection and path traversal attacks

See for details.

Development

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=umcp --cov-report=html

# Run specific test categories
pytest -m "not slow"
pytest -m integration
pytest -m security

Code Quality

# Format code
black umcp tests

# Lint code
ruff check umcp tests

# Type checking
mypy umcp

Pre-commit Hooks

# Install pre-commit hooks
pre-commit install

# Run manually
pre-commit run --all-files

Architecture

umcp/
├── core/           # Core server, config, models
├── transports/     # stdio, HTTP, SSE adapters
├── security/       # Auth, authorization, validation
├── handlers/       # MCP tools, resources, prompts
├── services/       # System operation services
└── utils/          # Shared utilities

See for details.

Documentation

Contributing

Contributions are welcome! Please read for guidelines.

License

MIT License - see for details.

Support