mcp_server: Unix socket server for external tool access
Exposes memory/journal tools over ~/.consciousness/mcp.sock via JSON-RPC 2.0 (MCP protocol). External processes (consciousness-mcp, poc-memory) will connect here instead of accessing the store directly. Handles: initialize, tools/list, tools/call Dispatches to the same tool handlers the agent uses internally. Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
parent
72f4f1b617
commit
2c0f2065e0
3 changed files with 268 additions and 0 deletions
|
|
@ -212,10 +212,20 @@ async fn start(cli: crate::user::CliArgs) -> Result<()> {
|
|||
})
|
||||
.expect("spawn UI thread");
|
||||
|
||||
// Start MCP server for external tool access
|
||||
let mut tools: Vec<crate::agent::tools::Tool> = Vec::new();
|
||||
tools.extend(crate::agent::tools::memory::memory_tools());
|
||||
tools.extend(crate::agent::tools::memory::journal_tools());
|
||||
if let Err(e) = crate::mcp_server::start(tools).await {
|
||||
eprintln!("MCP server failed to start: {:#}", e);
|
||||
}
|
||||
|
||||
// Mind event loop — runs on the main tokio runtime
|
||||
mind.init().await;
|
||||
mind.run(mind_rx, turn_rx).await;
|
||||
|
||||
crate::mcp_server::cleanup();
|
||||
|
||||
ui_handle.join().unwrap_or_else(|_| Err(anyhow::anyhow!("UI thread panicked")))
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue