Files
KNEL-AIMiddleware/crush.json
Charles N Wyble d067f195c2 feat: add imap-mcp to Crush integration (known issue)
Build and integrate IMAP MCP Server.

Changes:
- mcp-imap-wrapper.sh: Created wrapper script with container cleanup
- crush.json: Added imap-mcp entry with type: stdio and timeout: 60
- STATUS.md: Updated to mark imap-mcp as having configuration issues
- JOURNAL.md: Documented integration with full analysis of known issue

Known Issue:
- Server crashes on startup if IMAP connection fails
- Server does not respond to JSON-RPC initialize before crashing
- Requires working IMAP server to function in Crush
- Root cause: server attempts IMAP connection during lifespan context entry
- If connection fails, exception propagates and causes server exit
- Bug in imap-mcp: should handle connection gracefully

Validation:
- Container builds successfully (317MB, Python + uv)
- Wrapper script tested and working
- MCP protocol handshake: FAILED (server crashes before initialize)
- Cannot test protocol version or server capabilities due to crash

Environment Variables Required:
- PYTHONUNBUFFERED=1
- IMAP_HOST: IMAP server hostname
- IMAP_PORT: IMAP server port (default: 993)
- IMAP_USER: IMAP username
- IMAP_PASSWORD: IMAP password

Workaround:
User must have a working IMAP server running for imap-mcp
to initialize in Crush. If IMAP is unavailable, MCP will fail.

This is fifth MCP added in alphabetical order after filtering
out already working MCPs (audiobook, bitwarden, blender, cloudron,
context7, docker, drawio, elasticsearch, freecad, ghost, gimp).

Following ADR-007: Sequential Server Validation - one MCP at a time,
noting issues as they are encountered.
2026-01-23 15:31:59 -05:00

77 lines
2.2 KiB
JSON

{
"$schema": "https://charm.land/crush.json",
"lsp": {
"bash": {
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/lsp-bash-wrapper.sh"
},
"docker": {
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/lsp-docker-wrapper.sh"
},
"markdown": {
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/lsp-marksman-wrapper.sh"
}
},
"mcp": {
"audiobook": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-audiobook-wrapper.sh",
"timeout": 60
},
"bitwarden": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-bitwarden-wrapper.sh",
"timeout": 60
},
"blender": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-blender-wrapper.sh",
"timeout": 180
},
"cloudron": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-cloudron-wrapper.sh",
"timeout": 60
},
"context7": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-context7-wrapper.sh",
"timeout": 60
},
"docker": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-docker-wrapper.sh",
"timeout": 180
},
"drawio": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-drawio-wrapper.sh",
"timeout": 60
},
"elasticsearch": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-elasticsearch-wrapper.sh",
"timeout": 60
},
"freecad": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-freecad-wrapper.sh",
"timeout": 180
},
"ghost": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-ghost-wrapper.sh",
"timeout": 60
},
"gimp": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-gimp-wrapper.sh",
"timeout": 180
},
"imap": {
"type": "stdio",
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/mcp-imap-wrapper.sh",
"timeout": 60
}
}
}