SOLVE-IT MCP Server for Forensic Analysts¶
This guide is specifically designed for digital forensics professionals who want to leverage SOLVE-IT MCP Server in their investigations.
Overview¶
As a forensic analyst, you're often faced with:
- Complex evidence collection: Choosing the right techniques for specific scenarios
- Methodology validation: Ensuring your investigation methods are sound
- Weakness awareness: Understanding limitations of your chosen techniques
- Documentation requirements: Providing detailed justification for your methods
SOLVE-IT MCP Server helps by providing instant access to a comprehensive knowledge base of forensic techniques, their weaknesses, and mitigations.
Quick Start for Analysts¶
Installation (2 minutes)¶
The fastest way to get started:
# Pull and run the Docker image
docker pull 3soos3/solve-it-mcp:latest
docker run -p 8000:8000 \
-e MCP_TRANSPORT=http \
-e HTTP_PORT=8000 \
3soos3/solve-it-mcp:latest
Verify Installation¶
You're ready when you see: {"status":"healthy"}
Common Investigation Workflows¶
Workflow 1: Finding the Right Technique¶
Scenario: You've seized a network router and need to determine the best approach for evidence extraction.
Step 1: Search for Relevant Techniques¶
curl -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "search",
"arguments": {
"keywords": "network device extraction",
"item_types": ["techniques"]
}
}
}'
Step 2: Review Technique Details¶
curl -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "get_technique_details",
"arguments": {
"technique_id": "T1042"
}
}
}'
Step 3: Identify Potential Weaknesses¶
curl -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "get_weaknesses_for_technique",
"arguments": {
"technique_id": "T1042"
}
}
}'
Step 4: Find Mitigations¶
curl -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "get_mitigations_for_weakness",
"arguments": {
"weakness_id": "W1015"
}
}
}'
Workflow 2: Validating Your Methodology¶
Scenario: You're preparing expert testimony and need to document the strengths and limitations of your chosen methods.
Document Your Approach¶
- List all techniques used in your investigation
- Identify known weaknesses for each technique
- Document mitigations you've applied
- Cross-reference with investigation objectives
Example Investigation Report Section¶
## Investigation Methodology
### Technique: Network Traffic Analysis (T1023)
**Purpose**: Identify suspicious network communications
**Weaknesses Considered**:
- W1008: Encrypted traffic may not be fully analyzable
- W1012: Incomplete packet capture due to network tap limitations
**Mitigations Applied**:
- M1004: Captured full packet headers and metadata
- M1009: Cross-referenced with firewall logs for context
- M1015: Documented capture timestamps and chain of custody
**Justification**: Despite acknowledged limitations, this technique
provided crucial evidence of C2 communication patterns that
corroborated findings from endpoint analysis.
Workflow 3: Investigation Planning¶
Scenario: You're planning a mobile device investigation and want to ensure comprehensive coverage.
Step 1: List All Relevant Objectives¶
curl -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "list_objectives",
"arguments": {}
}
}'
Step 2: Get Techniques for Your Objective¶
curl -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "get_techniques_for_objective",
"arguments": {
"objective_name": "Mobile Device Forensics"
}
}
}'
Step 3: Create Investigation Checklist¶
Use the returned techniques to build a comprehensive investigation plan.
Integration with MCP Clients¶
Claude Desktop Integration¶
For interactive analysis during investigations:
-
Install Docker (if not already installed)
-
Configure Claude Desktop (
claude_desktop_config.json):
{
"mcpServers": {
"solveit": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "MCP_TRANSPORT=stdio",
"3soos3/solve-it-mcp:latest"
]
}
}
}
-
Restart Claude Desktop
-
Ask questions naturally:
- "What techniques are available for memory forensics?"
- "What are the weaknesses of timeline analysis?"
- "Show me mitigations for hash collision issues"
Benefits for Analysts¶
- Natural language queries: No need to remember exact technique IDs
- Context-aware: Claude can help interpret results in context of your investigation
- Report drafting: Use Claude to help write methodology sections
- Training: Ask "what if" questions to explore scenarios
Practical Use Cases¶
Use Case 1: Chain of Custody Documentation¶
Challenge: Documenting forensic soundness of your methods
Solution: Use SOLVE-IT to:
- Identify all techniques applied
- Document known weaknesses
- Show mitigations implemented
- Demonstrate forensic rigor
Example Output for Court:
"The investigation employed SOLVE-IT Technique T1055 (Disk Imaging) with documented awareness of Weakness W1032 (potential for hardware read errors). Mitigation M1041 (verification hashing at multiple stages) was implemented to ensure data integrity throughout the imaging process."
Use Case 2: Peer Review Preparation¶
Challenge: Preparing evidence for peer review or opposing expert examination
Solution:
- Document every technique used
- Pre-identify weaknesses that might be challenged
- Prepare justifications for mitigation choices
- Demonstrate awareness of methodology limitations
Use Case 3: Training and Skill Development¶
Challenge: Staying current with forensic methodologies
Solution:
- Explore new techniques in your domain
- Understand relationships between techniques
- Learn about weaknesses you may not have considered
- Discover mitigation strategies used by peers
Example Training Exercise:
# Explore all timeline analysis techniques
curl -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "search",
"arguments": {
"keywords": "timeline",
"item_types": ["techniques"]
}
}
}'
Use Case 4: Cross-Platform Investigations¶
Challenge: Investigating across multiple platforms (Windows, Linux, mobile, cloud)
Solution: Use objectives to organize multi-platform approach
# Get techniques for cloud forensics
curl -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "get_techniques_for_objective",
"arguments": {
"objective_name": "Cloud Forensics"
}
}
}'
Field Work Considerations¶
Mobile Access¶
For field investigations, use the server on a laptop:
# Run with minimal logging for performance
docker run -p 8000:8000 \
-e MCP_TRANSPORT=http \
-e LOG_LEVEL=WARNING \
-e HTTP_PORT=8000 \
3soos3/solve-it-mcp:latest
Offline Access¶
The Docker image includes the complete SOLVE-IT database:
- No internet required after initial pull
- All data embedded in the image
- Works on isolated forensic workstations
Performance Optimization¶
For faster queries on resource-constrained systems:
# docker-compose.yml for field laptop
version: '3.8'
services:
solve-it-mcp:
image: 3soos3/solve-it-mcp:latest
ports:
- "8000:8000"
environment:
- MCP_TRANSPORT=http
- LOG_LEVEL=ERROR
- OTEL_ENABLED=false # Disable telemetry
deploy:
resources:
limits:
cpus: '0.5'
memory: 256M
Best Practices¶
Documentation¶
- Reference Technique IDs in your reports (e.g., "T1023: Network Traffic Analysis")
- Document weaknesses you identified and considered
- Justify mitigation choices explicitly
- Maintain consistency across investigations
Quality Assurance¶
- Cross-check techniques with case requirements
- Review weaknesses before finalizing methodology
- Peer review your technique selections
- Update documentation as new techniques emerge
Defensibility¶
- Show awareness of limitations
- Document alternatives considered
- Justify selections based on case specifics
- Demonstrate rigor through systematic approach
Common Questions¶
Q: Can I use SOLVE-IT references in court?¶
A: Yes, SOLVE-IT is a published, peer-reviewed framework. Cite it as:
"SOLVE-IT Digital Forensics Framework (SOLVE-IT-DF/solve-it, https://github.com/SOLVE-IT-DF/solve-it)"
Always consult with your legal team regarding expert testimony requirements in your jurisdiction.
Q: How often is the knowledge base updated?¶
A: The SOLVE-IT framework is actively maintained. Check for:
- New Docker image releases (monthly rebuilds)
- SOLVE-IT repository updates
- Release notes for version-specific changes
Q: Can I add custom techniques for my organization?¶
A: The current implementation uses the official SOLVE-IT data. For custom extensions:
- Fork the SOLVE-IT repository
- Add your custom techniques
- Rebuild the Docker image with your data
- See Testing Guide to validate your changes
Q: Is this suitable for sensitive investigations?¶
A: Yes, with proper deployment:
- Runs locally: No internet required
- No data exfiltration: All processing is local
- Audit trail: Full logging available
- Isolated deployment: Can run on air-gapped systems
See Security Model for details.
Integration Examples¶
Example: Automated Report Generation¶
#!/usr/bin/env python3
import requests
import json
def get_technique_details(tech_id):
"""Get full details for a technique"""
response = requests.post(
"http://localhost:8000/mcp/v1/messages",
json={
"method": "tools/call",
"params": {
"name": "get_technique_details",
"arguments": {"technique_id": tech_id}
}
}
)
return response.json()
def generate_methodology_section(techniques):
"""Generate methodology section for report"""
report = "## Investigation Methodology\n\n"
for tech_id in techniques:
details = get_technique_details(tech_id)
# Parse and format details
report += f"### Technique: {tech_id}\n"
# Add details, weaknesses, mitigations
return report
# Usage
techniques_used = ["T1023", "T1042", "T1055"]
methodology = generate_methodology_section(techniques_used)
print(methodology)
Example: Technique Validation Script¶
#!/bin/bash
# validate-investigation.sh
# Validates that all techniques used have documented mitigations
TECHNIQUES=("T1023" "T1042" "T1055")
for tech in "${TECHNIQUES[@]}"; do
echo "Checking $tech..."
# Get weaknesses
weaknesses=$(curl -s -X POST http://localhost:8000/mcp/v1/messages \
-H "Content-Type: application/json" \
-d "{\"method\":\"tools/call\",\"params\":{\"name\":\"get_weaknesses_for_technique\",\"arguments\":{\"technique_id\":\"$tech\"}}}")
# Check if mitigations exist for each weakness
# ... validation logic ...
echo "$tech: Validated ✓"
done
Next Steps¶
- Explore the full tool set: Tools Reference
- Learn about architecture: Overview, Security Model
- Deploy in production: Kubernetes Guide
- Integrate with your workflow: Integration Guide
Need Help?¶
- Troubleshooting: Common Issues
- Questions: GitHub Discussions
- Bug Reports: GitHub Issues