SOLVE-IT MCP Server
Provides LLM access to the SOLVE-IT Digital Forensics Knowledge Base, enabling natural language exploration of investigation techniques, weaknesses, and mitigations.
README
SOLVE-IT MCP Server
MCP server providing LLM access to the SOLVE-IT Digital Forensics Knowledge Base.
SOLVE-IT is a systematic digital forensics knowledge base inspired by MITRE ATT&CK, containing comprehensive mappings of investigation techniques, weaknesses, and mitigations. This MCP server exposes the entire SOLVE-IT knowledge base through tools that enable LLMs to assist with discussions and use cases related to digital forensics.
What is SOLVE-IT?
SOLVE-IT provides a structured approach to digital forensics investigations through:
- Techniques (T1001, T1002...): Digital forensic investigation methods
- Weaknesses (W1001, W1002...): Potential problems/limitations of techniques
- Mitigations (M1001, M1002...): Ways to address weaknesses
- Objectives: Categories that organize techniques by investigation goals
See the main repository here: https://github.com/SOLVE-IT-DF/solve-it
Quick Start
1. Prerequisites
Ensure you have the SOLVE-IT knowledge base available:
https://github.com/SOLVE-IT-DF/solve-it.git
2. Install the MCP Server
git clone <this-repository>
cd solve_it_mcp
pip install -e .
3. Run the Server
python3 src/server.py
4. Configure MCP Client
Add to your MCP client configuration:
{
"mcpServers": {
"solveit": {
"command": "python3",
"args": ["/path/to/solve_it_mcp/src/server.py"],
"cwd": "/path/to/solve_it_mcp"
}
}
}
Available Tools
The server provides 20 tools organized into functional categories:
Core Information Tools
get_database_description
Get comprehensive overview of the SOLVE-IT database and server capabilities.
Parameters: None
Example:
Tool: get_database_description
Result: Complete database statistics and server information
search
Search across techniques, weaknesses, and mitigations using keywords.
Parameters:
keywords(string): Search terms. Use quotes for exact phrasesitem_types(array, optional): Filter by type:["techniques", "weaknesses", "mitigations"]
Examples:
Tool: search
Parameters: {"keywords": "network analysis", "item_types": ["techniques"]}
Tool: search
Parameters: {"keywords": "\"log analysis\""}
Detailed Lookup Tools
get_technique_details
Retrieve complete information for a specific technique.
Parameters:
technique_id(string): Technique ID (e.g., "T1002")
get_weakness_details
Retrieve detailed information for a specific weakness.
Parameters:
weakness_id(string): Weakness ID (e.g., "W1001")
get_mitigation_details
Retrieve detailed information for a specific mitigation.
Parameters:
mitigation_id(string): Mitigation ID (e.g., "M1001")
Relationship Analysis Tools
get_weaknesses_for_technique
Find all weaknesses associated with a technique.
Parameters:
technique_id(string): Technique ID
get_mitigations_for_weakness
Find all mitigations that address a specific weakness.
Parameters:
weakness_id(string): Weakness ID
get_techniques_for_weakness
Find all techniques that have a specific weakness.
Parameters:
weakness_id(string): Weakness ID
get_weaknesses_for_mitigation
Find all weaknesses addressed by a specific mitigation.
Parameters:
mitigation_id(string): Mitigation ID
get_techniques_for_mitigation
Find all techniques that benefit from a specific mitigation.
Parameters:
mitigation_id(string): Mitigation ID
Objective Management Tools
list_objectives
List all objectives from the current mapping.
Parameters: None
get_techniques_for_objective
Get all techniques associated with a specific objective.
Parameters:
objective_name(string): Name of the objective
list_available_mappings
Show all available objective mapping files.
Parameters: None
load_objective_mapping
Switch to a different objective mapping (e.g., carrier.json, dfrws.json).
Parameters:
filename(string): Mapping filename (e.g., "carrier.json")
Bulk Retrieval Tools
Concise Format Tools
get_all_techniques_with_name_and_id- All techniques with ID and name onlyget_all_weaknesses_with_name_and_id- All weaknesses with ID and name onlyget_all_mitigations_with_name_and_id- All mitigations with ID and name only
Full Detail Tools (Use with caution - large data)
get_all_techniques_with_full_detail- All techniques with complete detailsget_all_weaknesses_with_full_detail- All weaknesses with complete detailsget_all_mitigations_with_full_detail- All mitigations with complete details
Usage Examples
<Pending>
Data Configuration
The server automatically looks for the SOLVE-IT knowledge base in these locations:
../solve-it-main/(adjacent to server directory)./solve-it-main/(in current directory)- Environment variable
SOLVE_IT_DATA_PATH
Ensure your SOLVE-IT data directory contains:
data/solve-it.json(default objective mapping)data/techniques/(technique JSON files)data/weaknesses/(weakness JSON files)data/mitigations/(mitigation JSON files)
Performance Considerations
- Search operations: Typically complete in <5 seconds
- Bulk operations: May take <10 seconds for full detail retrievals
- Individual lookups: Near-instant response
- Relationship queries: Optimized for fast traversal
Error Handling
The server provides comprehensive error handling:
- Missing data: Graceful fallback with helpful error messages
- Invalid IDs: Clear feedback on incorrect technique/weakness/mitigation IDs
- Connection issues: Automatic retry and timeout handling
- Large datasets: Memory-efficient processing with warnings
Integration Examples
Claude Desktop
{
"mcpServers": {
"solveit": {
"command": "python3",
"args": ["/path/to/solve_it_mcp/src/server.py"],
"cwd": "/path/to/solve_it_mcp"
}
}
}
Security Features
- Read-only access: Server only reads from the knowledge base
- Input validation: All parameters validated with Pydantic schemas
- Timeout protection: Automatic timeouts for long-running operations
- Memory limits: Protection against excessive memory usage
- Path validation: Secure file path handling
Development
Running Tests
# Run integration tests with real SOLVE-IT data
python3 -m pytest solve_it_mcp/tests/integration/ -v
# Run unit tests
python3 -m pytest solve_it_mcp/tests/unit/ -v
Troubleshooting
Common Issues
"Knowledge base not found"
- Ensure SOLVE-IT data is in
../solve-it-main/or setSOLVE_IT_DATA_PATH - Verify the data directory contains
data/solve-it.json
"Technique/Weakness/Mitigation not found"
- Check ID format (e.g., "T1001", "W1001", "M1001")
- Use
searchtool to find valid IDs
"Mapping file not found"
- Use
list_available_mappingsto see available files - Ensure mapping files are in
data/directory
License
MIT License - See LICENSE file for details.
Contributing
This server is part of the SOLVE-IT ecosystem. Contributions welcome through:
- Issue reports for bugs or missing features
- Pull requests for improvements
- Documentation enhancements
- Additional tool implementations
Ready to investigate? Start with get_database_description to explore the knowledge base, then use search to find relevant techniques for your investigation.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。