Jokes MCP Server

by VoltScp
MIT License

Integrations

  • Allows deploying the MCP server through GitHub integration with Azure Web App's deployment center

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

  • Azure Subscription (with payment method added)
  • Have a GitHub account and be logged in
  • Copilot Studio trial or developer account
  • Power Platform environment provisioned

Lab

To be able to deploy this MCP Server and use it in Microsoft Copilot Studio, you need to go through the following actions:

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
  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.

Warning


After completing the steps in this lab, you will have an MCP Server running on Azure that is publicly available. Ideally, you don't want that. Make sure to delete the Azure Web App after finishing the lab.

Deploy the Azure Web App

  1. Go to portal.azure.com
  2. Hover over the Resource groups tab and select Create
  3. Click the Subscription dropdown and select your subscription from the list
  4. Click in the Resource group name text box and type a resource group name such as "jokesgrp"
  5. Select the Region dropdown choose the region closest to you
  6. Click Review + create
  7. Click Create
  8. Select Go to resource group
  9. Select Create
  10. Click into the search box
  11. Type web app
  12. Select the Create button in the Web App search result
  13. Select Web App
  14. Select the Name text input and put in a name for the web app, such as "wegotjokes"
  15. Select the Runtime stack dropdown and choose Node 22 LTS
  16. Select the Region dropdown and choose the region closest to you
  17. Click Review + create
  18. Click Create
  19. Click Refresh to update your deployment progress
  20. Once deployment is complete, select Go to resource
  21. Expand the Deployment tab
  22. Click Deployment Center
  23. Click the Source dropdown and select GitHub
  24. Select Authorize
  25. Select Continue
  26. Select Authorize AzureAppService
  27. Click the Organization dropdown and choose your organization
  28. Click on the Repository dropdown and choose the GitHub repository you created earlier from the list
  29. Click the Branch dropdown and choose your branch
  30. Keep everything else default and select Save
  31. Click Refresh to update the deployment status
  32. Verify that the deployment is complete

Create the Power Platform Connector

  1. Go to https://make.powerapps.com/
  2. Select More in the left menu
  3. Select the Discover all button
  4. Under Data, select the pin icon next to Custom connectors to pin it to the left menu
  5. Select Custom connectors in the left menu
  6. Select New custom connector
  7. Select Create from blank
  8. Give the connector a name (for instance JokesMCP)
  9. Select the blue Continue button
  10. Select the Swagger editor toggle
  11. Copy the yaml code from here and replace the code in the Swagger editor
  12. In the Swagger editor, replace dummyurl.azurewebsites.net with the URL of the web app you created earlier. Make sure to remove https:// and everything after azurewebsites.net
  13. Select Create connector to create the connector

Add the MCP Server as an action in Microsoft Copilot Studio

Now you have an MCP Server running in Azure, and a connector available in the Power Platform. This step is about creating an agent in Microsoft Copilot Studio and adding the MCP Server to the agent.

  1. Go to https://copilotstudio.microsoft.com
  2. Select the environment picker at the top right corner
  3. Select the right environment
  4. Select Create in the left navigation
  5. Select the blue New agent button
  6. Select Skip to configure on the top right
  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 Create on the top right
  11. Enable Generative AI Orchestration
  12. Disable general knowledge in the Knowledge section
  13. Select Actions in the top menu
  14. Select Add an action
  15. Search for the name (in this case, jokes) of the connector you created earlier (see number 1 in the screenshot below)
  16. Select the Jokes MCP server (see number 2 in the screenshot below)
  17. Wait for the connection to be created and select Next when it's done
  18. Change the Description for the agent to know when to use this action to the following text:
    Trigger this action when a user asks for a joke. It can provide Chuck Norris jokes, Dad jokes and Yo Mama jokes.
    Leave the rest as default, like for instance end user authentication, where you will learn more about in a minute.
  19. Select Add action to add the action to the agent
  20. Select the refresh icon in the Test your agent 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 This will open a new window where you can manage your connections for this agent.
  23. Select Connect next to the JokesMCP
  24. Wait until the connection is created and select Submit
  25. The connection should now be connected, so the status should be set to 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
  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.
  29. In the Test your agent pane send the following message:
    Can I get a Dad joke?
    This will now show a Dad joke.
  30. In the Test your agent pane send the following message:
    Can I get a Yo Mama joke?
    This will now show a Yo Mama joke.

And that was the Jokes MCP Server working in Microsoft Copilot Studio. This is also the end of the lab! Hopefully you liked the lab. Please take the time to fill in our feedback form.

Jokes MCP Server details

This is a MCP server built on the TypeScript SDK.

With this MCP Server, you will able to fetch jokes from the following websites:

If you want to run the server locally, make sure to run npm install in the root of the repository.

After that you can run npm run build to build the server and npm start to start the server.

Tools

The following tools are included:

get-chuck-joke

This tool retrieves a random Chuck Norris Joke from chucknorris.io.

get-chuck-categories

This tool retrieves the available categories from chucknorris.io.

get-dad-joke

This tool retrieves a random Dad Joke from icanhazdadjoke.com.

get-yo-mama-joke

This tool retrieves a random Yo Mama Joke from yomama-jokes.com.

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.

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.

-
security - not tested
A
license - permissive license
-
quality - not tested

A Model Context Protocol server that enables Microsoft Copilot Studio to fetch jokes from various sources including Chuck Norris jokes, Dad jokes, and Yo Mama jokes.

  1. What is MCP?
    1. MCP vs Connectors
      1. Prerequisites
        1. Lab
          1. Create a new GitHub repository based on the template
          2. Deploy the Azure Web App
          3. Create the Power Platform Connector
          4. Add the MCP Server as an action in Microsoft Copilot Studio
        2. Jokes MCP Server details
          1. Tools
            1. get-chuck-joke
            2. get-chuck-categories
            3. get-dad-joke
            4. get-yo-mama-joke
          2. Known issues and planned improvements
            1. Contributing
              1. Trademarks

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  A Model Context Protocol server that enables retrieval of transcripts from YouTube videos. This server provides direct access to video transcripts and subtitles through a simple interface, making it ideal for content analysis and processing.
                  Last updated -
                  1
                  258
                  10
                  TypeScript
                  MIT License
                  • Linux
                  • Apple
                • -
                  security
                  F
                  license
                  -
                  quality
                  A Model Context Protocol server that enables Language Learning Models to interact with FogBugz, allowing operations like creating and updating issues, assigning cases, listing open cases, and searching through natural language.
                  Last updated -
                  TypeScript
                • -
                  security
                  -
                  license
                  -
                  quality
                  A joke/demo Model Context Protocol server that injects cringe-worthy advertisements into LLM responses, showcasing both how to build MCP servers and the risks of ad-injecting intermediaries.
                  Last updated -
                  TypeScript
                  MIT License
                • -
                  security
                  A
                  license
                  -
                  quality
                  An MCP server that enables Microsoft Copilot Studio to fetch jokes from multiple sources including Chuck Norris jokes, Dad jokes, and Yo Mama jokes.
                  Last updated -
                  TypeScript
                  MIT License

                View all related MCP servers

                ID: lp7af3xkle