devops-assistant-mcp
Click on "Install 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., "@devops-assistant-mcpshow me all running Docker containers"
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.
DevOps Assistant MCP Server (Modular)
A professional-grade Model Context Protocol (MCP) server built with TypeScript. It acts as a multi-functional "DevOps Assistant" that allows AI models to securely query local databases and manage Docker infrastructure through a standardized interface.
🚀 Features
Modern Architecture: Built using the latest
@modelcontextprotocol/sdk(v1.3+).Multi-Service Integration: Single entry point for Database, System, and Docker management.
Docker Management: Directly interact with the local Docker socket to inspect containers and debug logs.
Modular Design: Separation of concerns between configuration, server orchestration, and service-specific tool logic.
Type-Safe: Full TypeScript implementation with Zod schema validation for all tool inputs.
Related MCP server: Database MCP
🛠️ Tools Provided
🗄️ Database Tools
query_database: Execute SQL queries on the local MySQL instance to analyze data or system records.
🐳 Docker Tools
list_containers: List all local Docker containers and their current status (Running, Stopped, etc.).get_container_logs: Retrieve the last 50 lines of logs from a specific container for real-time debugging.
⚙️ System Tools
get_system_time: Utility tool to retrieve the server's current time for log synchronization.
📋 Prerequisites
Node.js (v18+)
Docker Desktop (or OrbStack)
MCP Client (e.g., VS Code with "Continue" or "Roo Code", or the MCP Inspector)
🚦 Quick Start
1. Start the Sample Database
Run the MySQL container using Docker:
docker run -d \
--name mcp-app-db \
-e MYSQL_ROOT_PASSWORD=mypassword \
-e MYSQL_DATABASE=mcp_learning \
-p 3306:3306 \
mysql:latest2. Install Dependencies
npm install3. Seed the Database
Populate the database with sample user data:
npm run seed4. Build and Test
Compile the TypeScript code and run the MCP Inspector:
npm run build
npx @modelcontextprotocol/inspector node dist/index.js🏗️ Project Structure
src/config.ts: Centralized configuration for all services.src/tools/database.ts: SQL query logic.src/tools/docker.ts: Docker socket integration logic.src/tools/system.ts: General utility tools.src/index.ts: The main orchestrator and entry point.
📄 License
ISC
Available Tools
4 toolsget_container_logsA
Retrieve the last 50 lines of logs from a specific Docker container.
| Name | Required | Description | Default |
|---|---|---|---|
| containerId | Yes | The ID or Name of the container |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
States specific behavior of retrieving last 50 lines, but lacks details on whether container must be running, permissions, or if logs are followed. No annotations provided to supplement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no superfluous words, front-loaded with key action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter and no output schema; description covers purpose and scope adequately. Minor gap: does not mention return format (lines).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes containerId at 100% coverage, so description adds no extra parameter meaning beyond the 'last 50 lines' context which is not parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Retrieve' and resource 'logs from a specific Docker container', with detail 'last 50 lines'. Clearly distinguishes from siblings like get_system_time and list_containers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for retrieving container logs but provides no explicit guidance on when to use versus alternatives or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_timeA
Returns the current system time from the MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but description fully discloses behavior: it returns system time. Simple read operation with no side effects, accurately described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero wasted words, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and a self-explanatory output (current time), the description is fully complete. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. Description adds no parameter info, but none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns current system time. The verb 'returns' and resource 'current system time' are specific. Sibling tools are about containers and databases, so no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when/when-not guidance, but the tool's unique purpose (returning time) makes it obvious when to use it. Context implies it's distinct from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_containersA
List all local Docker containers and their current status (running, stopped, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Whether to show all containers or just running ones |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. It discloses the tool lists local containers and status, but does not mention prerequisites like Docker daemon running, authentication, or performance implications. Adequate for a simple read-only tool but could add more context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loaded with action and resource; every word is necessary. Concise and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 parameter, no output schema), the description is nearly complete. It explains the tool's function and parameter. Could mention return format but covers essential information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for the boolean parameter 'all'. The tool description adds no extra meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists all local Docker containers and shows their status, using specific verb and resource. It is distinct from siblings like get_container_logs which focus on logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing container status, but does not explicitly state when to use vs. alternatives. However, siblings are clearly different functions, making context clear without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_databaseA
Execute a SQL query on the local MySQL database.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The full SQL query to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'Execute a SQL query', which could imply either read or write operations. It fails to disclose important behaviors like mutation potential, error handling, or query limits, leaving the agent without critical safety context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the core purpose without any extraneous information. It is efficiently front-loaded and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only one parameter and no output schema, the description omits crucial context such as return format (rows, error messages) and whether queries can be read-only or mutating. This leaves the agent with insufficient information to predict behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter 'sql' is fully described in the schema. The tool description adds no extra meaning beyond 'Execute a SQL query', not specifying syntax details or constraints. This meets the baseline for high schema coverage but provides no added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute') and the resource ('SQL query on the local MySQL database'), making the tool's purpose unambiguous. It is distinct from sibling tools like get_container_logs, which are unrelated to database queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose is clear, and there are no overlapping sibling tools, so an agent can easily infer when to use it. However, the description lacks explicit guidance on when not to use it or alternatives (e.g., for read-only queries vs modifications).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.0- First observed
get_container_logs - First observed
get_system_time - First observed
list_containers - First observed
query_database
TDQS
Each tool targets a distinct operation: container logs, system time, container listing, and database query. No overlap in purpose.
All tool names follow a consistent verb_noun pattern in snake_case (get_, list_, query_), with clear actions and targets.
With 4 tools, the set is well-scoped for basic DevOps monitoring tasks, each tool earning its place without redundancy.
Major gaps exist for a 'DevOps assistant': missing container management (start/stop/restart), deployment, database schema exploration, and system monitoring beyond time.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
PostgreSQL, MySQL, OpenAPI/Swagger, and shared Agent Memory with scoped access.
Model Context Protocol server for Studex tools, notifications, and profile integrations
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with MySQL databases through the Model Context Protocol, allowing users to execute SQL queries and check connection status. It provides tools for seamless database management and built-in SQL query examples.1-
- AlicenseNot gradedqualityDmaintenanceProvides a natural language interface for querying and managing PostgreSQL, MySQL, MariaDB, MSSQL, and SQLite databases using the Model Context Protocol. Users can explore database schemas and visualize query results through an integrated web dashboard.37MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Docker containers, images, networks, volumes, and Compose services through the Model Context Protocol. It supports system operations, command execution within containers, and integration with Docker Hub and GitHub Container Registry.1302MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Docker containers, images, networks, volumes, and Docker Compose services through the Model Context Protocol.186MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Karun9107/devops-assistant-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server