Someone has to be the first one to talk about LLMs controlling our bioreactors… any plans to make an MCP that would call the endpoints for receiving information and controlling the reactor? “Add 10mL of media if the OD has gone above a certain level, but not if you’ve done it within the last half hour” would be pretty cool
Specifically, seems like this grant might be applicable to this: goose grant program | codename goose
Someone has to be the first one to talk about LLMs controlling our bioreactors… any plans to make an MCP that would call the endpoints for receiving information and controlling the reactor?
haha we’ve long ago has the discussion internally, and even got a simple prototype working.
I have an idea for a better solution than our initial prototype, I just need to sit down and get it done.
Happy to see if we can help if there’s a branch/repo anywhere? Or potentially that block grant could fund someone?
With Claude’s help I have an MVP of the MCP server running as a plugin on our pioreactor. You can use an MCP client like goose to connect to the server and access the tools/resources. Repo is here: GitHub - Change-Bio/pioreactor-mcp
You’ll need to forward port 8000 over tailscale:
sudo tailscale serve --bg --http 8000 --set-path /mcp http://localhost:8000/mcp
Then you can use the tailscale address with an MCP client/host. In my case the goose settings look like this:
Future steps are to add more tools/resources, make sure there are safety features embedded, and add some kind of MCP client/host locally on the pioreactor so there can be a chat window in the UI. The latter isn’t a priority for us as we’re happy connecting over tailscale but would make it much more accessible to people. THe local MCP client would just connect to localhost:8000
https://photos.app.goo.gl/dUs8JtNo6MZgvcMS7 - Here’s a video showing what we have so far
Man stuff moves so fast - Goose now has an early implementation of MCP-UI (https://mcpui.dev/) which means that the MCP server can send react to goose to display images etc. Goose Desktop: render UI from tool response embedded resource · Issue #3562 · block/goose · GitHub. Guess an ideal implementation would be for the MCP server to send back components of the existing web UI if necessary? e.g. charts are already rendered so they can just be send back if the user asks for one?
I also wonder whether there’s an application for subagents (Orchestrating 6 Subagents to Build a Collaborative API Playground for Kids | codename goose) here as well - maybe there’s a Goose session that runs constantly that the user can interact with and then subagents that specialise in different activities.
goose/crates/goose-cli/WEB_INTERFACE.md at main · block/goose · GitHub @CamDavidsonPilon didn’t realise that this existed. Suppose it should be possible to use the web server that they use or adapt it into one that’s more integrated with pioreactor?