Skip to main content

Crate do_memory_mcp

Crate do_memory_mcp 

Source
Expand description

§Memory MCP (Model Context Protocol) Integration

This crate provides MCP server integration for the self-learning memory system, enabling memory queries and pattern analysis through standardized tool interfaces.

§Features

  • MCP Server: Standard MCP server implementation with tool definitions
  • Memory Integration: Query episodic memory and analyze patterns
  • Progressive Disclosure: Tools are prioritized based on usage patterns
  • Execution Monitoring: Detailed statistics and logging

§Example

use do_memory_core::SelfLearningMemory;
use do_memory_mcp::server::MemoryMCPServer;
use do_memory_mcp::types::SandboxConfig;
use std::sync::Arc;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Create memory and server
    let memory = Arc::new(SelfLearningMemory::new());
    let server = MemoryMCPServer::new(SandboxConfig::default(), memory).await?;

    // List available tools
    let tools = server.list_tools().await;
    for tool in tools {
        println!("Tool: {} - {}", tool.name, tool.description);
    }

    Ok(())
}

§Architecture

┌─────────────────────────────────────────────────────────┐
│                    MCP Server                           │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐ │
│  │ Query Memory │  │ Analyze      │  │ Execute      │ │
│  │              │  │ Patterns     │  │ Operations   │ │
│  └──────────────┘  └──────────────┘  └──────────────┘ │
└───────────────────────┬─────────────────────────────────┘
                        │
         ┌──────────────┴──────────────┐
         ▼                             ▼
┌─────────────────┐          ┌──────────────────┐
│  Memory System  │          │  Monitoring      │
│  - Episodes     │          │  - Metrics       │
│  - Patterns     │          │  - Health        │
│  - Heuristics   │          │                  │
└─────────────────┘          └──────────────────┘

Re-exports§

pub use batch::BatchExecutor;
pub use batch::BatchMode;
pub use batch::BatchOperation;
pub use batch::BatchRequest;
pub use batch::BatchResponse;
pub use batch::BatchStats;
pub use batch::DependencyGraph;
pub use batch::OperationError;
pub use batch::OperationResult;
pub use cache::CacheConfig;
pub use cache::CacheStats;
pub use cache::QueryCache;
pub use error::Error;
pub use error::Result;
pub use sandbox::CodeSandbox;
pub use sandbox::FileSystemRestrictions;
pub use sandbox::IsolationConfig;
pub use sandbox::NetworkRestrictions;
pub use server::MemoryMCPServer;
pub use server::audit::AuditConfig;
pub use server::audit::AuditDestination;
pub use server::audit::AuditLogEntry;
pub use server::audit::AuditLogLevel;
pub use server::audit::AuditLogger;
pub use types::ErrorType;
pub use types::ExecutionContext;
pub use types::ExecutionResult;
pub use types::ExecutionStats;
pub use types::ResourceLimits;
pub use types::SandboxConfig;
pub use types::SecurityViolationType;
pub use types::Tool;

Modules§

batch
Batch request processing for MCP server
cache
Query result caching for MCP operations
error
Error types for MCP operations
jsonrpc
mcp
MCP Tools Module
monitoring
Monitoring capabilities for MCP server
patterns
Advanced Pattern Analysis Module
protocol
MCP Protocol handlers
sandbox
Secure code execution sandbox
server
MCP server for memory integration
types
MCP types for tool definitions and execution results