cordlesssteve/styxy-mcp-server
If you are the rightful owner of styxy-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP server for Styxy port management and allocation system integration.
Styxy MCP Server
Smart Port Management for Claude Code ๐ฏ
An MCP (Model Context Protocol) server that provides Claude Code with intelligent port allocation and management through the styxy daemon system.
๐ Features
Core Tools
styxy_allocate_port
- ๐ฏ Smart port allocation with conflict detectionstyxy_status
- ๐ Daemon health monitoring and port overviewstyxy_logs
- ๐ Filtered log access for debuggingstyxy_config
- โ๏ธ Configuration reading and validationstyxy_cleanup
- ๐งน Stale allocation cleanupstyxy_metrics
- ๐ Usage analytics and patterns
Key Benefits
โ Automatic Conflict Prevention - No more "port already in use" errors โ Service-Aware Allocation - Different strategies for web, API, database services โ Session Management - Ports auto-release when Claude session ends โ CLI Fallback - Works even when daemon is offline โ Rich Guidance - Provides exact commands for your service type
๐ฆ Installation
cd ~/mcp-servers/styxy-server
npm install
โ๏ธ Configuration
1. Add to Claude Code MCP Configuration
Add to your ~/.claude/mcp.json
:
{
"mcpServers": {
"styxy": {
"command": "node",
"args": ["/home/cordlesssteve/mcp-servers/styxy-server/src/index.js"]
}
}
}
2. Grant Tool Permissions
Add to your project's .settings.local.json
:
{
"allowedMcpTools": [
"mcp__styxy__styxy_allocate_port",
"mcp__styxy__styxy_status",
"mcp__styxy__styxy_logs",
"mcp__styxy__styxy_config",
"mcp__styxy__styxy_cleanup",
"mcp__styxy__styxy_metrics"
]
}
3. Ensure Styxy Daemon
The MCP server requires the styxy daemon to be running:
# Start daemon
styxy daemon start
# Check status
styxy status
# View logs
styxy logs
๐ฏ Usage Examples
Smart Port Allocation
Before (Manual):
Claude: "Run 'npm run dev' and it should start on port 3000"
User: [Gets port conflict error]
After (With Styxy MCP):
Claude: [Uses styxy_allocate_port()]
Claude: "โ
Port 3042 allocated! Run: npm run dev -- --port 3042"
User: [No conflicts, works perfectly]
Service-Specific Examples
React Development:
// Claude uses: styxy_allocate_port({
// service_type: "web",
// project_name: "my-react-app"
// })
// Result: "Run: npm run dev -- --port 3043"
Storybook:
// Claude uses: styxy_allocate_port({
// service_type: "storybook",
// project_name: "component-library"
// })
// Result: "Run: npm run storybook -- --port 6007"
API Server:
// Claude uses: styxy_allocate_port({
// service_type: "api",
// project_name: "backend-service"
// })
// Result: "Run: PORT=3044 npm start"
๐ง Tool Reference
styxy_allocate_port
The main tool - Use this whenever Claude needs to assign ports!
{
service_type: "web" | "api" | "database" | "cache" | "messaging" | "monitoring" | "testing" | "storybook" | "custom",
project_name: string, // Required: Project identifier
preferred_port?: number, // Optional: Preferred port number
duration?: "temporary" | "session" | "persistent", // Default: "session"
service_name?: string // Optional: Specific service name
}
Returns:
- Allocated port number
- Service URL (http://localhost:PORT)
- Cleanup command
- Usage examples for your service type
- Conflict information if any
styxy_status
Quick health check of the styxy daemon:
{
include_ports?: boolean, // Default: true
include_recent_errors?: boolean // Default: true
}
styxy_logs
Filtered log access for debugging:
{
level?: "error" | "warn" | "info" | "debug", // Default: "info"
time_range?: "1h" | "6h" | "24h" | "7d", // Default: "1h"
filter?: string, // Optional: regex filter
limit?: number // Default: 50
}
styxy_cleanup
Clean up stale allocations:
{
force?: boolean, // Force cleanup all session allocations
port?: number // Release specific port
}
๐ Communication Architecture
Claude Code โ MCP Server โ Styxy Daemon โ Port Allocation
โ CLI Fallback (if daemon offline)
Daemon Communication
- Primary: Unix socket (
~/.styxy/daemon.sock
) - Fallback: CLI commands (
styxy allocate
,styxy status
, etc.) - Timeout: 5 seconds for socket, 10 seconds for commands
Error Handling
- Graceful fallback from socket to CLI
- Detailed error messages with troubleshooting tips
- Automatic retry logic for transient failures
๐ ๏ธ Development
Running the Server
# Development mode (with file watching)
npm run dev
# Production mode
npm start
# Testing
npm test
Testing with Claude Code
-
Start the MCP server:
cd ~/mcp-servers/styxy-server npm start
-
Test in Claude Code:
/mcp styxy_status /mcp styxy_allocate_port {"service_type": "web", "project_name": "test"}
Debugging
Check MCP Server Status:
# Test if server responds
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | node src/index.js
# Check permissions
claude mcp list | grep styxy
Check Styxy Daemon:
styxy status
styxy logs --tail 50
๐ Integration Checklist
- MCP server added to
~/.claude/mcp.json
- Tools granted in project
.settings.local.json
- Styxy daemon running (
styxy daemon start
) - Test allocation works (
/mcp styxy_allocate_port
) - Verify port cleanup (
/mcp styxy_cleanup
)
๐ Troubleshooting
"Daemon not reachable"
styxy daemon start
styxy status
"Permission denied"
- Check
.settings.local.json
hasmcp__styxy__*
permissions - Restart Claude Code after config changes
"Port allocation failed"
styxy cleanup --force # Clean stale allocations
styxy logs --level error # Check for daemon errors
๐ฎ Future Enhancements
- Port reservation system
- Integration with Docker port mapping
- Automatic service discovery
- Port usage analytics dashboard
- Integration with popular dev tools (Vite, Webpack, etc.)
Made for the styxy ecosystem - Invisible, intelligent port management for Claude Code! ๐ฏ