Jokes MCP Server

Jokes MCP Server

A Model Context Protocol server that provides Chuck Norris and Dad jokes, demonstrating how to integrate MCP servers with Microsoft Copilot Studio and GitHub Copilot.

Category
访问服务器

README

Microsoft Copilot Studio ❤️ MCP

Welcome to the Microsoft Copilot Studio ❤️ MCP lab. In this lab, you will learn how to deploy an MCP Server, and how to add it to Microsoft Copilot Studio.

❓ What is MCP?

Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to LLMs, defined by Anthropic. MCP provides a standardized way to connect AI models to different data sources and tools. MCP allows makers to seamlessly integrate existing knowledge servers and APIs directly into Copilot Studio.

Currently, Copilot Studio only supports Tools. To learn more about current capabilities, see aka.ms/mcsmcp. There are some known issues & planned improvements. These are listed here.

🆚 MCP vs Connectors

When do you use MCP? And when do you use connectors? Will MCP replace connectors?

MCP servers are made available to Copilot Studio using connector infrastructure, so these questions are not really applicable. The fact that MCP servers use the connector infrastructure means they can employ enterprise security and governance controls such as Virtual Network integration, Data Loss Prevention controls, multiple authentication methods—all of which are available in this release—while supporting real-time data access for AI-powered agents.

So, MCP and connectors are really better together.

⚙️ Prerequisites

  • Visual Studio Code installed (link)
  • Node v22 (ideally installed via nvm for Windows or nvm)
  • Git installed (link)
  • Docker installed (link)
  • Azure Developer CLI installed (link)
  • Azure Subscription (with payment method added)
  • GitHub account
  • Copilot Studio trial or developer account

➕ Create a new GitHub repository based on the template

  1. Select Use this template

  2. Select Create a new repository

  3. Select the right Owner (it might already be selected when you have only one owner to choose from)

  4. Give it a Repository name

  5. Optionally you can give it a Description

  6. Select Private

  7. Select Create repository

    This will take a little while. After it's done, you will be directed to the newly created repository.

⚖️ Choice: Run the server locally or deploy to Azure

Now you have a choice! You either run the server locally - or you can deploy it to Azure.

There are a couple of steps that you need to do for both:

  1. Clone this repository by running the following command (replace {account} by your own GitHub account name):

    git clone https://github.com/{account}/mcsmcp.git

  2. Open Visual Studio Code and open the cloned folder

  3. Open the terminal and navigate to the cloned folder

🏃‍♀️ Run the MCP Server Locally

  1. Run npm install

  2. Run npm run build && npm run start

    Terminal view after building and starting the server

  3. Select PORTS at the top of the Visual Studio Code Terminal

    Image of VS Code where the terminal is open and the PORTS tab is highlighted

  4. Select the green Forward a Port button

    Image of VS Code where the PORTS tab is open and the green  button is highlighted

  5. Enter 3000 as the port number (this should be the same as the port number you see when you ran the command in step 5). You might be prompted to sign in to GitHub, if so please do this, since this is required to use the port forwarding feature.

  6. Right click on the row you just added and select Port visibility > Public to make the server publicly available

  7. Ctrl + click on the Forwarded address, which should be something like: https://something-3000.something.devtunnels.ms

  8. Select Copy on the following pop-up to copy the URL

    View of the PORTS setup with highlighted the port, the forwarded address and the visibility

  9. Open to the browser of your choice and paste the URL in the address bar, type /mcp behind it and hit enter

If all went well, you will see the following error message:

{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}

Don't worry - this error message is nothing to be worried about!

🌎 Deploy to Azure

[!IMPORTANT] As listed in the prerequisites, the Azure Developer CLI needs to be installed on your machine for this part.

Make sure to login to Azure Developer CLI if you haven't done that yet.

azd auth login

[!WARNING]
After running azd up, you will have an MCP Server running on Azure that is publicly available. Ideally, you don't want that. Make sure to run azd down after finishing the lab to delete all the resources from your Azure subscription. Learn how to run azd down by going to this section.

Run the following command in the terminal:

azd up

For the unique environment name, enter mcsmcplab or something similar. Select the Azure Subscription to use and select a value for the location. After that, it will take a couple of minutes before the server has been deployed. When it's done - you should be able to go to the URL that's listed at the end and add /mcp to the end of that URL.

Azd deploy server output

You should again see the following error:

{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}

👨‍💻 Use the Jokes MCP Server in Visual Studio Code / GitHub Copilot

To use the Jokes MCP Server, you need to use the URL of your server (can be either your devtunnel URL or your deployed Azure Container App) with the /mcp part at the end and add it as an MCP Server in Visual Studio Code.

  1. Press either ctrl + shift + P (Windows/Linux) or cmd + shift + P (Mac) and type MCP

  2. Select MCP: Add Server...

  3. Select HTTP (HTTP or Server-Sent Events)

  4. Paste the URL of your server in the input box (make sure /mcp in the end is included)

  5. Press Enter

  6. Enter a name for the server, for instance JokesMCP

  7. Select User Settings to save the MCP Server settings in your user settings

    This will add an MCP Server to your settings.json file. It should look like this: settings.json file

  8. Open GitHub Copilot

  9. Switch from Ask to Agent

  10. Make sure the JokesMCP server actions are selected when you select the tools icon:

    Tools menu in GitHub Copilot

  11. Ask the following question:

    Get a chuck norris joke from the Dev category
    

