logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

HumorBot-MCP

A specialized utility providing immediate, amusing anecdotes on request, dynamically tailoring its delivery based on user-specified comedic preferences by sourcing content from premier joke repositories like Chuck Norris facts, 'Dad' jokes, and 'Yo Mama' jokes. Features native integration with Microsoft Copilot Studio for seamless, on-the-fly entertainment.

Author

HumorBot-MCP logo

kkarra111

MIT License

Quick Info

GitHub GitHub Stars 0
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

jokesmcpjokestoolsjoke apiskkarra111 jokesmcpjokesmcp delivers

Microsoft Copilot Studio Integration via Model Context Protocol (MCP)

Greetings from the Microsoft Copilot Studio ❤️ MCP experimentation lab. This guide outlines the procedure for deploying an MCP Server instance and subsequently incorporating it into your Microsoft Copilot Studio agent.

Understanding MCP

Model Context Protocol (MCP) establishes an open, standardized mechanism for applications to furnish contextual data to Large Language Models (LLMs), a specification championed by Anthropic. MCP standardizes the conduits linking AI models to disparate external data repositories and operational tools. This framework empowers solution architects to embed pre-existing knowledge bases and external APIs directly within Copilot Studio environments.

Currently, Copilot Studio's interaction model is focused exclusively on Tools. For details on current feature sets, consult aka.ms/mcsmcp. Note that certain limitations and future enhancements are documented in the section titled Known Constraints and Prospective Enhancements.

MCP Versus Standard Connectors

How do you decide between utilizing MCP and conventional connectors? Will MCP supersede connectors entirely?

MCP servers are surfaced to Copilot Studio via the established connector infrastructure; therefore, these questions present a false dichotomy. Because MCP servers leverage the existing connector framework, they inherently benefit from enterprise-grade security and administrative oversight, including Virtual Network connectivity, Data Loss Prevention mandates, and diverse authentication mechanisms—all available in this iteration—while simultaneously enabling real-time data retrieval for AI-driven agents.

Consequently, MCP and connectors are fundamentally designed to be mutually enhancing.

Prerequisites

  • An active Azure Subscription (with billing information confirmed)
  • A registered GitHub account with active login credentials
  • Access to a Copilot Studio trial or developer license
  • A provisioned Power Platform environment

Deployment Walkthrough

To successfully launch this MCP Server and integrate it into Microsoft Copilot Studio, execute the following sequence of operations:

Create a new GitHub repository based on the template

  1. Navigate to and select Use this template
  2. Follow by selecting Create a new repository

  3. Specify the correct Owner designation

  4. Assign a unique Repository name
  5. Optionally, input a brief Description
  6. Select the Private repository visibility setting
  7. Finalize by selecting Create repository

    This process requires a brief duration. Upon completion, you will be redirected to your newly instantiated repository.

[!WARNING]
Completing the instructions in this tutorial results in a publicly accessible MCP Server hosted on Azure. This is generally undesirable for production environments. Ensure the Azure Web App resource is decommissioned immediately following the lab completion.

Deploy the Azure Web App

  1. Access the Azure portal at portal.azure.com

  2. Position your cursor over the Resource groups tab and select the Create option

  3. Click the Subscription selector and choose your active subscription from the displayed list

  4. Interact with the Resource group name input field and enter an identifier, e.g., "jokesgrp"

  5. Utilize the Region dropdown to select a geographical location proximate to you

  6. Proceed by clicking Review + create

  7. Initiate the deployment via Create

  8. Navigate to Go to resource group

  9. Select Create from the resource group context

  10. Engage the global search box

  11. Input the service identifier: web app

  12. Select the Create button associated with the Web App search result

  13. Confirm the selection of Web App as the resource type

  14. Input a unique identifier into the Name text field, for instance, "wegotjokes"

  15. Access the Runtime stack selector and choose Node 22 LTS

  16. From the Region dropdown, select your nearest operational region

  17. Initiate the final deployment review via Review + create

  18. Start deployment by clicking Create

  19. Click Refresh to monitor the ongoing deployment status

  20. Once the deployment confirms success, select Go to resource

  21. Expand the Deployment panel

  22. Select Deployment Center

  23. In the Source dropdown, designate GitHub

  24. Click Authorize to grant necessary permissions

  25. Select Continue

  26. Authorize the necessary service principal: Authorize AzureAppService

  27. In the Organization dropdown, select your designated GitHub organization

  28. From the Repository dropdown, pick the repository established in the preceding step referenced above

  29. Set the Branch dropdown to your active development branch

  30. Retain all other settings as default and click Save

  31. Click Refresh again to track the continuous deployment pipeline status

  32. Ensure the deployment process has fully concluded

