SOLVE-IT MCP Server

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.

Category
访问服务器

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 phrases
  • item_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 only
  • get_all_weaknesses_with_name_and_id - All weaknesses with ID and name only
  • get_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 details
  • get_all_weaknesses_with_full_detail - All weaknesses with complete details
  • get_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:

  1. ../solve-it-main/ (adjacent to server directory)
  2. ./solve-it-main/ (in current directory)
  3. 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 set SOLVE_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 search tool to find valid IDs

"Mapping file not found"

  • Use list_available_mappings to 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:

  1. Issue reports for bugs or missing features
  2. Pull requests for improvements
  3. Documentation enhancements
  4. 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选