Troubleshooting Guide¶
Common issues and solutions for SOLVE-IT MCP Server.
Installation Issues¶
Docker Image Won't Pull¶
Problem: Error response from daemon: manifest unknown
Solutions: - Verify image name: 3soos3/solve-it-mcp:latest - Check Docker Hub status - Try alternative registry: ghcr.io/3soos3/solve-it-mcp:latest - Verify network connectivity
Python Dependencies Fail to Install¶
Problem: pip install fails with dependency conflicts
Solutions: - Use Python 3.11 or 3.12: python3 --version - Create clean virtual environment:
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
pip list Runtime Issues¶
Server Won't Start¶
Problem: Server crashes immediately or won't bind to port
Solutions:
-
Check port availability:
-
Try different port:
-
Check Docker daemon:
SOLVE-IT Data Not Found¶
Problem: Failed to load SOLVE-IT knowledge base
Solutions:
For Docker (data is embedded): - Should not occur; file a bug if it does
For Python installation:
# Verify SOLVE-IT data path
ls $SOLVE_IT_DATA_PATH
# Should contain:
# - techniques.json
# - weaknesses.json
# - mitigations.json
# - objective_mappings/
# Set correct path
export SOLVE_IT_DATA_PATH=/path/to/solve-it/data
Health Check Fails¶
Problem: /healthz endpoint returns error
Solutions:
-
Wait for startup (can take 5-10 seconds):
-
Check logs:
-
Verify transport mode:
MCP Client Issues¶
Tools Don't Appear in Client¶
Problem: MCP client doesn't show SOLVE-IT tools
Solutions:
-
Verify client configuration:
-
Check for typos in config file
-
Restart MCP client completely
-
Verify server runs standalone:
Connection Refused¶
Problem: Client can't connect to HTTP server
Solutions:
-
Verify server is running:
-
Check firewall rules:
-
Verify host binding:
Query Issues¶
Empty or No Results¶
Problem: Queries return no results when data should exist
Solutions:
-
Check search syntax:
-
Verify item types:
-
Check ID format:
Invalid JSON Errors¶
Problem: Invalid JSON or parsing errors
Solutions:
-
Validate JSON before sending:
-
Escape special characters:
-
Check for trailing commas (not allowed in JSON)
Performance Issues¶
Slow Queries¶
Problem: Queries take longer than expected
Solutions:
-
Use specific queries instead of bulk operations when possible
-
Disable telemetry for faster performance:
-
Reduce logging:
High Memory Usage¶
Problem: Container uses excessive memory
Solutions:
-
Set memory limits:
-
Restart periodically for long-running instances
Deployment Issues¶
Kubernetes Pod CrashLoopBackOff¶
Problem: Pod keeps restarting
Solutions:
-
Check logs:
-
Verify resource limits:
-
Check liveness probe timing:
Image Pull Errors in Kubernetes¶
Problem: ImagePullBackOff or authentication errors
Solutions:
-
Use public registry (no auth required):
-
For GHCR, create secret:
Common Error Messages¶
"Transport mode must be stdio or http"¶
Cause: Invalid MCP_TRANSPORT value
Solution:
"Knowledge base not initialized"¶
Cause: Server started before data loaded
Solution: Wait for initialization message in logs
"Tool not found"¶
Cause: Typo in tool name
Solution: List available tools:
curl -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d '{"method":"tools/list"}'
Getting More Help¶
Enable Debug Logging¶
Collect Diagnostic Information¶
When reporting issues, include:
-
Server version:
-
Environment:
- OS and version
- Docker version:
docker --version -
Python version (if applicable):
python3 --version -
Logs:
-
Configuration:
- Environment variables
- docker-compose.yml or Kubernetes manifests
Report Issues¶
- GitHub Issues: https://github.com/3soos3/solve-it-mcp/issues
- Include: Diagnostic info, steps to reproduce, expected vs actual behavior
- Security issues: See SECURITY.md
Quick Fixes Reference¶
| Problem | Quick Fix |
|---|---|
| Port in use | docker run -p 8080:8080 -e HTTP_PORT=8080 ... |
| Connection refused | Verify server: curl http://localhost:8000/healthz |
| No tools in client | Restart client, check config syntax |
| Slow queries | -e OTEL_ENABLED=false -e LOG_LEVEL=ERROR |
| High memory | --memory=256m |
| Pod won't start | Increase initialDelaySeconds in liveness probe |
| Invalid JSON | Validate with jq before sending |
| Empty results | Check ID format (uppercase, exact) |
Still Need Help?¶
- Check Documentation
- Search GitHub Issues
- Ask in Discussions
- File new issue with diagnostic info