Create the Power Platform Connector

  1. Navigate to the Power Platform interface: https://make.powerapps.com/
  2. In the left navigation pane, select More
  3. Click the Discover all button
  4. Under the Data section, click the pin icon adjacent to Custom connectors to affix it to the primary menu
  5. Select Custom connectors from the left navigation panel
  6. Select the New custom connector option
  7. Choose the Create from blank initiation path

  8. Name the connector (e.g., JokesMCP)

  9. Click the affirmative Continue button
  10. Activate the Swagger editor interface toggle

  11. Import the OpenAPI (Swagger) definition from the file provided in [./assets/connector.yml] and overwrite the existing content in the editor pane.

  12. Within the Swagger configuration, substitute the placeholder value dummyurl.azurewebsites.net with the actual hostname of the Azure Web App deployed previously detailed in the preceding section. Crucially, omit the https:// prefix and truncate any characters following .azurewebsites.net.
  13. Finalize the creation process by selecting Create connector

Add the MCP Server as an action in Microsoft Copilot Studio

At this juncture, you possess a functioning MCP Server hosted in Azure and a corresponding connector registered in Power Platform. This phase involves configuring an agent within Microsoft Copilot Studio and linking it to the newly deployed MCP Server capability.

  1. Access the Copilot Studio portal: https://copilotstudio.microsoft.com
  2. Utilize the environment selector situated in the upper right corner
  3. Confirm the selection of the intended operational environment
  4. In the left-hand menu, select Create
  5. Click the prominent blue New agent button

  6. Opt to Skip to configure using the top-right control

  7. Modify the agent's designation to Jokester

  8. Input the following detailed Description:

    text 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. Input the following comprehensive operational Instructions:

    text 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. Conclude agent instantiation by selecting Create in the upper right corner

  11. Activate the Generative AI Orchestration feature

  12. Deactivate generalized knowledge retrieval within the Knowledge configuration area

  13. Navigate to the Actions section in the top navigation bar

  14. Select Add an action

  15. Search using the designated name (e.g., jokes) of the connector previously established referenced above (observe item 1 in the subsequent visualization)

  16. Select the specific server action: Jokes MCP server (observe item 2 in the subsequent visualization)

  17. Await the successful instantiation of the connection object, then proceed by clicking Next

  18. Revise the descriptive text utilized by the agent to invoke this tool:

    text Trigger this action when a user asks for a joke. It can provide Chuck Norris jokes, Dad jokes and Yo Mama jokes.

Maintain all subsequent settings, including user authentication parameters, which will be addressed shortly.

  1. Finalize the tool integration by selecting Add action

  2. Engage the refresh icon within the Test your agent sidebar

  3. In the Test your agent input area, submit the following query:

    text Can I get a Chuck Norris joke?

    This initial submission will prompt a notification regarding required supplementary permissions due to the action wizard's configuration of user authentication.

  4. Select Connect to manage authentication prerequisites

    This action opens a new browser tab dedicated to managing connections for this specific agent.

  5. Locate the JokesMCP entry and click the corresponding Connect button

  6. Pause until the connection status updates to 'Connected', then click Submit

  7. Verify that the connection status is confirmed as Connected

  8. Close the active connection management tab in your browser to return focus to the Jokester agent interface.

  9. Re-engage the refresh icon in the Test your agent sidebar

  10. In the Test your agent input area, resubmit the original request:

    text Can I get a Chuck Norris joke?

    The agent should now display a Chuck Norris anecdote instead of the permission error message.

  11. In the Test your agent input area, submit the following request:

    text Can I get a Dad joke?

    The system should now return a Dad joke.

  12. In the Test your agent input area, submit the following request:

    text Can I get a Yo Mama joke?

    The system should now return a Yo Mama joke.

This confirms the successful operational deployment of the Jokes MCP Server within the Microsoft Copilot Studio environment. This concludes the instructional lab segment. We appreciate your participation. Kindly consider providing feedback via this dedicated form.

Jokes MCP Server Technical Specifications

This service functions as an MCP implementation built utilizing the official TypeScript SDK.

This specific MCP Server architecture facilitates the retrieval of humorous content from the following online sources: - chucknorris.io - icanhazdadjoke.com - yomama-jokes.com

