terminal-mcp 0.1.6

Model Context Protocol (MCP) server for long-lived shell execution.

// src/service/mod.rs


mod exec;
mod shell;
mod prompts;
mod session;

use crate::shell_registry::ShellRegistry;
use rmcp::handler::server::router::{prompt::PromptRouter, tool::ToolRouter};

#[derive(Clone)]
pub struct TerminalMcpService {
    pub(crate) registry: ShellRegistry,
    pub(crate) tool_router: ToolRouter<Self>,
    pub(crate) prompt_router: PromptRouter<Self>,
}

impl TerminalMcpService {
    pub fn new() -> Self {
        Self {
            registry: ShellRegistry::new(),
            tool_router: Self::exec_tool_router()
                + Self::session_tool_router()
                + Self::io_tool_router()
                + Self::pty_tool_router(),
            prompt_router: Self::prompt_router(),
        }
    }
}

impl Default for TerminalMcpService {
    fn default() -> Self {
        Self::new()
    }
}