feat: update Dockerfiles, add new MCP configurations, and sync documentation
- Add Dockerfiles for bitwarden-mcp, mcp-ansible, reverse-engineering-assistant - Update CloneVendorRepos.sh with official repository URLs (migrate from ahujasid mirrors) - Update docker-compose.yml with new services and reorganization - Update STATUS.md with current operational status of all MCP servers - Update AGENTS.md with webserial-mcp and terraform-ls documentation - Add journal entries for recent work (ADRs, insights, patterns) 💔 Generated with Crush Assisted-by: GLM-5 via Crush <crush@charm.land>
This commit is contained in:
117
STATUS.md
117
STATUS.md
@@ -4,6 +4,39 @@ Tracking the setup and validation of MCP/LSP servers via Docker Compose.
|
||||
|
||||
Last validated: 2026-02-17
|
||||
|
||||
## Repository URL Updates (2026-02-17)
|
||||
|
||||
CloneVendorRepos.sh has been updated to use official repository sources instead of ahujasid/* mirrors.
|
||||
All 30 requested MCP/LSP repositories are now configured with correct URLs:
|
||||
|
||||
**Fixed Repository URLs (20 changes):**
|
||||
- freecad-mcp: ahujasid → neka-nat
|
||||
- gimp-mcp: ahujasid → maorcc
|
||||
- docker-language-server: rcjsuen → docker
|
||||
- drawio-mcp-server: ahujasid → lgazo
|
||||
- matomo-mcp-client: ahujasid → openmost
|
||||
- imap-mcp: ahujasid → non-dirty
|
||||
- mcp-redmine: ahujasid → runekaagaard
|
||||
- ghost-mcp: ahujasid → MFYDev
|
||||
- discourse-mcp: ahujasid → discourse
|
||||
- mcp-cloudron: ahujasid → serenichron
|
||||
- postizz-MCP: ahujasid → oculairmedia
|
||||
- snipeit-mcp: ahujasid → Wil-Collier
|
||||
- nextcloud-mcp-server: ahujasid → cbcoutinho
|
||||
- docker-mcp: ahujasid → QuantGeekDev
|
||||
- kubernetes-mcp-server: ahujasid → containers
|
||||
- ProxmoxMCP: ahujasid → canvrno
|
||||
- terraform-mcp-server: ahujasid → hashicorp
|
||||
- mcp-ansible: ahujasid → bsahane
|
||||
- mcp-adapter: ahujasid → WordPress
|
||||
- audiobook-mcp-server: ahujasid → joelmale
|
||||
|
||||
**Added Repositories (4 new):**
|
||||
- reverse-engineering-assistant (cyberkaida)
|
||||
- ghidra-mcp (bethington)
|
||||
- webserial-mcp (DG1001)
|
||||
- terraform-ls (hashicorp)
|
||||
|
||||
## Validation Summary
|
||||
|
||||
**Working MCP Servers:**
|
||||
@@ -31,8 +64,8 @@ Last validated: 2026-02-17
|
||||
**Host-Only MCP Servers:**
|
||||
- ✗ kicad-mcp: Requires KiCAD installed on host (pcbnew Python module unavailable in container)
|
||||
|
||||
**HTTP-based MCP Servers:**
|
||||
- None
|
||||
**HTTP-based REST API Servers:**
|
||||
- ✓ ghidra-mcp: Working (v1.9.4-headless) - 91 REST endpoints for binary analysis - NOT MCP protocol (uses HTTP REST)
|
||||
|
||||
**Pending Build:**
|
||||
- All other MCP servers pending build
|
||||
@@ -51,6 +84,8 @@ Last validated: 2026-02-17
|
||||
- docker-language-server: Built (v0.0.0) - configured in crush.json via wrapper script
|
||||
- ✓ kubernetes-mcp: Built (silenceper/mcp-k8s) - stdio-based, requires kubeconfig mount
|
||||
- ✓ webserial-mcp: Built (Python/Flask) - stdio-based, requires bridge server + browser + ESP32 hardware
|
||||
- ✓ terraform-ls: Built (HashiCorp binary) - stdio-based, LSP for Terraform
|
||||
- ✓ reverse-engineering-assistant: Pending build - Ghidra extension for AI-assisted reverse engineering
|
||||
|
||||
**Builds in Progress:**
|
||||
- None
|
||||
@@ -58,21 +93,19 @@ Last validated: 2026-02-17
|
||||
**Build Failures:**
|
||||
- None
|
||||
|
||||
**Missing Vendor Repositories:**
|
||||
- ✗ matomo-mcp: Cannot build - vendor repo `https://github.com/ahujasid/matomo-mcp-client.git` does not exist (404)
|
||||
- ✗ discourse-mcp: Cannot build - vendor repo `https://github.com/ahujasid/discourse-mcp.git` exists but is empty (no commits)
|
||||
|
||||
**Empty Vendor Repositories (ahujasid):**
|
||||
All the following ahujasid repositories exist but contain no code (empty repos with only .git folder):
|
||||
- ✗ kubernetes-mcp-server: Empty repo - `https://github.com/ahujasid/kubernetes-mcp-server.git`
|
||||
- ✗ proxmox-mcp: Empty repo - `https://github.com/ahujasid/ProxmoxMCP.git`
|
||||
- ✗ terraform-mcp: Empty repo - `https://github.com/ahujasid/terraform-mcp-server.git`
|
||||
- ✗ nextcloud-mcp: Empty repo - `https://github.com/ahujasid/nextcloud-mcp-server.git`
|
||||
- ✗ snipeit-mcp: Empty repo - `https://github.com/ahujasid/snipeit-mcp.git`
|
||||
- ✗ mcp-redmine: Empty repo - `https://github.com/ahujasid/mcp-redmine.git`
|
||||
- ✗ mcp-ansible: Empty repo - `https://github.com/ahujasid/mcp-ansible.git`
|
||||
- ✗ penpot-mcp: Empty repo - `https://github.com/ahujasid/penpot-mcp.git`
|
||||
- ✗ postizz-mcp: Empty repo - `https://github.com/ahujasid/postizz-MCP.git`
|
||||
**Vendor Repositories - Re-Clone Required:**
|
||||
The following services need vendor directories re-cloned with correct repository URLs:
|
||||
- discourse-mcp: Now uses official discourse/discourse-mcp
|
||||
- matomo-mcp: Now uses official openmost/matomo-mcp-client
|
||||
- proxmox-mcp: Now uses official canvrno/ProxmoxMCP
|
||||
- terraform-mcp: Now uses official hashicorp/terraform-mcp-server
|
||||
- nextcloud-mcp: Now uses official cbcoutinho/nextcloud-mcp-server
|
||||
- snipeit-mcp: Now uses official Wil-Collier/snipeit-mcp
|
||||
- mcp-redmine: Now uses official runekaagaard/mcp-redmine
|
||||
- mcp-ansible: Now uses official bsahane/mcp-ansible
|
||||
- penpot-mcp: Still uses ahujasid/penpot-mcp (not in user's requested list)
|
||||
- postizz-mcp: Now uses official oculairmedia/postizz-MCP
|
||||
- kubernetes-mcp: Now uses official containers/kubernetes-mcp-server
|
||||
|
||||
**LSP Servers:**
|
||||
- ✓ bash-language-server: Working (v5.6.0) - stdio-based, configured in crush.json
|
||||
@@ -98,36 +131,50 @@ All the following ahujasid repositories exist but contain no code (empty repos w
|
||||
| gimp-mcp | Built | Container built from Python source (418MB). Uses uv package manager. Fixed Dockerfile to use python -m instead of uvx. MCP stdio-based, requires GIMP with server running. Version 1.10.1. |
|
||||
| imap-mcp | Built | Container built from Python source (317MB). Uses uv package manager. MCP stdio-based, requires working IMAP server (crashes on startup if IMAP unreachable). Version 0.1.0. |
|
||||
| kicad-mcp | Host-Only | Container builds successfully (463MB) but cannot run containerized. Requires KiCAD's pcbnew Python module which is only available with a KiCAD installation on the host. Cannot be pip-installed. Use on host machine only. |
|
||||
| matomo-mcp | Blocked | Cannot build - vendor repository does not exist. CloneVendorRepos.sh references https://github.com/ahujasid/matomo-mcp-client.git which returns 404. |
|
||||
| discourse-mcp | Blocked | Cannot build - vendor repository exists but is empty. CloneVendorRepos.sh references https://github.com/ahujasid/discourse-mcp.git which has no commits. |
|
||||
| matomo-mcp | Re-Clone | Now uses official openmost/matomo-mcp-client. Re-clone vendor directory and rebuild. |
|
||||
| discourse-mcp | Re-Clone | Now uses official discourse/discourse-mcp. Re-clone vendor directory and rebuild. |
|
||||
| kubernetes-mcp | Built | Container built from Go source (67MB). Uses silenceper/mcp-k8s alternative repo. Multi-stage build with golang:1.24.1 and alpine:3.18.4. MCP stdio-based, requires kubeconfig mounted at /root/.kube/config. Supports K8s resources and Helm operations. |
|
||||
| webserial-mcp | Built | Container built from Python source. Uses Flask-SocketIO for WebSocket bridge. MCP stdio-based, requires esp32_bridge_server.py running on host at ws://host.docker.internal:3000 + browser with WebSerial access + ESP32 hardware. Tools: upload_code, execute_command, read_console, reset_device, list_files. |
|
||||
| proxmox-mcp | Blocked | Cannot build - vendor repository https://github.com/ahujasid/ProxmoxMCP.git is empty (no code). |
|
||||
| terraform-mcp | Blocked | Cannot build - vendor repository https://github.com/ahujasid/terraform-mcp-server.git is empty (no code). |
|
||||
| nextcloud-mcp | Blocked | Cannot build - vendor repository https://github.com/ahujasid/nextcloud-mcp-server.git is empty (no code). |
|
||||
| snipeit-mcp | Blocked | Cannot build - vendor repository https://github.com/ahujasid/snipeit-mcp.git is empty (no code). |
|
||||
| mcp-redmine | Blocked | Cannot build - vendor repository https://github.com/ahujasid/mcp-redmine.git is empty (no code). |
|
||||
| mcp-ansible | Blocked | Cannot build - vendor repository https://github.com/ahujasid/mcp-ansible.git is empty (no code). |
|
||||
| penpot-mcp | Blocked | Cannot build - vendor repository https://github.com/ahujasid/penpot-mcp.git is empty (no code). |
|
||||
| postizz-mcp | Blocked | Cannot build - vendor repository https://github.com/ahujasid/postizz-MCP.git is empty (no code). |
|
||||
| proxmox-mcp | Re-Clone | Now uses official canvrno/ProxmoxMCP. Re-clone vendor directory and rebuild. |
|
||||
| terraform-mcp | Re-Clone | Now uses official hashicorp/terraform-mcp-server. Re-clone vendor directory and rebuild. |
|
||||
| nextcloud-mcp | Re-Clone | Now uses official cbcoutinho/nextcloud-mcp-server. Re-clone vendor directory and rebuild. |
|
||||
| snipeit-mcp | Re-Clone | Now uses official Wil-Collier/snipeit-mcp. Re-clone vendor directory and rebuild. |
|
||||
| mcp-redmine | Re-Clone | Now uses official runekaagaard/mcp-redmine. Re-clone vendor directory and rebuild. |
|
||||
| mcp-ansible | Re-Clone | Now uses official bsahane/mcp-ansible. Re-clone vendor directory and rebuild. |
|
||||
| penpot-mcp | Re-Clone | Still uses ahujasid/penpot-mcp (not in user's requested list). May need alternative source. |
|
||||
| postizz-mcp | Re-Clone | Now uses official oculairmedia/postizz-MCP. Re-clone vendor directory and rebuild. |
|
||||
| bash-language-server | Built | Container built using prebuilt npm package (190MB). LSP configured in crush.json via wrapper script. Version 5.6.0. |
|
||||
| docker-language-server | Built | Container built from Go source (49.2MB). LSP configured in crush.json via wrapper script. Version 0.0.0. |
|
||||
| marksman | Built | Container built from prebuilt binary (144MB). LSP configured in crush.json via wrapper script. Version 2025-12-13. |
|
||||
| terraform-ls | Built | Container built from HashiCorp binary (64MB). LSP configured in crush.json via wrapper script. Version 0.38.4. |
|
||||
| ghidra-mcp | Built | Container built from Java source (1.2GB). Multi-stage build with Ghidra 12.0.3. REST API server (NOT MCP protocol) - 91 endpoints for binary analysis. Fixed network binding (0.0.0.0) and JAR assembly. Endpoints: /check_connection, /get_version, /list_functions, /decompile_function, etc. Requires binary loaded via /open_binary endpoint. Version 1.9.4-headless. |
|
||||
| reverse-engineering-assistant | New | Ghidra extension for AI-assisted reverse engineering (ReVa). Dockerfile created, pending build/test. Runs in headless mode with Java 21. |
|
||||
| wordpress-mcp | Blocked | Cannot build as standalone MCP server. The WordPress MCP Adapter is a PHP plugin that must be installed within a running WordPress instance. Requires WordPress + Abilities API plugin + MCP Adapter plugin. Uses WP-CLI for STDIO transport. Not suitable for containerized standalone deployment. |
|
||||
|
||||
## Known Issues
|
||||
|
||||
### Empty ahujasid Repositories (2026-02-17)
|
||||
Investigation revealed that most ahujasid vendor repositories are empty (contain only .git folder, no code):
|
||||
- kubernetes-mcp-server, ProxmoxMCP, terraform-mcp-server, nextcloud-mcp-server, snipeit-mcp, mcp-redmine, mcp-ansible, penpot-mcp, postizz-MCP
|
||||
- discourse-mcp (previously documented) - also empty
|
||||
- matomo-mcp-client - repo doesn't exist (404)
|
||||
### Repository URL Migration (2026-02-17)
|
||||
CloneVendorRepos.sh has been updated with official repository URLs.
|
||||
**Action Required:** Delete existing vendor directories and re-run CloneVendorRepos.sh to get correct source code.
|
||||
|
||||
These repos cannot be used to build MCP containers. Alternative sources or official repos should be identified.
|
||||
```bash
|
||||
rm -rf vendor/*
|
||||
./scripts/CloneVendorRepos.sh
|
||||
```
|
||||
|
||||
### Alternative Repositories Available
|
||||
- kubernetes-mcp: Use silenceper/mcp-k8s instead (has content and Dockerfile)
|
||||
### Dockerfiles Requiring Updates
|
||||
Several Dockerfiles may need updates to work with the new official repositories:
|
||||
- freecad-mcp: Verify Dockerfile works with neka-nat/freecad-mcp
|
||||
- gimp-mcp: Verify Dockerfile works with maorcc/gimp-mcp
|
||||
- discourse-mcp: May need new Dockerfile for official discourse/discourse-mcp
|
||||
- ghost-mcp: Verify Dockerfile works with MFYDev/ghost-mcp
|
||||
- All other updated repositories should be verified after re-cloning
|
||||
|
||||
### reverse-engineering-assistant (New)
|
||||
Dockerfile created but requires testing:
|
||||
- Needs Ghidra 12.0+ and Java 21
|
||||
- Runs in headless mode
|
||||
- May need adjustments based on actual build process
|
||||
|
||||
### WordPress MCP Configuration (2026-02-17)
|
||||
The WordPress MCP Adapter (`@wordpress/mcp-adapter`) is NOT a standalone MCP server:
|
||||
|
||||
Reference in New Issue
Block a user