This should give you a response like this:

Screenshot of question to provide a joke from the dev category and the answer from GitHub Copilot

Now you have added the JokesMCP server to Visual Studio Code!

👨‍💻 Use the Jokes MCP Server in Microsoft Copilot Studio

Import the Connector

  1. Go to https://make.preview.powerapps.com/customconnectors (make sure you’re in the correct environment) and click + New custom connector.

  2. Select Import from GitHub

  3. Select Custom as Connector Type

  4. Select dev as the Branch

  5. Select MCP-Streamable-HTTP as the Connector

  6. Select Continue

    View of the import from GitHub section

  7. Change the Connector Name to something appropriate, like for instance Jokes MCP

  8. Change the Description to something appropriate

  9. Paste your root URL (for instance something-3000.something.devtunnels.ms or something.azurecontainerapps.io) in the Host field

  10. Select Create connector

[!WARNING]
You may see a warning and an error upon creation – it should be resolved soon - but you can ignore it for now.

  1. Close the connector

Create an agent and add the MCP server as a tool

  1. Go to https://copilotstudio.preview.microsoft.com/

  2. Select the environment picker at the top right corner

  3. Select the right environment (the environment with the Get new features early toggle switched on)

  4. Select Create in the left navigation

  5. Select the blue New agent button

    New agent

  6. Select the Configure tab on the left

    Configure

  7. Change the name to Jokester

  8. Add the following Description

    A humor-focused agent that delivers concise, engaging jokes only upon user request, adapting its style to match the user's tone and preferences. It remains in character, avoids repetition, and filters out offensive content to ensure a consistently appropriate and witty experience.
    
  9. Add the following Instructions

    You are a joke-telling assistant. Your sole purpose is to deliver appropriate, clever, and engaging jokes upon request. Follow these rules:
    
    * Respond only when the user asks for a joke or something related (e.g., "Tell me something funny").
    * Match the tone and humor preference of the user based on their input—clean, dark, dry, pun-based, dad jokes, etc.
    * Never break character or provide information unrelated to humor.
    * Keep jokes concise and clearly formatted.
    * Avoid offensive, discriminatory, or NSFW content.
    * When unsure about humor preference, default to a clever and universally appropriate joke.
    * Do not repeat jokes within the same session.
    * Avoid explaining the joke unless explicitly asked.
    * Be responsive, witty, and quick.
    
  10. Select Continue on the top right

    Click continue to create agent

  11. Enable Generative AI Orchestration

    Turn on orchestration

  12. Disable general knowledge in the Knowledge section

    Turn off general knowledge

  13. Select Tools in the top menu

    Tools

  14. Select Add a tool

    Add a tool

  15. Select the Model Context Protocol tab to filter all the Model Context Protocol Servers (see number 1 in the screenshot below)

  16. Select the Jokes MCP server (see number 2 in the screenshot below)

    MCP

  17. Create a new connection by selecting the Not connected and Create new Connection

    Action and connection

  18. Select Create

    Create connection

  19. Select Add to agent to add the tool to the agent

    Add tool to agent

  20. Select the refresh icon in the Test your agent pane

    Refresh testing pane

  21. In the Test your agent pane send the following message:

    Can I get a Chuck Norris joke?
    

    This will show you message that additional permissions are required to run this action. This is because of the user authentication in the action wizard.

  22. Select Connect

    Additional permissions

    This will open a new window where you can manage your connections for this agent.

  23. Select Connect next to the JokesMCP

    Connect to JokesMCP

  24. Wait until the connection is created and select Submit

    Pick a connection

  25. The connection should now be connected, so the status should be set to Connected

    Status connected

  26. Close the manage your connections tab in your browser

    Now you should be back in the Jokester agent screen.

  27. Select the refresh icon in the Test your agent pane

    Refresh testing pane

  28. In the Test your agent pane send the following message:

    Can I get a Chuck Norris joke?
    

    This will now show a Chuck Norris joke - instead of the additional permissions. If that's not the case - you probably have missed the prerequisite that the environment needs to have the get new features early toggle on.

    Chuck Norris joke

  29. In the Test your agent pane send the following message:

    Can I get a Dad joke?
    

    This will now show a Dad joke.

    Dad joke

And that was the Jokes MCP Server working in Microsoft Copilot Studio.

❌ Remove the Azure resources

To remove the Azure resources after finishing the lab, run the following command in the terminal:

azd down

This command will show you the resources that will be deleted and then ask you to confirm. Confirm with y and the resources will be deleted. This can take a couple of minutes, but at the end you will see a confirmation:

resources deleted

💡 Known issues and planned improvements

There are some known issues and planned improvements for MCP in Microsoft Copilot Studio. They are listed in this Microsoft Learn article.

🗣️ Feedback

Hopefully you liked the lab. Please take the time to fill in our feedback form to tell us how we can improve!

🚀 Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

™️ Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Microsoft Copilot Studio ❤️ MCP

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选