mirror of
https://github.com/block/goose.git
synced 2026-04-29 20:19:41 +00:00
E2E: added provider switching and MCP testing (#2029)
This commit is contained in:
parent
e0baf577fc
commit
4ea14d0766
5 changed files with 927 additions and 141 deletions
71
ui/desktop/tests/e2e/basic-mcp.ts
Normal file
71
ui/desktop/tests/e2e/basic-mcp.ts
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
const { McpServer } = require("@modelcontextprotocol/sdk/server/mcp.js");
|
||||
const { StdioServerTransport } = require("@modelcontextprotocol/sdk/server/stdio.js");
|
||||
|
||||
// Collection of running-related inspirational quotes
|
||||
const runningQuotes = [
|
||||
{
|
||||
quote: "The miracle isn't that I finished. The miracle is that I had the courage to start.",
|
||||
author: "John Bingham"
|
||||
},
|
||||
{
|
||||
quote: "Running is the greatest metaphor for life, because you get out of it what you put into it.",
|
||||
author: "Oprah Winfrey"
|
||||
},
|
||||
{
|
||||
quote: "Pain is temporary. Quitting lasts forever.",
|
||||
author: "Lance Armstrong"
|
||||
},
|
||||
{
|
||||
quote: "Run when you can, walk if you have to, crawl if you must; just never give up.",
|
||||
author: "Dean Karnazes"
|
||||
},
|
||||
{
|
||||
quote: "The only bad workout is the one that didn't happen.",
|
||||
author: "Unknown"
|
||||
},
|
||||
{
|
||||
quote: "Whether you think you can or think you can't, you're right.",
|
||||
author: "Henry Ford"
|
||||
},
|
||||
{
|
||||
quote: "If you want to run, run a mile. If you want to experience a different life, run a marathon.",
|
||||
author: "Emil Zatopek"
|
||||
},
|
||||
{
|
||||
quote: "The voice inside your head that says you can't do this is a liar.",
|
||||
author: "Unknown"
|
||||
}
|
||||
];
|
||||
|
||||
async function startServer() {
|
||||
const server = new McpServer({
|
||||
name: "Running Quotes",
|
||||
version: "1.0.0"
|
||||
});
|
||||
|
||||
server.tool("runningQuote",
|
||||
"Generates an inspirational running quote",
|
||||
async () => {
|
||||
const randomQuote = runningQuotes[Math.floor(Math.random() * runningQuotes.length)];
|
||||
return {
|
||||
content: [{
|
||||
type: "text",
|
||||
text: `"${randomQuote.quote}" - ${randomQuote.author}`
|
||||
}]
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
// Start receiving messages on stdin and sending messages on stdout
|
||||
const transport = new StdioServerTransport();
|
||||
await server.connect(transport);
|
||||
}
|
||||
|
||||
// Only start the server if this is the main module
|
||||
if (require.main === module) {
|
||||
startServer().catch(console.error);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
runningQuotes
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue