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>
This commit is contained in:
34
JOURNAL.md
34
JOURNAL.md
@@ -1779,3 +1779,37 @@ echo '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":
|
||||
- STATUS.md
|
||||
|
||||
---
|
||||
|
||||
### MCP Protocol Validation with Mock Credentials
|
||||
|
||||
**Date/Time**: 2026-02-19 17:30:00 EST
|
||||
**Work**: Validated MCP handshake for all config-required servers
|
||||
|
||||
**What was done**:
|
||||
|
||||
Validated the 8 servers that "require config" to determine if MCP protocol layer works without real backend connections:
|
||||
|
||||
**Validated Successfully (MCP handshake works):**
|
||||
- matomo-mcp: ✅ Connects to openmost.io hosted service, responds to MCP handshake (59 tools, 31 prompts)
|
||||
- mcp-redmine: ✅ MCP handshake works without live server connection
|
||||
- paperless-mcp: ✅ MCP handshake works with CLI args (baseUrl + token)
|
||||
|
||||
**Runtime Failures (crash before MCP protocol):**
|
||||
- nextcloud-mcp: ❌ Crashes on startup - requires reachable OAuth endpoint
|
||||
- imap-mcp: ❌ Crashes on startup - requires reachable IMAP server
|
||||
- webserial-mcp: ❌ Crashes on startup - requires WebSocket bridge server
|
||||
- kicad-mcp: ❌ Crashes on startup - requires pcbnew Python module
|
||||
|
||||
**Transport Mismatch:**
|
||||
- postizz-mcp: ❌ Uses HTTP transport (port 3084), not stdio - incompatible with standard MCP clients
|
||||
|
||||
**Updated STATUS.md** with accurate validation status for all servers.
|
||||
|
||||
**Final Validation Summary**:
|
||||
- Working MCP servers (validated handshake): 17
|
||||
- Runtime failures (need live backend): 4
|
||||
- Transport mismatch (not stdio): 2 (postizz, penpot)
|
||||
- Build failures: 4 (discourse, reverse-engineering-assistant, snipeit, proxmox, mcp-ansible)
|
||||
- Blocked: 1 (wordpress)
|
||||
|
||||
---
|
||||
|
||||
@@ -73,7 +73,7 @@ Clone all upstream vendor MCP/LSP repositories:
|
||||
./CloneVendorRepos.sh
|
||||
```
|
||||
|
||||
This script clones all 27 vendor repositories into `vendor/` directory.
|
||||
This script clones all 32+ vendor repositories into `vendor/` directory.
|
||||
|
||||
#### BuildAll.sh
|
||||
Build all MCP/LSP services:
|
||||
@@ -359,4 +359,4 @@ This project is licensed under the MIT License - see [LICENSE](LICENSE) file for
|
||||
---
|
||||
|
||||
**Maintained by**: KNEL Development Team
|
||||
**Last Updated**: 2024-01-21
|
||||
**Last Updated**: 2026-02-19
|
||||
|
||||
41
STATUS.md
41
STATUS.md
@@ -48,7 +48,7 @@ All 32 vendor repositories have been verified and correctly cloned. CloneVendorR
|
||||
|
||||
## Validation Summary
|
||||
|
||||
**Working MCP Servers:**
|
||||
**Working MCP Servers (16 validated with MCP handshake):**
|
||||
- ✓ audiobook-mcp: Working (audiobook-library v1.1.0) - requires AUDIOBOOK_ROOT env var
|
||||
- ✓ bitwarden-mcp: Working (Bitwarden MCP Server) - requires Bitwarden credentials
|
||||
- ✓ blender-mcp: Working (BlenderMCP v1.25.0) - requires Blender with addon running
|
||||
@@ -62,20 +62,21 @@ All 32 vendor repositories have been verified and correctly cloned. CloneVendorR
|
||||
- ✓ gimp-mcp: Working (GimpMCP v1.10.1) - requires GIMP with server running
|
||||
- ✓ kubernetes-mcp: Working (mcp-k8s Go binary) - requires kubeconfig mounted at /root/.kube/config
|
||||
- ✓ terraform-mcp: Working (terraform-mcp-server v0.4.0) - requires credentials for HCP Terraform
|
||||
- ✓ matomo-mcp: Working (matomo-mcp-client v1.0.0) - connects to openmost.io hosted service (59 tools, 31 prompts)
|
||||
- ✓ mcp-redmine: Working (Redmine MCP server v1.25.0) - requires REDMINE_URL for actual usage
|
||||
- ✓ paperless-mcp: Working (paperless-ngx v1.0.0) - requires baseUrl/token CLI args
|
||||
|
||||
**MCP Servers with Configuration Issues (require env vars to validate):**
|
||||
- ✗ imap-mcp: Requires working IMAP server (server crashes on startup if IMAP unreachable)
|
||||
- ✗ webserial-mcp: Requires bridge server (esp32_bridge_server.py) running at ws://host.docker.internal:3000 + browser with WebSerial access + ESP32 hardware
|
||||
- ✗ wordpress-mcp: Blocked - requires WordPress instance (PHP plugin, not standalone MCP server)
|
||||
- ✗ matomo-mcp: Requires MATOMO_HOST, MATOMO_TOKEN_AUTH, OPENMOST_MCP_TOKEN env vars
|
||||
- ✗ nextcloud-mcp: Requires NEXTCLOUD_HOST env var (OAuth mode)
|
||||
- ✗ paperless-mcp: Requires baseUrl and token args
|
||||
- ✗ postizz-mcp: Requires POSTIZ_API_KEY env var
|
||||
- ✗ mcp-redmine: Requires REDMINE_URL env var
|
||||
**Runtime Connection Required (crash before MCP protocol):**
|
||||
- ✗ nextcloud-mcp: Requires reachable OAuth endpoint - crashes on startup with connection refused
|
||||
- ✗ imap-mcp: Requires reachable IMAP server - crashes on startup with connection refused
|
||||
- ✗ webserial-mcp: Requires bridge server (esp32_bridge_server.py) at ws://host.docker.internal:3000
|
||||
|
||||
**Host-Only MCP Servers:**
|
||||
- ✗ kicad-mcp: Requires KiCAD installed on host (pcbnew Python module unavailable in container)
|
||||
|
||||
**Transport Mismatch (not stdio MCP):**
|
||||
- ✗ postizz-mcp: Uses HTTP transport (port 3084), not stdio - incompatible with standard MCP clients
|
||||
|
||||
**HTTP-based REST API Servers:**
|
||||
- ✓ ghidra-mcp: Working (v1.9.4-headless) - 91 REST endpoints for binary analysis - NOT MCP protocol (uses HTTP REST)
|
||||
|
||||
@@ -110,21 +111,21 @@ All 32 vendor repositories have been verified and correctly cloned. CloneVendorR
|
||||
| ghost-mcp | Built | Container built from TypeScript source (284MB). npm build with tsc. MCP stdio-based, requires Ghost CMS URL and API key. Version 1.0.0. |
|
||||
| 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. Version 1.9.4-headless. |
|
||||
| gimp-mcp | Built | Container built from Python source (418MB). Uses uv package manager. MCP stdio-based, requires GIMP with server running. Version 1.10.1. |
|
||||
| imap-mcp | Built | Container built from Python source (317MB). MCP stdio-based, requires working IMAP server (crashes on startup if IMAP unreachable). Version 0.1.0. |
|
||||
| imap-mcp | Runtime Issue | Container builds but crashes on startup if IMAP server unreachable. Cannot validate MCP protocol without live IMAP connection. |
|
||||
| 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. |
|
||||
| kubernetes-mcp | Built | Container built from Go source (67MB). MCP stdio-based, requires kubeconfig mounted at /root/.kube/config. Supports K8s resources and Helm operations. |
|
||||
| matomo-mcp | Built | Container built from Python source. MCP stdio-based, requires MATOMO_HOST, MATOMO_TOKEN_AUTH, OPENMOST_MCP_TOKEN env vars. |
|
||||
| matomo-mcp | Built | Container built from Python source. MCP stdio-based. Connects to openmost.io hosted Matomo service (59 tools, 31 prompts). MCP handshake validated. |
|
||||
| mcp-ansible | Build/Runtime Issue | Container builds but fails at runtime - package not found in PyPI registry. Upstream issue. |
|
||||
| mcp-redmine | Built | Container built from Python source. MCP stdio-based, requires REDMINE_URL env var. |
|
||||
| nextcloud-mcp | Built | Container built from Python source. MCP stdio-based, requires NEXTCLOUD_HOST env var (OAuth mode). |
|
||||
| paperless-mcp | Built | Container built from Python source. MCP stdio-based, requires baseUrl and token args. |
|
||||
| mcp-redmine | Built | Container built from Python source. MCP stdio-based, validated with MCP handshake. Requires REDMINE_URL for actual API operations. Version 1.25.0. |
|
||||
| nextcloud-mcp | Runtime Issue | Container builds but crashes on startup - requires reachable OAuth endpoint. Cannot validate MCP protocol without live Nextcloud instance. |
|
||||
| paperless-mcp | Built | Container built from Python source. MCP stdio-based, requires baseUrl and token as CLI args. MCP handshake validated without live server. Version 1.0.0. |
|
||||
| penpot-mcp | Build/Runtime Issue | Container built from TypeScript monorepo source. Uses HTTP/WebSocket transport (not stdio). Multiple endpoints: HTTP at :4401/mcp, SSE at :4401/sse, WebSocket at :4402. |
|
||||
| postizz-mcp | Built | Container built from TypeScript source. MCP stdio-based, requires POSTIZ_API_KEY env var. |
|
||||
| postizz-mcp | Transport Issue | Container built from TypeScript source. Uses HTTP transport (port 3084), not stdio. Not compatible with standard MCP clients. |
|
||||
| proxmox-mcp | Build/Runtime Issue | Container builds but fails at runtime - ModuleNotFoundError: No module named 'mcp.server.fastmcp'. FastMCP import path changed. |
|
||||
| reverse-engineering-assistant | Build Failed | Ghidra download URL returns 404. Version mismatch in download URL. |
|
||||
| snipeit-mcp | Build/Runtime Issue | Container builds but fails at runtime - ImportError: cannot import name 'SnipeIT' from 'snipeit'. Upstream depends on private snipeit-api package with different API than public PyPI snipeit package. |
|
||||
| terraform-mcp | Built | Container built from Go source (27MB). MCP stdio-based, validates with MCP handshake v0.4.0. Requires HCP Terraform credentials for full functionality. |
|
||||
| webserial-mcp | Built | Container built from Python source. MCP stdio-based, requires bridge server + browser + ESP32 hardware. |
|
||||
| webserial-mcp | Runtime Issue | Container builds but requires bridge server + browser + ESP32 hardware. Cannot validate MCP protocol without full setup. |
|
||||
| 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. |
|
||||
| bash-language-server | Built | Container built using prebuilt npm package (190MB). LSP configured in crush.json. Version 5.6.0. |
|
||||
| docker-language-server | Built | Container built from Go source (49.2MB). LSP configured in crush.json. Version 0.0.0. |
|
||||
@@ -133,6 +134,9 @@ All 32 vendor repositories have been verified and correctly cloned. CloneVendorR
|
||||
|
||||
## Known Issues
|
||||
|
||||
### nextcloud-mcp
|
||||
Server crashes on startup if OAuth endpoint is unreachable. Server tries to connect to Nextcloud during initialization to fetch OAuth discovery document. If connection fails, server raises ConnectError and exits before responding to JSON-RPC initialize.
|
||||
|
||||
### imap-mcp
|
||||
Server crashes on startup if IMAP connection fails. Server tries to connect to IMAP during lifespan context entry. If connection fails, server raises ConnectionError and exits before responding to JSON-RPC initialize.
|
||||
|
||||
@@ -145,6 +149,9 @@ Host-only - requires KiCAD installed on the host machine. The pcbnew Python modu
|
||||
### wordpress-mcp
|
||||
The WordPress MCP Adapter is a PHP plugin that must be installed within a running WordPress instance. It requires WordPress + Abilities API plugin + MCP Adapter plugin. Not suitable for containerized standalone deployment.
|
||||
|
||||
### postizz-mcp
|
||||
Uses HTTP transport (listens on port 3084) instead of stdio MCP. Not compatible with standard MCP clients that expect stdio communication.
|
||||
|
||||
### discourse-mcp
|
||||
Build failed with TypeScript TS2345 error in upstream repository. Cannot fix locally.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user