Build and validate Context7 Documentation MCP Server (v2.1.0). Changes: - mcp-context7-wrapper.sh: Created wrapper script with container cleanup - crush.json: Added context7-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 (224MB, Node.js + TypeScript) - MCP protocol handshake verified with initialize request - Protocol version 2024-11-05 confirmed - Server name: Context7, version 2.1.0 - Wrapper script tested and working - Environment variables: UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN This is the first MCP added in alphabetical order after filtering out already working MCPs (audiobook, bitwarden, blender, cloudron, docker, drawio, elasticsearch). Following ADR-007: Sequential Server Validation - one MCP at a time, awaiting user validation before proceeding to next MCP.
22 lines
914 B
Bash
Executable File
22 lines
914 B
Bash
Executable File
#!/bin/sh
|
|
# Wrapper script for context7-mcp
|
|
# Ensures clean container with proper name
|
|
|
|
CONTAINER_NAME="kneldevstack-aimiddleware-context7-mcp-crush"
|
|
IMAGE_NAME="kneldevstack-aimiddleware-context7-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 "UPSTASH_REDIS_REST_URL=${UPSTASH_REDIS_REST_URL:-}" \
|
|
-e "UPSTASH_REDIS_REST_TOKEN=${UPSTASH_REDIS_REST_TOKEN:-}" \
|
|
"${IMAGE_NAME}" "$@"
|