mcp_server_collection now also a library

own_assist now bundles the server collection by default
This commit is contained in:
2026-05-14 17:41:39 +02:00
parent 18221b7b56
commit d43498154e
19 changed files with 716 additions and 143 deletions
+23 -4
View File
@@ -10,8 +10,10 @@ use crate::model::create_model_from_config;
use base64::Engine;
use clap::Parser;
use cpal::traits::HostTrait;
use own_assist_common::exit_msg;
use own_assist_common::config_loader::ConfigLoadingError;
use own_assist_common::{exit_msg, init_tracing_subscriber};
use own_mcp::AgentChat;
use tokio::task::JoinHandle;
/// partial mcp client with cli and voice interaction
#[derive(Parser, Debug)]
@@ -64,6 +66,15 @@ async fn chat_loop(mut human_interface: impl HumanInterface, mut agent_chat: Age
}
}
#[cfg(feature = "built-in-mcp-collection")]
fn launch_mcp_server() -> Result<JoinHandle<()>, ConfigLoadingError> {
let config = mcp_server_collection::config::Config::from_file()?;
let handle = tokio::task::spawn(mcp_server_collection::serve(config));
Ok(handle)
}
#[tokio::main]
async fn main() {
let args = Args::parse();
@@ -72,10 +83,15 @@ async fn main() {
return;
}
env_logger::init();
init_tracing_subscriber();
#[cfg(feature = "built-in-mcp-collection")]
let mcp_server_task = launch_mcp_server()
.inspect_err(exit_msg!("error loading server.toml"))
.unwrap();
let config = Config::from_file()
.inspect_err(exit_msg!("error loading assist.toml: {}"))
.inspect_err(exit_msg!("error loading assist.toml"))
.unwrap();
let ollama = config.ollama_instance();
@@ -100,7 +116,7 @@ async fn main() {
.unwrap();
config.set_tool_permissions(&mut agent_chat).await.unwrap();
log::info!(
log::debug!(
"all tools: {:#?}",
agent_chat.get_all_tools().collect::<Vec<_>>()
);
@@ -131,4 +147,7 @@ async fn main() {
};
}
};
#[cfg(feature = "built-in-mcp-collection")]
mcp_server_task.await.unwrap();
}