Commit Graph
17 Commits
Author SHA1 Message Date
Charles N Wyble 5fd45d48c9 docs: add SDLC.md with MCP/LSP validation requirements and commit policy
Defines the software development lifecycle for KNEL-AIMiddleware:

- Protocol validation is NON-NEGOTIABLE: build + start + protocol handshake
  ALL required before marking a server as "working"
- MCP initialize handshake: {"jsonrpc":"2.0","method":"initialize"...}
- STATUS.md is the single source of truth for server status
- Status categories: Working, Runtime Connection Required, Host-Only,
  Transport Mismatch, Build Failed, Runtime Issue
- Step-by-step process for adding new MCP/LSP servers
- Common Dockerfile patterns for Python/uv, Node/npx, Go
- Wrapper script pattern for Crush integration

Commit Policy (MANDATORY):
- AI agents MUST commit automatically WITHOUT prompting
- Atomic commits: one logical change per commit
- Conventional format: feat:, fix:, docs:, build:, refactor:, test:
- Verbose messages explaining what, why, and how validated
- Automatic push after each commit

Version: 1.0
2026-02-20 09:24:32 -05:00
Charles N Wyble 72d5058659 docs: add Docker registry push session to JOURNAL.md
Recorded the completion of pushing all 32 container images to
git.knownelement.com/knel/knel-aimiddleware/ registry.

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-19 13:19:36 -05:00
Charles N Wyble 671b9f57d1 feat: add run.sh for Docker registry management
Adds utility script for pushing container images to Gitea Docker registry
at git.knownelement.com/knel/knel-aimiddleware. Commands: list, tag, tag-all,
push, push-all. Includes shellcheck compliance fixes.

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-19 13:13:37 -05:00
Charles N Wyble ff5c73de7c docs: validate all MCP servers with protocol handshake
- Added matomo-mcp, mcp-redmine, paperless-mcp to working servers list
- Documented runtime failures (nextcloud, imap, webserial, kicad)
- Documented transport mismatches (postizz, penpot)
- Updated README.md vendor count and date
- Added JOURNAL entry for mock credential validation

💔 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-19 12:35:31 -05:00
Charles N Wyble ff897aec58 fix: complete MCP server validation and documentation
- Fixed penpot-mcp Dockerfile for monorepo build (added data/ copy)
- Fixed snipeit-mcp Dockerfile COPY path and entrypoint
- Completed validation of all pending MCP servers
- Updated STATUS.md with comprehensive validation results
- Added JOURNAL.md entry documenting session work

Validation summary:
- terraform-mcp: Working (MCP handshake validates)
- 6 servers require config/env vars (matomo, nextcloud, paperless, postizz, redmine)
- 6 servers have build/runtime issues (discourse, revas, snipeit, proxmox, penpot, mcp-ansible)
2026-02-19 11:33:10 -05:00
Charles N Wyble bc89169265 fix: correct crush.json paths and add missing MCP wrapper scripts
- Fixed incorrect path /KNEL/KNEL-AIMiddleware/ to /KNEL-AIMiddleware/
- Added discourse and penpot MCP configurations to crush.json
- Tracked 10 new wrapper scripts for pending MCP servers
- Added paperless-mcp and postizz-mcp Dockerfiles
- Updated JOURNAL.md with today's work entry

💘 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-19 10:59:32 -05:00
Charles N Wyble 55166db065 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>
2026-02-19 09:06:35 -05:00
Charles N Wyble 30cb9a8829 docs: update AGENTS.md with webserial-mcp and terraform-ls
- Add LSP Servers section (4 servers)
- Add webserial-mcp to Additional Tools section
- Reorganize Development Tools (remove LSP entries)
- Update language counts (Python 11, add HashiCorp Binary)
2026-02-17 11:44:10 -05:00
Charles N Wyble 0972556b38 docs: add terraform-ls and wordpress-mcp status to STATUS.md
- Add terraform-ls to detailed status table (Built, v0.38.4)
- Document wordpress-mcp as Blocked (requires WordPress instance)
- Add Known Issues section for WordPress MCP Adapter architecture
- Update MCP Servers with Configuration Issues section

🧡 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-17 11:38:57 -05:00
Charles N Wyble e7df499874 feat: integrate terraform-ls LSP for Terraform development
- Add terraform-ls Dockerfile (Alpine-based, v0.38.4)
- Add terraform-ls service to docker-compose.yml
- Create LSP wrapper script for Crush integration
- Add terraform entry to crush.json under lsp section
- Update STATUS.md with terraform-ls working status

🧡 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-17 11:33:05 -05:00
Charles N Wyble 0c20861103 feat: integrate webserial-mcp for ESP32 MicroPython development
- Add webserial-mcp service to docker-compose.yml
- Create wrapper script and add to crush.json
- Update STATUS.md with build status and requirements
- Note: requires bridge server + browser + ESP32 hardware

deps: generated with Crush
Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-17 11:10:38 -05:00
Charles N Wyble af1a823683 feat: integrate silenceper/mcp-k8s for kubernetes-mcp
- Switch from empty ahujasid/kubernetes-mcp-server to silenceper/mcp-k8s
- Build multi-stage Go container (golang:1.24.1 -> alpine:3.18.4)
- Add wrapper script with kubeconfig mount
- Configure in crush.json for Crush integration
- Update STATUS.md with working status

Supports K8s resources (get/list/create/update/delete) and Helm operations.

💔 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-17 11:03:56 -05:00
Charles N Wyble 7304d1e4a8 docs: document empty ahujasid vendor repositories
Investigation revealed that 9 additional ahujasid MCP repositories are
empty (contain only .git folder, no actual code):
- kubernetes-mcp-server
- ProxmoxMCP
- terraform-mcp-server
- nextcloud-mcp-server
- snipeit-mcp
- mcp-redmine
- mcp-ansible
- penpot-mcp
- postizz-MCP

These cannot be used to build MCP containers. Added detailed entries to:
- Missing/Empty Vendor Repositories section
- Detailed Status table
- Known Issues section with alternative for kubernetes-mcp (silenceper/mcp-k8s)

This brings the total blocked MCPs to 11:
- 1 missing repo (matomo-mcp - 404)
- 10 empty repos (discourse + 9 documented here)

Related: ADR-007 Sequential MCP validation
2026-02-17 10:54:31 -05:00
Charles N Wyble 60f317e92c feat: integrate ONLYOFFICE docspace-mcp v3.1.0
- Updated CloneVendorRepos.sh to use official ONLYOFFICE/docspace-mcp
  repository instead of ahujasid/docspace-mcp (which was outdated)
- Successfully built and validated docspace-mcp Docker container (236MB)
- Created wrapper script mcp-docspace-wrapper.sh with environment
  variables for DOCSPACE_HOST and DOCSPACE_TOKEN
- Added docspace MCP configuration to crush.json
- Updated STATUS.md with working status for docspace-mcp

MCP handshake test confirmed server responds correctly:
- Protocol version: 2024-11-05
- Server: @onlyoffice/docspace-mcp v3.1.0
- Capabilities: tools

Also documented blocked MCPs in STATUS.md:
- matomo-mcp: vendor repo does not exist (404)
- discourse-mcp: vendor repo exists but is empty (no commits)

Related: ADR-007 Sequential MCP validation
2026-02-17 10:44:10 -05:00
Charles N Wyble 3bdf281a4a docs: document discourse-mcp empty vendor repository
discourse-mcp repository at https://github.com/ahujasid/discourse-mcp.git
exists but contains no commits - completely empty repository.

Added to:
- Missing Vendor Repositories section
- Known Issues section
- Detailed Status table (status: Blocked)

💘 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-17 10:19:37 -05:00
Charles N Wyble 04e9d80025 docs: document matomo-mcp missing vendor repository
matomo-mcp-client repository referenced in CloneVendorRepos.sh
does not exist on GitHub (404). Verified via GitHub API that
ahujasid has 46 repos but none named matomo-mcp-client.

Unable to build this MCP until a valid source repository is identified.

Added to:
- Missing Vendor Repositories section
- Known Issues section
- Detailed Status table (status: Blocked)

💘 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-17 10:14:08 -05:00
Charles N Wyble feea0945c1 docs: document kicad-mcp as host-only MCP
kicad-mcp requires the pcbnew Python module which is only
available with a KiCAD installation. The container builds
successfully but fails validation because pcbnew cannot be
pip-installed or included in the container.

- Added "Host-Only MCP Servers" section to STATUS.md
- Updated detailed status table with kicad-mcp entry
- Added JOURNAL.md entry documenting the finding
- Updated docker-compose.yml to use custom Dockerfile

This MCP can only be used on a host machine with KiCAD
installed. It cannot be integrated into Crush via Docker.

Build details:
- Container size: 463MB
- Base: node:22-alpine with Python 3 + pip
- Dependencies: kicad-skip, Pillow, cairosvg, colorlog, pydantic

Validation error:
[ERROR] pcbnew validation failed: ModuleNotFoundError: No module named 'pcbnew'

Root cause:
- KiCAD's pcbnew is a C++ Python binding bundled with KiCAD
- Cannot be installed via pip or any package manager
- Server validates pcbnew at startup and exits if missing

Pattern identified:
Some MCPs integrate with desktop applications and cannot
be containerized. These should be documented as host-only
and excluded from Docker-based Crush integration.

Next MCP to process: matomo-mcp

💘 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-17 09:43:14 -05:00