# AI Agents Documentation This document tracks the AI agents and MCP servers configured in this project. > **Status Tracking**: Current operational status of all MCP servers is maintained in [STATUS.md](STATUS.md). Please refer to that file for the latest status of each server. ## Agents Overview ### Available MCP Servers #### Design & Engineering (3 servers) | Service | Container Name | Description | |---------|---------------|-------------| | kicad-mcp | kneldevstack-aimiddleware-kicad-mcp | PCB design automation with 64 tools, JLCPCB integration (host-only) | | blender-mcp | kneldevstack-aimiddleware-blender-mcp | 3D modeling, materials, scenes, AI 3D model generation | | freecad-mcp | kneldevstack-aimiddleware-freecad-mcp | CAD modeling, Python execution, parts library | #### Hosting & Infrastructure (5 servers) | Service | Container Name | Description | |---------|---------------|-------------| | kubernetes-mcp | kneldevstack-aimiddleware-kubernetes-mcp | K8s/OpenShift management (native Go implementation) | | docker-mcp | kneldevstack-aimiddleware-docker-mcp | Container and compose stack management | | proxmox-mcp | kneldevstack-aimiddleware-proxmox-mcp | Hypervisor VM/container management | | terraform-mcp | kneldevstack-aimiddleware-terraform-mcp | IaC automation, HCP Terraform, workspace management | | cloudron-mcp | kneldevstack-aimiddleware-cloudron-mcp | Self-hosted app management | #### Development Tools (2 servers) | Service | Container Name | Description | |---------|---------------|-------------| | bash-language-server | kneldevstack-aimiddleware-bash-language-server | LSP for bash (diagnostics, completion, formatting) | | context7-mcp | kneldevstack-aimiddleware-context7-mcp | MCP server framework and SDK for documentation | #### Content Management (4 servers) | Service | Container Name | Description | |---------|---------------|-------------| | nextcloud-mcp | kneldevstack-aimiddleware-nextcloud-mcp | 90+ tools across 8 apps (Notes, Calendar, Files, Deck, etc.) | | ghost-mcp | kneldevstack-aimiddleware-ghost-mcp | CMS post, member, newsletter management | | docspace-mcp | kneldevstack-aimiddleware-docspace-mcp | Room, file, collaboration management | | wordpress-mcp | kneldevstack-aimiddleware-wordpress-mcp | WordPress integration via Abilities API | #### Communication & Collaboration (3 servers) | Service | Container Name | Description | |---------|---------------|-------------| | discourse-mcp | kneldevstack-aimiddleware-discourse-mcp | Forum search, posts, topics, categories (read/write modes) | | imap-mcp | kneldevstack-aimiddleware-imap-mcp | Email browsing, composition, Gmail OAuth2 support | | postizz-mcp | kneldevstack-aimiddleware-postizz-mcp | Social media management platform | #### Analytics & Security (2 servers) | Service | Container Name | Description | |---------|---------------|-------------| | matomo-mcp | kneldevstack-aimiddleware-matomo-mcp | Analytics integration | | bitwarden-mcp | kneldevstack-aimiddleware-bitwarden-mcp | Official password vault management | #### Productivity & Automation (6 servers) | Service | Container Name | Description | |---------|---------------|-------------| | gimp-mcp | kneldevstack-aimiddleware-gimp-mcp | Image editing with GIMP 3.0, OCR support | | snipeit-mcp | kneldevstack-aimiddleware-snipeit-mcp | Asset inventory, maintenance tracking | | mcp-redmine | kneldevstack-aimiddleware-mcp-redmine | Project management, issue tracking, file operations | | mcp-ansible | kneldevstack-aimiddleware-mcp-ansible | IT automation playbooks | | elasticsearch-mcp | kneldevstack-aimiddleware-elasticsearch-mcp | Search and index management (Rust) | | audiobook-mcp | kneldevstack-aimiddleware-audiobook-mcp | Audiobook management with AI-powered features | #### Additional Tools (3 servers) | Service | Container Name | Description | |---------|---------------|-------------| | drawio-mcp | kneldevstack-aimiddleware-drawio-mcp | Draw.io diagram management | | docker-language-server | kneldevstack-aimiddleware-docker-language-server | Language server for Dockerfiles, Compose files, Bake files | | penpot-mcp | kneldevstack-aimiddleware-penpot-mcp | Design collaboration platform integration | ## Agent Capabilities ### By Language #### TypeScript/Node.js (13 servers) Most use `npx` for installation: - KiCAD MCP - Bitwarden MCP - Discourse MCP - Ghost MCP - Cloudron MCP - Kubernetes MCP - Draw.io MCP - Matomo MCP - Postiz MCP - WordPress MCP - Audiobook MCP - Context7 MCP - Bash Language Server #### Python (10 servers) Most use `uvx` for installation: - Blender MCP - FreeCAD MCP - GIMP MCP - Docker MCP - Proxmox MCP - Snipe-IT MCP - Redmine MCP - IMAP MCP - Ansible MCP - Nextcloud MCP (hybrid) #### Go (2 servers) - Kubernetes MCP (also available via npx) - Terraform MCP #### Rust (1 server) - Elasticsearch MCP ## Environment Variables Reference Common environment variables required for MCP servers: | Service | Required Variables | |---------|-------------------| | bitwarden-mcp | `BITWARDEN_CLIENT_ID`, `BITWARDEN_CLIENT_SECRET`, `BITWARDEN_PASSWORD`, `BITWARDEN_SERVER_URL` | | discourse-mcp | `DISCOURSE_URL`, `DISCOURSE_API_KEY`, `DISCOURSE_API_USERNAME` | | ghost-mcp | `GHOST_API_URL`, `GHOST_ADMIN_API_KEY` | | cloudron-mcp | `CLOUDRON_URL`, `CLOUDRON_TOKEN` | | nextcloud-mcp | `NEXTCLOUD_HOST`, `NEXTCLOUD_USERNAME`, `NEXTCLOUD_APP_PASSWORD` | | proxmox-mcp | `PROXMOX_HOST`, `PROXMOX_USER`, `PROXMOX_TOKEN`, `PROXMOX_NODE` | | snipeit-mcp | `SNIPEIT_URL`, `SNIPEIT_TOKEN` | | redmine-mcp | `REDMINE_URL`, `REDMINE_API_KEY` | | wordpress-mcp | `WORDPRESS_URL`, `WORDPRESS_USERNAME`, `WORDPRESS_APPLICATION_PASSWORD` | | docspace-mcp | `DOCSPACE_HOST`, `DOCSPACE_TOKEN` | | imap-mcp | `IMAP_SERVER`, `IMAP_PORT`, `IMAP_USERNAME`, `IMAP_PASSWORD` | | postizz-mcp | `POSTIZ_API_KEY`, `POSTIZ_URL` | | matomo-mcp | `MATOMO_URL`, `MATOMO_TOKEN` | | elasticsearch-mcp | `ELASTICSEARCH_URL`, `ELASTICSEARCH_USERNAME`, `ELASTICSEARCH_PASSWORD` | | kicad-mcp | `KICAD_HOST` (default: host.docker.internal), `KICAD_PORT` (default: 5555) | | context7-mcp | `UPSTASH_REDIS_REST_URL`, `UPSTASH_REDIS_REST_TOKEN` | | penpot-mcp | `PENPOT_URL` (default: https://design.penpot.app), `PENPOT_TOKEN` | ## Quick Start To start an agent: ```bash docker compose up -d ``` Example: ```bash docker compose up -d kicad-mcp ``` To view logs: ```bash docker compose logs -f ``` To stop an agent: ```bash docker compose stop ``` ## Development Notes ### Critical: STATUS.md Maintenance **STATUS.md MUST always be kept fully up to date** as it is the single source of truth for operational status of all MCP servers in this project. When working on any MCP server: 1. **Before starting work**: Review current status in STATUS.md 2. **During work**: Update STATUS.md immediately after each significant milestone (build, start, validation, issues) 3. **After completing work**: Ensure STATUS.md accurately reflects final status with relevant notes 4. **Commit STATUS.md changes**: Always commit STATUS.md updates in separate atomic commits with clear commit messages ### Project Conventions - All containers use the prefix `kneldevstack-aimiddleware-` for easy identification - Container names are lowercase for consistency - Service names are lowercase for Docker Compose compatibility - Each agent is validated individually before moving to the next - Vendor directory is gitignored to avoid committing cloned repositories - **Dockerfile Management**: Custom Dockerfiles created for vendors must be saved in the `dockerfiles/` directory with a corresponding subdirectory structure (e.g., `dockerfiles/bash-language-server/Dockerfile`). These are tracked in git, while vendor/* is not. - **KiCAD MCP** is host-only - requires KiCAD to be installed on host machine and connects via TCP ### Crush Integration All LSP and MCP instances must be configured in `crush.json` for Crush to use them. The configuration file uses the following format: ```json { "$schema": "https://charm.land/crush.json", "lsp": { "bash": { "command": "docker", "args": ["run", "-i", "--rm", "kneldevstack-aimiddleware-bash-language-server"] } }, "mcp": { "docker": { "command": "docker", "args": ["run", "-i", "--rm", "kneldevstack-aimiddleware-docker-mcp"] } } } ``` **Configuration Priority:** 1. `.crush.json` (project-local) 2. `crush.json` (project-local) 3. `$HOME/.config/crush/crush.json` (global) **For Docker-based LSP/MCP instances:** - Use `docker` as the command - Include container name as the main argument - Use `-i` for interactive mode (required for stdio communication) - Use `--rm` to automatically clean up containers after use ## Validation Checklist For each agent, verify: - [ ] Container builds successfully - [ ] Container starts without errors - [ ] Logs show proper initialization - [ ] Environment variables are correctly set (if required) - [ ] MCP protocol handshake completes - [ ] Tools are registered and available - [ ] Resources are accessible (if applicable) ## References - [Model Context Protocol](https://modelcontextprotocol.io/) - [MCP SDK](https://github.com/modelcontextprotocol/sdk) - [AIWorkStack-dev](https://github.com/stars/ReachableCEO/lists/aiworkstack-dev) - [AIWorkStack-ops](https://github.com/stars/ReachableCEO/lists/aiworkstack-ops)