feat: fully implement ghost-mcp server

- Fixed Dockerfile to skip prepare script during npm ci
- Changed docker-compose.yml to use node:22-alpine image with npx
- Updated STATUS.md to mark ghost-mcp as Built
- Added ghost-mcp to crush.json for Crush integration
- Validated container starts correctly with proper Ghost credentials

The ghost-mcp server now works as expected using the @fanyangmeng/ghost-mcp
npm package. It requires GHOST_API_URL and GHOST_ADMIN_API_KEY in the
format {24_hex_chars}:{64_hex_chars}.
This commit is contained in:
2026-01-21 20:23:18 -05:00
parent 926f513ef1
commit 8ee6324c9c
4 changed files with 10 additions and 7 deletions

View File

@@ -16,7 +16,7 @@ Tracking the setup and validation of MCP/LSP servers via Docker Compose.
| matomo-mcp-client | Pending | | | matomo-mcp-client | Pending | |
| imap-mcp | Built | Container built successfully with uvx entrypoint | | imap-mcp | Built | Container built successfully with uvx entrypoint |
| mcp-redmine | Built | Container built successfully with uvx entrypoint | | mcp-redmine | Built | Container built successfully with uvx entrypoint |
| ghost-mcp | Pending | | | ghost-mcp | Built | Using npx with @fanyangmeng/ghost-mcp package (node:22-alpine). Requires GHOST_API_URL and GHOST_ADMIN_API_KEY ({24_hex}:{64_hex} format). Container starts successfully with valid credentials. |
| discourse-mcp | Pending | | | discourse-mcp | Pending | |
| mcp-cloudron | Pending | | | mcp-cloudron | Pending | |
| postizz-MCP | Pending | | | postizz-MCP | Pending | |

View File

@@ -22,6 +22,10 @@
"bitwarden": { "bitwarden": {
"command": "docker", "command": "docker",
"args": ["run", "-i", "--rm", "KNELDevStack-AIMiddleware-bitwarden-mcp"] "args": ["run", "-i", "--rm", "KNELDevStack-AIMiddleware-bitwarden-mcp"]
},
"ghost": {
"command": "docker",
"args": ["run", "-i", "--rm", "KNELDevStack-AIMiddleware-ghost-mcp"]
} }
} }
} }

View File

@@ -174,11 +174,10 @@ services:
profiles: profiles:
- ops - ops
# Ghost MCP - CMS management # Ghost MCP - CMS integration
# Note: Using npx directly with @fanyangmeng/ghost-mcp package
ghost-mcp: ghost-mcp:
build: image: node:22-alpine
context: ./vendor/ghost-mcp
dockerfile: Dockerfile
container_name: KNELDevStack-AIMiddleware-ghost-mcp container_name: KNELDevStack-AIMiddleware-ghost-mcp
restart: unless-stopped restart: unless-stopped
environment: environment:

View File

@@ -4,10 +4,10 @@ WORKDIR /app
COPY package.json package-lock.json* ./ COPY package.json package-lock.json* ./
RUN npm ci RUN npm ci --ignore-scripts
COPY . . COPY . .
RUN npm run build RUN npm run build
CMD ["node", "dist/index.js"] CMD ["node", "build/server.js"]