AdminMCP (ACP)
A comprehensive MCP (Model Context Protocol) based agent environment for system administration and automation tasks. AdminMCP provides both a CLI tool for managing MCP servers and a server implementation with built-in tools and resources for administrative operations.
๐ Table of Contents
๐ฏ Project Description
AdminMCP is a dual-purpose tool that serves as both a command-line interface (CLI) for managing MCP servers and an MCP server itself. The project aims to create a robust environment for system administration tasks through MCP-compatible agents.
The CLI component (acp) provides easy management of MCP server processes, while the server component offers a collection of tools and resources for common administrative and computational tasks. Future versions will include client functionality for connecting to and interacting with MCP servers.
Architecture
CLI Tool: Command-line interface for server lifecycle management
MCP Server: FastMCP-based server providing tools and resources
Configuration System: User-configurable settings stored in
~/.config/adminmcp/Client (Planned): MCP client for connecting to servers and executing tasks
โจ Features
Current Features
CLI Server Management
Server Control: Start and stop MCP servers as background processes
Process Management: Automatic PID tracking and safe process termination
Safety Checks: Prevents multiple server instances and handles edge cases
MCP Server Tools
Mathematical Operations: Add, subtract, multiply, divide numbers
Mathematical Constants: Access to ฯ, e, ฯ via resource endpoints
Number Utilities: Check if numbers are even/odd
DateTime Resources: Current datetime with timezone information
Wikipedia Integration: Fetch article summaries from Wikipedia
Configuration Management
Initialization: Automated setup of configuration directories
User Settings: Customizable server port and logging levels
MCP Server Registry: Management of connected MCP servers
Planned Features
Client Functionality
Server Connection: Connect to MCP servers via WebSocket/SSE
Tool Execution: Remote execution of server-provided tools
Resource Access: Query server resources programmatically
Interactive Mode: REPL for interactive server interaction
Advanced Administration Tools
System Monitoring: CPU, memory, disk usage tools
File Operations: Safe file manipulation tools
Network Utilities: DNS lookup, port scanning, connectivity tests
Process Management: List, start, stop system processes
๐ Installation
Prerequisites
Python 3.11 or higher
uvpackage manager (recommended) orpip
Install from Source
Clone the repository:
git clone https://github.com/yourusername/adminmcp.git cd adminmcpCreate virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activateInstall dependencies:
# Using uv (recommended) uv pip install -e . # Or using pip pip install -e .Verify installation:
acp --help
Using uv (Recommended)
๐ Usage Examples
Basic Server Management
Start the MCP server:
Stop the MCP server:
Initialize configuration:
Testing with MCP Inspector
The easiest way to test the server is using the MCP Inspector:
This starts the MCP Inspector UI where you can interact with all available tools and resources.
Programmatic Usage
The server can be used programmatically through MCP clients. Here are some example tool calls:
โ๏ธ Configuration
AdminMCP uses a configuration system stored in ~/.config/adminmcp/. The configuration is initialized automatically with the acp init command.
Configuration Files
config.adminmcp.json
Template configuration file with default settings:
mcp_settings.json
Runtime configuration for MCP server settings:
Configuration Options
acpServerPort: Port number for the AdminMCP server (default: 8080)acpLoggingLevel: Logging verbosity - "debug", "info", "warning", "error" (default: "info")mcpServers: Registry of configured MCP servers (for future client functionality)
Customizing Configuration
Run initialization:
acp initEdit
~/.config/adminmcp/mcp_settings.jsonwith your preferred settingsRestart the server for changes to take effect
๐ ๏ธ Development Setup
Development Environment
Clone and setup:
git clone https://github.com/yourusername/adminmcp.git cd adminmcp uv venv source .venv/bin/activate uv pip install -e .Install development dependencies:
uv pip install pytest pytest-asyncioRun tests:
pytest
Project Structure
Development Workflow
Make changes to source files in
src/adminmcp/Run tests to ensure functionality
Test with MCP Inspector for server changes
Update documentation as needed
Adding New Tools
To add new MCP tools to the server:
Adding New Resources
To add new MCP resources:
๐งช Testing
Running Tests
Test Structure
Tests are organized in the tests/ directory. Currently, the test suite includes:
CLI command tests
Server functionality tests
Configuration management tests
Writing Tests
Example test structure:
๐ค Contributing
We welcome contributions to AdminMCP! Here's how you can help:
Development Process
Fork the repository on GitHub
Create a feature branch:
git checkout -b feature/your-feature-nameMake your changes following the coding standards
Add tests for new functionality
Run the test suite:
pytestUpdate documentation if needed
Submit a pull request
Coding Standards
Python Style: Follow PEP 8 guidelines
Type Hints: Use type annotations for function parameters and return values
Documentation: Add docstrings to all public functions and classes
Logging: Use the provided logging configuration
Error Handling: Implement proper exception handling
Areas for Contribution
New MCP Tools: Add administrative tools (file operations, system monitoring, etc.)
Client Implementation: Build the MCP client functionality
Documentation: Improve documentation and examples
Testing: Expand test coverage
Performance: Optimize server performance and resource usage
Reporting Issues
Bug Reports: Use GitHub Issues with detailed reproduction steps
Feature Requests: Describe the use case and expected behavior
Security Issues: Contact maintainers directly
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
Model Context Protocol for the underlying protocol
FastMCP for the Python MCP server implementation
The open-source community for inspiration and tools
AdminMCP is an ongoing project. Stay tuned for updates and new features!