本实验将帮助您在 Microsoft Copilot Studio 中设置 Jokes MCP Server,与 Copilot 交互获取笑话,并深入理解 MCP 服务器在 Copilot Studio 中的工作原理。通过完成实验,您可以在 Copilot Studio 集成并运行 Jokes MCP Server,还能使用不同命令从多个来源获取各类笑话。
本实验将指导您完成以下步骤:
通过本实验,您将能够:
jokes-mcp-server
。// jokes-mcp-server.ts
import { Agent } from '@modelcontextprotocol/typescript-sdk';
const agent = new Agent();
agent.on('input', async (input) => {
if (input.toLowerCase().includes('chuck norris')) {
return getChuckNorrisJoke();
} else if (input.toLowerCase().includes('dad joke')) {
return getDadJoke();
} else if (input.toLowerCase().includes('yo mama')) {
return getYoMamaJoke();
}
});
async function getChuckNorrisJoke() {
// 实现从 chucknorris.io 获取笑话的逻辑
}
async function getDadJoke() {
// 实现从 icanhazdadjoke.com 获取笑话的逻辑
}
async function getYoMamaJoke() {
// 实现从 yomama-jokes.com 获取笑话的逻辑
}
jokes-mcp-server
模块。在 Copilot Studio 的聊天界面中输入以下内容:
/get-chuck-joke
/get-dad-joke
/get-yo-mama-joke
“为什么 Chuck Norris 不需要 GPS?因为他知道每个方向都是他的名字。”
“为什么数学书总是很悲伤?因为它有太多的问题!”
“为什么 Yo Mama 的聚会总是很安静?因为她只邀请了她自己和她的影子!”
输入以下命令以获取所有可用的笑话来源:
/sources
jokes-mcp-server.ts
中添加新的笑话源。// jokes-mcp-server.ts
async function getCatDogJoke() {
// 实现从 catdog-jokes.com 获取笑话的逻辑
}
无法获取笑话
错误信息
async function getChuckNorrisJoke() {
try {
// 获取笑话的逻辑
} catch (error) {
console.error('获取 Chuck Norris 笑话时出错:', error);
return '抱歉,无法获取当前笑话。';
}
}
let lastChuckJoke: string | null = null;
async function getChuckNorrisJoke() {
if (lastChuckJoke) return lastChuckJoke;
// 获取新笑话并更新 lastChuckJoke
}
当前限制
未来改进
如何贡献代码
jokes-mcp-server
仓库。如何报告问题