How cke-proto/mcp_solve-it works
Purpose and Runtime Entry Points
This is a Python MCP (Model Context Protocol) server exposing the external SOLVE-IT digital-forensics knowledge base to LLM clients as query, navigation, search, citation, relationship, and status tools. It is primarily a stdio subprocess server, not a web application.
• Launchers: run.py, src/mcp_chassis/__main__.py
• Central runtime orchestration: src/mcp_chassis/server.py
• Primary production transport: src/mcp_chassis/transport/stdio.py
Startup, Configuration, and Initialization
Startup loads TOML configuration, applies environment overrides, configures logging/security, builds the server, and initializes the external SOLVE-IT dataset. solveit_data_path identifies a separately cloned SOLVE-IT repository; it is the core external data dependency.
• Configuration model/loading: src/mcp_chassis/config.py
• Default deployment configuration: config/default.toml
• SOLVE-IT bootstrap and degraded-mode behavior: src/mcp_chassis/extensions/solveit_init.py
When init_required is true, failed KB loading terminates startup. Otherwise, the server remains available in degraded mode with status reporting.
Chassis Server and Request Dispatch
ChassisServer is the application boundary between MCP protocol events, registered extensions/tools, middleware, and a chosen transport. Tool registration is conditional: full-detail list tools and search parameters are exposed only when enabled by app configuration.
• Orchestrator: src/mcp_chassis/server.py
• Extension registration namespace: src/mcp_chassis/extensions/__init__.py
• Tool handlers/registration: src/mcp_chassis/extensions/tools/solveit_tools.py
The MCP client invokes a tool; the server applies middleware before handing sanitized, validated inputs to a SOLVE-IT handler, which queries loaded in-memory/library-backed knowledge-base data and returns MCP-compatible results.
SOLVE-IT Knowledge-Base Adapter
The domain extension wraps SOLVE-IT’s own library and datasets rather than owning the forensic taxonomy. It exposes techniques, weaknesses, mitigations, objectives, mappings, citations, cross-entity relationships, full-text search, extension state, and load status.
• Data initialization and loader integration: src/mcp_chassis/extensions/solveit_init.py
• Domain tool API: src/mcp_chassis/extensions/tools/solveit_tools.py
• Batch-related extension support: src/mcp_chassis/extensions/batch.py
Optional SOLVE-IT-X extension datasets are loaded according to application configuration. Objective mappings are selected from the external repository’s data/ directory.
Security Middleware Boundary
All tool requests cross an ordered defensive pipeline: I/O limits, authentication, rate limiting, sanitization, then validation. This is the main trust boundary between MCP client input and domain handlers.
• Pipeline composition/order: src/mcp_chassis/middleware/pipeline.py
• Auth and rate enforcement: src/mcp_chassis/security/auth.py, src/mcp_chassis/security/rate_limiter.py
• Input/output bounds and sanitization: src/mcp_chassis/security/io_limits.py, src/mcp_chassis/security/sanitization.py
• Profiles and schema validation: src/mcp_chassis/security/profiles.py, src/mcp_chassis/security/validation.py
Security profiles define baseline limits and behavior; TOML/environment values can override them.
Transport and Operational Interfaces
The transport abstraction separates protocol serving from server logic. Stdio is the implemented production interface for MCP-hosted subprocesses; an HTTP implementation is explicitly a stub.
• Transport contract: src/mcp_chassis/transport/base.py
• Stdio implementation: src/mcp_chassis/transport/stdio.py
• HTTP placeholder: src/mcp_chassis/transport/http_stub.py
Health/diagnostics, structured logging, request context, and normalized error handling support operation without changing tool semantics.
• Health reporting: src/mcp_chassis/diagnostics/health.py
• Logging/context/errors: src/mcp_chassis/logging_config.py, src/mcp_chassis/context.py, src/mcp_chassis/errors.py
Material Dependencies and Infrastructure
Runtime is Python with MCP (mcp>=1.6,<2 per README), Pydantic, and Pybtex. Deployment can run directly through Python or containerize via Dockerfile. No database, HTTP service, or cloud dependency is indicated; persistence and authoritative content remain in the externally supplied SOLVE-IT filesystem checkout.
Main entry points: server.py ChassisServer · config.py Configuration · pipeline.py Defensive pipeline · solveit_init.py SOLVE-IT bootstrap
Components 15
Startup
- Launchers
run.py - Configuration
src/mcp_chassis/config.py - Default configuration
config/default.toml
MCP Runtime
- ChassisServer · Connects protocol events, middleware, extensions, and transport.
src/mcp_chassis/server.py - Stdio transport · Serves MCP as a subprocess over standard I/O.
src/mcp_chassis/transport/stdio.py - Transport contract
src/mcp_chassis/transport/base.py - HTTP placeholder
src/mcp_chassis/transport/http_stub.py
Trust Boundary
- Defensive pipeline · Applies I/O limits, auth, rate limiting, sanitization, and validation.
src/mcp_chassis/middleware/pipeline.py - Security controls · Profiles and configuration determine enforcement behavior.
src/mcp_chassis/security/auth.py
SOLVE-IT Adapter
- SOLVE-IT tools · Registers configurable query, navigation, search, citation, and status tools.
src/mcp_chassis/extensions/tools/solveit_tools.py - Extension registry
src/mcp_chassis/extensions/__init__.py - SOLVE-IT bootstrap · Loads the external checkout and selects degraded or fail-fast startup behavior.
src/mcp_chassis/extensions/solveit_init.py - SOLVE-IT checkout · Authoritative datasets and library remain in a separately cloned filesystem repository.
Operations
- Health reporting · Reports extension state and dataset load status.
src/mcp_chassis/diagnostics/health.py - Runtime support · Provides structured logging, request context, and normalized errors.
src/mcp_chassis/logging_config.py
Connections 17
- Launchers → Configuration: loads
- Default configuration → Configuration: defaults
- Configuration → ChassisServer: builds
- Configuration → SOLVE-IT bootstrap: configures loading
- SOLVE-IT bootstrap → SOLVE-IT checkout: loads
- SOLVE-IT bootstrap → ChassisServer: initializes extension
- ChassisServer → Transport contract: uses
- Stdio transport → Transport contract: implements
- HTTP placeholder → Transport contract: placeholder for
- ChassisServer → Defensive pipeline: routes tool requests through
- Defensive pipeline → Security controls: enforces via
- Defensive pipeline → SOLVE-IT tools: validated requests
- Extension registry → SOLVE-IT tools: registers
- ChassisServer → Extension registry: loads extensions
- SOLVE-IT tools → SOLVE-IT checkout: queries
- ChassisServer → Health reporting: exposes status
- ChassisServer → Runtime support: uses