chore(mcp): convert tutorial mcp server to use the rust sdk for mcp (#4665)

This commit is contained in:
Alex Hancock
2025-09-17 15:53:07 -04:00
committed by GitHub
parent 40f2b06f7e
commit 1cbce45dc6
4 changed files with 174 additions and 135 deletions
+15 -2
View File
@@ -1,6 +1,6 @@
use anyhow::{anyhow, Result};
use goose_mcp::{
AutoVisualiserRouter, ComputerControllerRouter, DeveloperServer, MemoryRouter, TutorialRouter,
AutoVisualiserRouter, ComputerControllerRouter, DeveloperServer, MemoryRouter, TutorialServer,
};
use mcp_server::router::RouterService;
use mcp_server::{BoundedService, ByteTransport, Server};
@@ -28,6 +28,7 @@ pub async fn run_server(name: &str) -> Result<()> {
tracing::info!("Starting MCP server");
// Handle RMCP-based servers
if name == "developer" {
let service = DeveloperServer::new()
.serve(stdio())
@@ -52,10 +53,22 @@ pub async fn run_server(name: &str) -> Result<()> {
return Ok(());
}
if name == "tutorial" {
let service = TutorialServer::new()
.serve(stdio())
.await
.inspect_err(|e| {
tracing::error!("serving error: {:?}", e);
})?;
service.waiting().await?;
return Ok(());
}
// Handle old MCP-based servers
let router: Option<Box<dyn BoundedService>> = match name {
"computercontroller" => Some(Box::new(RouterService(ComputerControllerRouter::new()))),
"memory" => Some(Box::new(RouterService(MemoryRouter::new()))),
"tutorial" => Some(Box::new(RouterService(TutorialRouter::new()))),
_ => None,
};