Build and validate Ghost CMS MCP Server (ghost-mcp-ts v1.0.0). Changes: - mcp-ghost-wrapper.sh: Created wrapper script with container cleanup - crush.json: Added ghost-mcp entry with type: stdio and timeout: 60 - STATUS.md: Updated working MCP list and detailed status table - JOURNAL.md: Documented integration with full validation results Validation: - Container builds successfully (284MB, Node.js + TypeScript) - MCP protocol handshake verified with initialize request - Protocol version 2024-11-05 confirmed - Server name: ghost-mcp-ts, version 1.0.0 - Wrapper script tested and working - Environment variables: GHOST_API_URL, GHOST_ADMIN_API_KEY - Capabilities: resources, tools, prompts (all listChanged: true) This is third MCP added in alphabetical order after filtering out already working MCPs (audiobook, bitwarden, blender, cloudron, context7, docker, drawio, elasticsearch, freecad). Following ADR-007: Sequential Server Validation - one MCP at a time, awaiting user validation before proceeding to next MCP.
22 lines
898 B
Bash
Executable File
22 lines
898 B
Bash
Executable File
#!/bin/sh
|
|
# Wrapper script for ghost-mcp
|
|
# Ensures clean container with proper name
|
|
|
|
CONTAINER_NAME="kneldevstack-aimiddleware-ghost-mcp-crush"
|
|
IMAGE_NAME="kneldevstack-aimiddleware-ghost-mcp"
|
|
|
|
# Force remove existing container if it exists (in any state)
|
|
if docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' 2>/dev/null | grep -q "^${CONTAINER_NAME}$"; then
|
|
docker rm -f "${CONTAINER_NAME}" >/dev/null 2>&1
|
|
# Wait for container to be fully removed
|
|
while docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' 2>/dev/null | grep -q "^${CONTAINER_NAME}$"; do
|
|
sleep 0.05
|
|
done
|
|
fi
|
|
|
|
# Start MCP server with explicit name and environment variables
|
|
exec docker run -i --rm --name "${CONTAINER_NAME}" \
|
|
-e "GHOST_API_URL=${GHOST_API_URL:-http://localhost:2368}" \
|
|
-e "GHOST_ADMIN_API_KEY=${GHOST_ADMIN_API_KEY:-}" \
|
|
"${IMAGE_NAME}" "$@"
|