About System Administrator With Agentic AI
System Administrator With Agentic AI is an MCP server in the Agents category: aI-powered file system administrator built with Google ADK, FastMCP & Ollama (Llama 3.2). Manage files through natural language — fully local, containerized with Docker, and secured with JWT auth + AI guardrails.
Install
git clone https://github.com/dansimina/System-Administrator-With-Agentic-AIThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (9)
check_file_content(file_path, expected)Verify if a file's content matches a given string (with rate limiting)
Parameters not published.
create_directory(dir_path)Create a new directory (including nested)
Parameters not published.
delete_path(path)Delete a file or empty directory
Parameters not published.
get_file_content(file_path)Read the complete contents of a file
Parameters not published.
get_file_info(file_path)Get metadata: size, creation time, modification time, type
Parameters not published.
get_help()Display all available tools and their descriptions
Parameters not published.
get_root_path()Return the absolute path of the agent's root directory
Parameters not published.
list_directory(dir_path)List all files and folders in a directory
Parameters not published.
write_file_content(file_path, content)Create or overwrite a file with given content
Parameters not published.
Ask AI
Ask AI about System Administrator With Agentic AI
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
🤖 AI System Administrator
An intelligent file system administrator powered by a local LLM, built with Google ADK, FastMCP, and Ollama — fully containerized and secured.

🌟 Overview
AI System Administrator is an agentic AI project that acts as an intelligent file system manager. You interact with it through natural language — ask it to read files, list directories, create folders, or check file contents — and it will carry out the operations autonomously using MCP (Model Context Protocol) tools.
The system runs entirely locally using Ollama with Llama 3.2, meaning no data is sent to external APIs. The full stack is containerized with Docker and orchestrated via Docker Compose, making it portable and easy to deploy on any machine.
✨ Features
- 💬 Natural language interface — talk to the agent like a human, it figures out what to do
- 📁 Full file system management — read, write, create, delete files and directories
- 🔍 File metadata — retrieve size, timestamps, and file type
- 🔒 Multi-layer security — protected files, blocked tools, rate limiting, and JWT authentication
- 🐳 Fully Dockerized — three isolated containers, launched with a single command
- 🔑 JWT-authenticated MCP server — only agents with valid RSA-signed tokens can access tools
- 🛡️ AI Guardrails — prompt engineering to prevent the agent from leaking sensitive information
🏗️ Architecture
The system is composed of three Docker containers communicating over an internal bridge network:
┌─────────────────────────────────────────────────────────┐
│ Docker Network │
│ │
│ ┌───────────────┐ ┌───────────────┐ │
│ │ Ollama │ │ MCP Server │ │
│ │ (Llama 3.2) │◄────│ (FastMCP) │ │
│ │ port: 11434 │ │ port: 8001 │ │
│ └───────────────┘ └───────┬───────┘ │
│ │ JWT Auth │
│ ┌───────▼───────┐ │
│ │ Agent │ │
│ │ (Google ADK) │ │
│ │ port: 8000 │◄── User │
│ └───────────────┘ │
└─────────────────────────────────────────────────────────┘
| Container | Technology | Role |
|---|---|---|
ollama |
ollama/ollama:latest |
Runs the Llama 3.2 language model locally |
mcp-server |
Python + FastMCP | Exposes file system tools via HTTP streaming |
agent |
Python + Google ADK | Processes natural language and calls MCP tools |
🛠️ MCP Tools
The MCP server exposes the following tools to the agent:
| Tool | Description |
|---|---|
get_file_content(file_path) |
Read the complete contents of a file |
list_directory(dir_path) |
List all files and folders in a directory |
get_file_info(file_path) |
Get metadata: size, creation time, modification time, type |
write_file_content(file_path, content) |
Create or overwrite a file with given content |
create_directory(dir_path) |
Create a new directory (including nested) |
delete_path(path) |
Delete a file or empty directory |
check_file_content(file_path, expected) |
Verify if a file's content matches a given string (with rate limiting) |
get_root_path() |
Return the absolute path of the agent's root directory |
get_help() |
Display all available tools and their descriptions |
All file paths are relative to the agent's root directory. The
sanitize_path()function prevents any path traversal attacks (no..or.escapes).
🔒 Security
Security is implemented across three layers:
1. Server Level (MCP)
- JWT Authentication — the MCP server validates RSA-signed Bearer tokens; unauthenticated requests are rejected
- Path sanitization —
sanitize_path()blocks any attempt to escape the root directory - Protected files —
flag.txtis shielded fromget_file_content,write_file_content,delete_path, andget_file_info - Rate limiting —
check_file_contentlimits repeated attempts on protected files
2. Agent Level (Callback)
before_tool_callback— intercepts every tool call before execution; if a blocked tool is called on a protected file, access is denied immediately and the LLM never sees the content
3. Instruction Level (AI Guardrails)
- The agent's system prompt explicitly instructs it to never reveal the contents of protected files, never expose internal tools like
get_security_config, and respond evasively if asked about system internals
📁 Project Structure
project-root/
├── agent/
│ ├── mcp_auth/
│ │ ├── private.pem # RSA private key (agent signs tokens)
│ │ └── public.pem # RSA public key
│ ├── multi_tool_agent/
│ │ ├── __init__.py
│ │ └── agent.py # Agent definition & security callback
│ ├── Dockerfile
│ └── requirements.txt
│
├── server/
│ ├── mcp_auth/
│ │ └── public.pem # RSA public key (server validates tokens)
│ ├── server.py # MCP server with all tools
│ ├── Dockerfile
│ └── requirements.txt
│
└── docker-compose.yml
🚀 Getting Started
1. Clone the repository
git clone https://github.com/dansimina/System-Administrator-With-Agentic-AI
cd System-Administrator-With-Agentic-AI
2. Generate RSA key pair
mkdir -p agent/mcp_auth server/mcp_auth
# Generate private key
openssl genrsa -out agent/mcp_auth/private.pem 2048
# Extract public key
openssl rsa -in agent/mcp_auth/private.pem -pubout -out agent/mcp_auth/public.pem
# Copy public key to server
cp agent/mcp_auth/public.pem server/mcp_auth/public.pem
3. Start the system
docker-compose up --build
4. Pull the Llama model (first run only)
docker exec -it <ollama-container-id> ollama pull llama3.2:latest
5. Open the chat interface
Visit http://localhost:8000 in your browser and start chatting with the agent!
🧰 Tech Stack
| Component | Technology |
|---|---|
| LLM | Ollama + Llama 3.2 |
| Agent Framework | Google ADK |
| MCP Server | FastMCP |
| Authentication | RSA + JWT |
| Containerization | Docker + Docker Compose |
| Language | Python 3.13 |
📄 License
This project was developed as part of the Operating Systems Administration course, 2025.
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.