To execute the server locally, ensure you execute npm install within the repository's primary directory.

Subsequently, utilize npm run build for compilation and npm start to initiate the server process.

Included Operational Tools

The following distinct functionalities are packaged within this server:

get-chuck-joke

This function queries chucknorris.io to fetch a randomly selected Chuck Norris Joke.

get-chuck-categories

This function retrieves the exhaustive list of categorized joke types available from chucknorris.io.

get-dad-joke

This function fetches a random selection from the repository hosted at icanhazdadjoke.com.

get-yo-mama-joke

This function retrieves an instance of a 'Yo Mama' joke sourced from yomama-jokes.com.

Known Constraints and Prospective Enhancements

Information regarding existing technical limitations and planned feature additions for MCP within Microsoft Copilot Studio is documented in this official Microsoft Learn article.

Collaboration Guidelines

This project actively encourages community involvement and feature suggestions. The majority of submissions necessitate agreement to a Contributor License Agreement (CLA), which formally confirms your authority to grant usage rights for your contribution. Further details are available at https://cla.opensource.microsoft.com.

Upon submission of a pull request, a CLA verification bot will automatically determine if a CLA signature is required and will tag the PR accordingly (e.g., status check, commentary). Please adhere to the instructions provided by the bot; this signature requirement is typically a one-time action across all repositories utilizing our CLA framework.

This repository adheres to the Microsoft Open Source Code of Conduct. Consult the Code of Conduct FAQ for supplementary details, or direct inquiries to opencode@microsoft.com.

Trademarks

This codebase may incorporate intellectual property associated with various projects or services. Authorized utilization of Microsoft trademarks or insignia must strictly comply with Microsoft's Trademark & Brand Guidelines. Reproduction of Microsoft marks in derivative works must not induce confusion or imply endorsement by Microsoft. Any usage of third-party trademarks or logos is governed solely by the policies of those respective third parties.

WIKIPEDIA CONTEXT: Tools categorized under business administration encompass all systems, software, regulatory frameworks, computational aids, and systematic approaches employed by entities to navigate evolving market conditions, sustain competitive relevance, and elevate operational effectiveness.

== High-Level Perspective == Specialized instruments exist for nearly every functional division within an enterprise, classifiable by management discipline: e.g., forecasting instruments, workflow management systems, record-keeping utilities, personnel management aids, analytical engines, governance mechanisms, etc. A functional taxonomy might include:

Utilities for data ingestion and integrity checks across all departments. Systems designed for oversight and optimization of operational sequences. Platforms dedicated to data aggregation and strategic insight generation. Contemporary enterprise apparatuses have undergone profound modernization over the preceding decade, driven by rapid technological advancement, often making the selection of optimal business instruments for any given context highly complex. This complexity stems from relentless pressure to reduce expenditure, maximize revenue, deeply comprehend client requirements, and deliver required products precisely in the manner demanded by the consumer. Within this dynamic environment, leadership must adopt a strategic posture toward selecting and deploying business management technologies rather than merely adopting the newest available solution. Managers frequently integrate tools without requisite modification, resulting in systemic instability. Consequently, business management instruments require meticulous selection followed by tailored customization to meet organizational imperatives, reversing the common tendency.

== Prevalent Instruments == In 2013, Bain & Company conducted a global assessment of business tool adoption. The findings reflect how tool outcomes address regional specificities, factoring in market downturns and corporate standing. The ten most frequently cited instruments included:

Strategic planning frameworks Customer relationship management (CRM) suites Employee sentiment assessment tools Competitive benchmarking procedures Balanced scorecard implementation Core competency identification Outsourcing strategies Organizational change management programs Supply chain optimization systems Formalized mission/vision documentation Market segmentation methodologies Total quality management (TQM) principles

== Enterprise Software Applications == A software program or collection of programs utilized by personnel to execute diverse organizational functions is termed business software or an enterprise application. These applications serve to enhance productivity metrics, quantify performance, and conduct various corporate tasks with precision. This software evolution commenced with management information systems (MIS), progressed through enterprise resource planning (ERP), incorporated customer relationship management (CRM), and has now predominantly transitioned into cloud-based organizational management platforms. While a definite correlation exists between IT investment and organizational success, two critical factors amplify realized value: the efficacy of the deployment process and the rigorous adherence to proper instrument selection and customization protocols.

== Resources for Small and Medium Enterprises (SMEs) == Tools specifically tailored for SMEs are vital as they offer mechanisms to streamline...

See Also

`