Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: port over nondeveloper system into mcp server #561

Merged
merged 4 commits into from
Jan 8, 2025

Conversation

wendytang
Copy link
Collaborator

@wendytang wendytang commented Jan 8, 2025

image

caching:
image

websearch:
image

note:

  • tested with hardcoded goose session, overriding developer server
  • implementation for how we add servers left as a discussion topic/follow-up
  • also running into token limits with web scraping

baxen and others added 3 commits January 7, 2025 15:29
Introduces a trait alias to make that easier across the code base too
@wendytang wendytang changed the title Wtang/nondev server rebased feat: port over nondeveloper system into mcp server Jan 8, 2025
@wendytang wendytang marked this pull request as ready for review January 8, 2025 20:01
Copy link

github-actions bot commented Jan 8, 2025

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Copy link
Collaborator

@michaelneale michaelneale left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wendytang looks good I think - can you test it out in GUI by adding it to https://github.com/block/goose/blob/v1.0/ui/desktop/src/ChatWindow.tsx#L330 and checking it works as you expect? If that is ok, then this looks great!

use tokio::io::{stdin, stdout};

pub async fn run_server(name: &str) -> Result<()> {
tracing::info!("Starting MCP server");

let router = match name {
"developer" => Some(RouterService(DeveloperRouter::new())),
let router: Option<Box<dyn BoundedService>> = match name {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wendytang just wanted to confirm - this means that both cli and GUI can enable the toolkit if they want via the standard way?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good q, was going to try tackling enablement as a follow-up. the nondeveloper server as it stands here is off by default

@wendytang wendytang merged commit 5743413 into v1.0 Jan 8, 2025
6 checks passed
@salman1993 salman1993 mentioned this pull request Jan 9, 2025
michaelneale added a commit that referenced this pull request Jan 9, 2025
* v1.0:
  feat: Implement a simplified reference agent and dev toolkit (#564)
  fix: sanitize server names for passing into model tool calls (#563)
  added a new mcp system + refactor to support it (#552)
  feat: port over nondeveloper system into mcp server (#561)
  fix: check server capability when client sends requests (#558)
  fix: update instructions (#557)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants