agentic/code/frameworks/sdlc-complete/skills/smith-mcpdef/SKILL.md
Generate MCP environment definition for MCPSmith with Docker and Node.js verification
npx skillsauth add jmagly/aiwg smith-mcpdefInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate an MCP environment definition file that catalogs Docker and Node.js capabilities for the MCPSmith agent. This file describes the local environment's ability to build and run containerized MCP servers.
--output <path> - Output file path (default: .aiwg/smiths/mcp-definition.yaml)--verify-only - Verify existing definition without regenerating--update - Update existing definition with any changes--create-network - Create the Docker network if it doesn't existCreate the mcpsmith directory if it doesn't exist:
mkdir -p .aiwg/smiths/mcpsmith/tools
mkdir -p .aiwg/smiths/mcpsmith/implementations
mkdir -p .aiwg/smiths/mcpsmith/templates
mkdir -p .aiwg/smiths/mcpsmith/images
Verify Docker is installed and running:
# Check Docker CLI
docker --version
# Check Docker daemon is running
docker info 2>/dev/null | head -20
# Check Docker Compose
docker compose version 2>/dev/null || docker-compose --version 2>/dev/null
Required: Docker must be available and running for MCPSmith to function.
Verify Node.js is available:
# Node.js version
node --version
# npm version
npm --version
# Check for MCP SDK (in project or global)
npm list @modelcontextprotocol/sdk 2>/dev/null || npm list -g @modelcontextprotocol/sdk 2>/dev/null
Verify base images are accessible:
# Check if base images exist locally or can be pulled
docker image inspect node:20-alpine 2>/dev/null || echo "node:20-alpine not cached"
docker image inspect node:20-slim 2>/dev/null || echo "node:20-slim not cached"
Verify or create the MCP network for container communication:
# Check if network exists
docker network ls | grep aiwg-mcp-network
# Create if missing (only with --create-network flag)
docker network create aiwg-mcp-network 2>/dev/null || true
Find available ports in the configured range:
# Check ports 9100-9199 for availability
for port in $(seq 9100 9110); do
nc -z localhost $port 2>/dev/null || echo "$port available"
done
Create .aiwg/smiths/mcp-definition.yaml:
# MCP Environment Definition for MCPSmith
# Generated: <timestamp>
# Platform: <os> <version>
docker:
available: true|false
version: "<docker version>"
compose_version: "<compose version>"
runtime: "<containerd|runc>"
daemon_running: true|false
node:
available: true|false
version: "<node version>"
npm_version: "<npm version>"
mcp:
sdk_available: true|false
sdk_version: "<version or null>"
spec_version: "2025-11-25"
transports:
- stdio
# - http # if supported
base_images:
node_alpine:
image: "node:20-alpine"
cached: true|false
node_slim:
image: "node:20-slim"
cached: true|false
network:
name: "aiwg-mcp-network"
exists: true|false
driver: "bridge"
ports:
range_start: 9100
range_end: 9199
available: [9100, 9101, ...] # First 10 available ports
capabilities:
can_build_images: true|false
can_run_containers: true|false
can_create_networks: true|false
stdio_transport: true|false
http_transport: true|false
Output a summary of the MCP environment:
MCP Environment Definition Generated
=====================================
Docker: Available (v24.0.7)
- Daemon: Running
- Compose: v2.23.0
- Runtime: containerd
Node.js: Available (v20.10.0)
- npm: v10.2.0
- MCP SDK: @modelcontextprotocol/[email protected]
Base Images:
- node:20-alpine: Cached
- node:20-slim: Not cached (will pull on first use)
Network:
- aiwg-mcp-network: Exists
Port Range: 9100-9199
- Available ports: 9100, 9101, 9102, ... (10 shown)
Capabilities:
✓ Can build images
✓ Can run containers
✓ Can create networks
✓ Stdio transport
✗ HTTP transport (not configured)
Output: .aiwg/smiths/mcp-definition.yaml
Error: Docker is not available.
MCPSmith requires Docker to build and run MCP tool containers.
Please install Docker:
- Linux: https://docs.docker.com/engine/install/
- macOS: https://docs.docker.com/desktop/mac/install/
- Windows: https://docs.docker.com/desktop/windows/install/
After installation, ensure Docker daemon is running:
sudo systemctl start docker # Linux
open -a Docker # macOS
Error: Docker daemon is not running.
Start Docker:
- Linux: sudo systemctl start docker
- macOS: Open Docker Desktop
- Windows: Start Docker Desktop
Then re-run: /smith-mcpdef
Warning: Node.js is not available on the host.
MCPSmith can still build containers (Node.js included in image),
but local testing may be limited.
For full functionality, install Node.js:
https://nodejs.org/
When --verify-only is specified:
.aiwg/smiths/mcp-definition.yamlVerifying MCP environment definition...
Docker:
✓ Version matches (24.0.7)
✓ Daemon running
✓ Compose available
Node.js:
✓ Version matches (20.10.0)
✗ MCP SDK version changed: 1.23.0 → 1.24.0
Network:
✓ aiwg-mcp-network exists
Verification complete. 1 change detected.
Run with --update to refresh definition.
When --update is specified:
# Generate full MCP definition
/smith-mcpdef
# Custom output location
/smith-mcpdef --output ./custom-mcp-def.yaml
# Verify existing definition
/smith-mcpdef --verify-only
# Update definition and create network
/smith-mcpdef --update --create-network
Before MCPSmith can operate, verify:
| Requirement | Status | Notes |
|-------------|--------|-------|
| Docker CLI | Required | docker --version |
| Docker Daemon | Required | Must be running |
| Docker Compose | Recommended | For multi-container tools |
| Node.js | Recommended | For local testing |
| MCP SDK | Optional | Can be installed in container |
@$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/agents/mcpsmith.md.aiwg/smiths/mcpsmith/catalog.yaml@$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/agents/toolsmith-dynamic.mddata-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.