The Skill Seeker MCP server now supports both stdio (default) and HTTP transports, giving you flexibility in how you connect Claude Desktop or other MCP clients.
# Traditional stdio transport (backward compatible)
python -m skill_seekers.mcp.server_fastmcp# HTTP transport on default port 8000
python -m skill_seekers.mcp.server_fastmcp --http
# HTTP transport on custom port
python -m skill_seekers.mcp.server_fastmcp --http --port 8080
# HTTP transport with debug logging
python -m skill_seekers.mcp.server_fastmcp --http --log-level DEBUG- Web-based clients: Connect from browser-based MCP clients
- Cross-origin requests: Built-in CORS support for web applications
- Health monitoring: Dedicated
/healthendpoint for service monitoring - Multiple connections: Support multiple simultaneous client connections
- Remote access: Can be accessed over network (use with caution!)
- Debugging: Easier to debug with browser developer tools
- Claude Desktop integration: Default and recommended for desktop clients
- Process isolation: Each client gets isolated server process
- Security: More secure for local-only access
- Simplicity: No network configuration needed
{
"mcpServers": {
"skill-seeker": {
"command": "python",
"args": ["-m", "skill_seekers.mcp.server_fastmcp"]
}
}
}{
"mcpServers": {
"skill-seeker": {
"url": "http://localhost:8000/sse"
}
}
}When running in HTTP mode, the server exposes the following endpoints:
Endpoint: GET /health
Returns server health status and metadata.
Example:
curl http://localhost:8000/healthResponse:
{
"status": "healthy",
"server": "skill-seeker-mcp",
"version": "2.1.1",
"transport": "http",
"endpoints": {
"health": "/health",
"sse": "/sse",
"messages": "/messages/"
}
}Endpoint: GET /sse
Server-Sent Events endpoint for MCP communication. This is the main endpoint used by MCP clients.
Usage:
- Connect with MCP-compatible client
- Supports bidirectional communication via SSE
Endpoint: POST /messages/
Handles tool invocation and message passing from MCP clients.
python -m skill_seekers.mcp.server_fastmcp --help--http: Enable HTTP transport (default: stdio)--port PORT: HTTP server port (default: 8000)--host HOST: HTTP server host (default: 127.0.0.1)--log-level LEVEL: Logging level (choices: DEBUG, INFO, WARNING, ERROR, CRITICAL)
# Start on default port 8000
python -m skill_seekers.mcp.server_fastmcp --http# Start on port 3000
python -m skill_seekers.mcp.server_fastmcp --http --port 3000# Listen on all interfaces (⚠️ use with caution!)
python -m skill_seekers.mcp.server_fastmcp --http --host 0.0.0.0 --port 8000# Enable debug logging
python -m skill_seekers.mcp.server_fastmcp --http --log-level DEBUG- Default binding to
127.0.0.1ensures localhost-only access - Safe for local development and testing
⚠️ Warning: Binding to0.0.0.0allows network access- Implement authentication/authorization for production
- Consider using reverse proxy (nginx, Apache) with SSL/TLS
- Use firewall rules to restrict access
- Consider VPN for remote team access
- HTTP transport includes CORS middleware
- Configured to allow all origins in development
- Customize CORS settings for production in
server_fastmcp.py
# Run HTTP transport tests
pytest tests/test_server_fastmcp_http.py -v# Run manual test script
python examples/test_http_server.py# Start server
python -m skill_seekers.mcp.server_fastmcp --http &
# Test health endpoint
curl http://localhost:8000/health
# Stop server
killall pythonError: [Errno 48] Address already in use
Solution: Use a different port
python -m skill_seekers.mcp.server_fastmcp --http --port 8001- Ensure server is running:
curl http://localhost:8000/health - Check firewall settings
- Verify port is not blocked
- For remote access, ensure using correct IP (not 127.0.0.1)
Error: uvicorn package not installed
Solution: Install uvicorn
pip install uvicornClaude Desktop → stdin/stdout → MCP Server → Tools
Claude Desktop/Browser → HTTP/SSE → MCP Server → Tools
↓
Health Check
- FastMCP: Underlying MCP server framework
- Starlette: ASGI web framework for HTTP
- uvicorn: ASGI server for production
- SSE: Server-Sent Events for real-time communication
- Startup time: ~200ms (HTTP), ~100ms (stdio)
- Health check latency: ~5-10ms
- Tool invocation overhead: ~20-50ms (HTTP), ~10-20ms (stdio)
- Single user: Use stdio (simpler, faster)
- Multiple users: Use HTTP (connection pooling)
- Production: Use HTTP with reverse proxy
- Development: Use stdio for simplicity
-
Update server startup:
# Before python -m skill_seekers.mcp.server_fastmcp # After python -m skill_seekers.mcp.server_fastmcp --http
-
Update Claude Desktop config:
{ "mcpServers": { "skill-seeker": { "url": "http://localhost:8000/sse" } } } -
Restart Claude Desktop
- Stdio remains the default transport
- No breaking changes to existing configurations
- HTTP is opt-in via
--httpflag
For issues or questions:
- GitHub Issues: https://github.com/yusufkaraaslan/Skill_Seekers/issues
- MCP Documentation: https://modelcontextprotocol.io/
- ✅ Added HTTP transport support
- ✅ Added health check endpoint
- ✅ Added CORS middleware
- ✅ Added command-line argument parsing
- ✅ Maintained backward compatibility with stdio