Skip to content

Commit 3e1557b

Browse files
authored
feat: autovisualiser of structured data with mcp-ui (aaif-goose#4153)
1 parent cfa0bed commit 3e1557b

21 files changed

Lines changed: 4378 additions & 2 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,5 +65,6 @@ do_not_version/
6565
# Error log artifacts from mcp replay tests
6666
crates/goose/tests/mcp_replays/*errors.txt
6767

68+
.gromastate
6869
# Nix build output
6970
result

crates/goose-cli/src/commands/configure.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ fn get_display_name(extension_id: &str) -> String {
3232
match extension_id {
3333
"developer" => "Developer Tools".to_string(),
3434
"computercontroller" => "Computer Controller".to_string(),
35+
"autovisualiser" => "Auto Visualiser".to_string(),
3536
"memory" => "Memory".to_string(),
3637
"tutorial" => "Tutorial".to_string(),
3738
"jetbrains" => "JetBrains".to_string(),
@@ -747,6 +748,11 @@ pub fn configure_extensions_dialog() -> Result<(), Box<dyn Error>> {
747748
// TODO we'll want a place to collect all these options, maybe just an enum in goose-mcp
748749
"built-in" => {
749750
let extension = cliclack::select("Which built-in extension would you like to enable?")
751+
.item(
752+
"autovisualiser",
753+
"Auto Visualizer",
754+
"Data visualization and UI generation tools",
755+
)
750756
.item(
751757
"computercontroller",
752758
"Computer Controller",

crates/goose-cli/src/commands/mcp.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
use anyhow::{anyhow, Result};
2-
use goose_mcp::{ComputerControllerRouter, DeveloperRouter, MemoryRouter, TutorialRouter};
2+
use goose_mcp::{
3+
AutoVisualiserRouter, ComputerControllerRouter, DeveloperRouter, MemoryRouter, TutorialRouter,
4+
};
35
use mcp_server::router::RouterService;
46
use mcp_server::{BoundedService, ByteTransport, Server};
57
use tokio::io::{stdin, stdout};
@@ -28,6 +30,7 @@ pub async fn run_server(name: &str) -> Result<()> {
2830
let router: Option<Box<dyn BoundedService>> = match name {
2931
"developer" => Some(Box::new(RouterService(DeveloperRouter::new()))),
3032
"computercontroller" => Some(Box::new(RouterService(ComputerControllerRouter::new()))),
33+
"autovisualiser" => Some(Box::new(RouterService(AutoVisualiserRouter::new()))),
3134
"memory" => Some(Box::new(RouterService(MemoryRouter::new()))),
3235
"tutorial" => Some(Box::new(RouterService(TutorialRouter::new()))),
3336
_ => None,

0 commit comments

Comments
 (0)