Rewrite the developer mcp using the rmcp sdk (#4297)

This commit is contained in:
Angela Ning
2025-09-02 11:24:43 -04:00
committed by GitHub
parent e73b6037a2
commit 6807b6d0a3
11 changed files with 3538 additions and 3647 deletions
+14 -2
View File
@@ -1,9 +1,10 @@
use anyhow::{anyhow, Result};
use goose_mcp::{
AutoVisualiserRouter, ComputerControllerRouter, DeveloperRouter, MemoryRouter, TutorialRouter,
AutoVisualiserRouter, ComputerControllerRouter, DeveloperServer, MemoryRouter, TutorialRouter,
};
use mcp_server::router::RouterService;
use mcp_server::{BoundedService, ByteTransport, Server};
use rmcp::{transport::stdio, ServiceExt};
use tokio::io::{stdin, stdout};
use std::sync::Arc;
@@ -27,8 +28,19 @@ pub async fn run_server(name: &str) -> Result<()> {
tracing::info!("Starting MCP server");
if name == "developer" {
let service = DeveloperServer::new()
.serve(stdio())
.await
.inspect_err(|e| {
tracing::error!("serving error: {:?}", e);
})?;
service.waiting().await?;
return Ok(());
}
let router: Option<Box<dyn BoundedService>> = match name {
"developer" => Some(Box::new(RouterService(DeveloperRouter::new()))),
"computercontroller" => Some(Box::new(RouterService(ComputerControllerRouter::new()))),
"autovisualiser" => Some(Box::new(RouterService(AutoVisualiserRouter::new()))),
"memory" => Some(Box::new(RouterService(MemoryRouter::new()))),