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

humor-provision-service

Provides curated, contextually-aware comedic content, prioritizing safety and user-defined taste profiles. Seamlessly interfaces with Microsoft Copilot Studio via the Model Context Protocol (MCP) infrastructure, enabling access to diverse joke categories such as observational humor, anecdotal setups, and lighthearted roasts.

Author

humor-provision-service logo

kusbr

MIT License

Quick Info

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

Tags

mcpsvrkusbrchuckkusbr mcpsvrtools kusbrmcpsvr delivers

Deploying the Humor Provision Service via Model Context Protocol (MCP) in Copilot Studio

This guide outlines the procedure for establishing an MCP endpoint—the humor-provision-service—and integrating it as an actionable tool within your Microsoft Copilot Studio agents.

Understanding the Model Context Protocol (MCP)

The Model Context Protocol (MCP), standardized by Anthropic, defines a common framework for applications to supply contextual data and capabilities to Large Language Models (LLMs). MCP standardizes the linkage between proprietary data repositories, external APIs, and platforms like Copilot Studio, facilitating immediate access to specialized functions.

Presently, Copilot Studio primarily supports integration through its 'Tools' mechanism. For details on current functionalities, consult aka.ms/mcsmcp. Known limitations and future enhancements are documented here.

MCP Versus Traditional Connectors

When should one opt for MCP integration over conventional connectors?

Since MCP service implementations leverage the existing connector framework for exposure within Copilot Studio, the distinction is synergistic rather than mutually exclusive. This architectural choice inherently grants MCP services access to robust enterprise security and compliance mechanisms, including Virtual Network integration, Data Loss Prevention policies, and diverse authentication methods. This robust foundation ensures real-time data accessibility for intelligent agents.

Consequently, MCP and connectors are designed to be mutually reinforcing assets.

Prerequisites for Deployment

To successfully complete this setup, you will require:

  • An active Azure Subscription (with billing enabled)
  • A GitHub account (logged in)
  • Access to a Copilot Studio trial or developer license
  • A provisioned Power Platform environment

Implementation Workflow

The process involves four main phases to operationalize the humor engine within Copilot Studio:

Phase 1: Repository Initialization from Template

  1. Invoke the Use this template option.
  2. Initiate the creation of a new repository.

  3. Designate the appropriate Owner.

  4. Assign a clear Repository name.
  5. Optionally furnish a Description.
  6. Set the visibility to Private.
  7. Finalize by selecting Create repository.

This operation will take a brief period before redirecting you to your newly formed repository.

[!WARNING]
The configuration resulting from this laboratory exercise leaves the deployed Azure Web App publicly accessible. It is strongly recommended to de-provision (delete) this Azure Web App immediately upon concluding the exercise to mitigate unwarranted exposure.

Phase 2: Azure Web App Provisioning

  1. Navigate to portal.azure.com.

  2. Locate the Resource groups section and select Create.

  3. In the Subscription dropdown, select your active subscription.

  4. Input a name for the resource group (e.g., "jokesgrp") in the designated text field.

  5. Select the geographically closest Region.

  6. Proceed by clicking Review + create.

  7. Confirm deployment via Create.

  8. Navigate to the newly established resource group via Go to resource group.

  9. Initiate a new resource creation via Create.

  10. Utilize the search box to locate the service.

  11. Enter web app into the search field.

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

  13. Choose the Web App resource type.

  14. Define the Web App's unique Name (e.g., "wegotjokes").

  15. In the Runtime stack selector, choose Node 22 LTS.

  16. Select the nearest operational Region.

  17. Advance to Review + create.

  18. Execute deployment with Create.

  19. Use Refresh to monitor deployment progression.

  20. Upon successful deployment, navigate to the resource via Go to resource.

  21. Expand the Deployment configuration panel.

  22. Access the Deployment Center.

  23. Set the Source dropdown value to GitHub.

  24. Select Authorize to grant necessary permissions.

  25. Select Continue.

  26. Authorize the deployment service via Authorize AzureAppService.

  27. Select your organizational unit from the Organization dropdown.

  28. Choose the GitHub repository created in Phase 1 from the Repository list.

  29. Specify the desired deployment Branch.

  30. Retain all other settings as default and click Save.

  31. Employ Refresh to track the continuous integration/continuous deployment (CI/CD) status.

  32. Confirm deployment completion.

Phase 3: Custom Connector Definition

  1. Navigate to the Power Apps customization portal: https://make.powerapps.com/.
  2. Select the More option in the navigation sidebar.
  3. Click the Discover all button.
  4. Locate Custom connectors under the Data section and utilize the pin icon to dock it on the primary menu.
  5. Select the newly pinned Custom connectors.
  6. Initiate the creation process by selecting New custom connector.
  7. Choose the Create from blank provisioning method.

  8. Assign a meaningful identifier to the connector (e.g., JokesMCP).

  9. Select the Continue advancement button.
  10. Activate the Swagger editor interface toggle.

  11. Substitute the default content in the Swagger editor with the contents of the YAML definition provided here.

  12. Critically, in the Swagger definition, replace the placeholder hostname dummyurl.azurewebsites.net with the actual URL of the Azure Web App deployed in Phase 2. Ensure the replacement excludes the https:// prefix and any path segments following .azurewebsites.net.
  13. Finalize the setup by clicking Create connector.

Phase 4: Agent Action Integration in Copilot Studio

With the MCP backend service hosted in Azure and the communication bridge established via the Power Platform connector, the final step involves equipping a Copilot Studio agent with this capability.

  1. Access the Copilot Studio portal: https://copilotstudio.microsoft.com.
  2. Utilize the environment selector located at the top right to select the target environment.
  3. Navigate to Create in the left navigation pane.
  4. Initiate a new agent by clicking the blue New agent button.

  5. Bypass initial configuration by selecting Skip to configure at the top.

  6. Rename the agent to Jokester.

  7. Populate the agent Description with the following directive:

    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.

  8. Define the agent's operational Instructions as follows:

    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.
  9. Finalize agent creation by clicking Create.

  10. Activate the Generative AI Orchestration feature.

  11. In the Knowledge configuration area, deactivate general knowledge retrieval.

  12. Navigate to the Actions section in the primary toolbar.

  13. Select Add an action.

  14. Search for the connector identifier (e.g., jokes) created in Phase 3.

  15. Select the corresponding action, referencing the Jokes MCP server.

  16. Await the automatic connection establishment and then select Next.

  17. Update the directive used by the agent to invoke this action:

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

Maintain default settings for auxiliary configurations, such as end-user authorization.

  1. Add the configured tool to the agent by selecting Add action.

  2. In the agent testing pane, click the refresh icon.

  3. In the testing interface, input the query:

    text Can I get a Chuck Norris joke?

This initial attempt will likely prompt a request for additional connection permissions due to initial authorization setup.

  1. Explicitly authorize the connection by selecting Connect.

This action launches a separate window for managing service connections.

  1. Select Connect adjacent to the JokesMCP entry.

  2. Wait for the connection status to transition to established, then confirm by selecting Submit.

  3. Verify the status indicator shows Connected.

  4. Close the connection management tab.

  5. Return to the Jokester agent configuration and refresh the testing pane icon.

  6. In the test panel, submit the request again:

    text Can I get a Chuck Norris joke?

    The agent should now respond with a relevant Chuck Norris joke, bypassing the permission prompt.

  7. Test a different capability by submitting:

    text Can I get a Dad joke?

    This should yield a Dad joke.

  8. Test the final category:

    text Can I get a Yo Mama joke?

    This will retrieve a Yo Mama joke.

Congratulations! The Jokes MCP Server is now fully operational within Microsoft Copilot Studio. This concludes the instructional guide. We value your participation; kindly consider providing feedback via https://aka.ms/mcsmcp/lab/feedback.

Jokes MCP Server Technical Specifications

This MCP implementation is constructed utilizing the TypeScript SDK for the Model Context Protocol.

This server instance facilitates the retrieval of humorous content sourced from: - chucknorris.io - icanhazdadjoke.com - yomama-jokes.com

For local execution, ensure you execute npm install within the repository's root directory, followed by npm run build to compile, and npm start to initiate the service.

Included Utility Functions (Tools)

get-chuck-joke

Fetches an arbitrary Chuck Norris anecdote sourced from chucknorris.io.

get-chuck-categories

Retrieves the complete enumeration of available joke categories from chucknorris.io.

get-dad-joke

Retrieves a random instance of parental wordplay from icanhazdadjoke.com.

get-yo-mama-joke

Fetches a randomized comedic statement targeting maternal figures from yomama-jokes.com.

Operational Caveats and Future Enhancements

Details concerning known limitations and planned upgrades for MCP integration within Microsoft Copilot Studio are cataloged in the official documentation found at https://aka.ms/mcsmcpdocs#known-issues--planned-improvements.

Collaboration Guidelines

We actively encourage community contributions and suggestions. Most submissions necessitate agreement with a Contributor License Agreement (CLA) affirming your right to grant usage rights to your input. Specifics are available at https://cla.opensource.microsoft.com.

A CLA bot will automatically assess PRs to determine if a CLA signature is required and apply necessary status indicators or comments. This signing requirement is typically a one-time action across all repositories using this CLA framework.

This repository adheres to the Microsoft Open Source Code of Conduct. Further inquiries or commentary should be directed to opencode@microsoft.com, or consult the Code of Conduct FAQ.

Intellectual Property Notices

This software project may incorporate trademarks or branding assets belonging to various entities. Authorized utilization of Microsoft's proprietary marks must strictly comply with Microsoft's Trademark & Brand Guidelines. Any incorporation of Microsoft assets into derived versions must avoid creating user confusion or implying Microsoft endorsement. Any use of non-Microsoft third-party intellectual property is governed by those respective third parties' policies.


WIKIPEDIA CONTEXT INSERT: Management systems encompass the comprehensive array of applications, protocols, computational frameworks, and operational philosophies utilized by enterprises to navigate dynamic market conditions, secure advantageous positioning, and elevate overall organizational efficacy.

== Comprehensive View == Management functionalities can be segmented across departmental lines and operational aspects, such as forecasting, procedural control, archival management, human capital oversight, decision support, and performance monitoring. A functional breakdown typically includes:

  1. Interfaces for data ingestion and integrity verification across all operational units.
  2. Mechanisms for auditing and optimizing organizational workflows.
  3. Systems for data aggregation and strategic judgment formulation.

The evolution of management technology over the past decade has been profoundly influenced by rapid technological shifts, often making the selection of optimal business tooling a complex undertaking. This complexity is driven by persistent pressures to minimize expenditure, maximize revenue generation, accurately interpret client necessities, and deliver products tailored precisely to those demands.

In this competitive landscape, managerial focus must shift towards a strategic framework for tooling adoption, rather than merely chasing the newest software release. Over-reliance on unadapted tools frequently results in systemic instability. Business management solutions demand careful vetting followed by meticulous customization to align with specific organizational mandates, reversing the common practice of forcing organizational structure around generic software features.

== Prevalent Methodologies == Data published by Bain & Company in 2013 highlighted global usage patterns for business tools, reflecting how their output addresses regional requirements amid varying economic climates. The leading ten instruments identified were:

Strategic forecasting Client Relationship Management (CRM) Employee sentiment analysis Comparative performance analysis (Benchmarking) Balanced organizational assessment (BSC) Identification of core competencies Utilization of external sourcing (Outsourcing) Organizational transformation programs Logistics and inventory network orchestration (SCM) Articulation of foundational purpose (Mission/Vision) Customer base segmentation Comprehensive quality assurance (TQM)

== Enterprise Software Applications == Software solutions, defined as integrated sets of programs servicing business users, are termed business software or business applications. These tools are designed to augment productivity, quantify results, and execute diverse corporate functions with precision. The progression began with rudimentary Management Information Systems (MIS), expanded into Enterprise Resource Planning (ERP), subsequently integrated CRM capabilities, and has culminated in the current cloud-centric suite of business management platforms.

While a demonstrable link exists between IT investment and corporate performance, value realization hinges on two critical factors: the proficiency of the deployment execution and the judicious selection and subsequent tailoring of the chosen tools.

== Tools Focused on Small and Medium Enterprises (SMEs) == Toolsets specifically engineered for SMEs are vital as they provide mechanisms to conserve resources...

See Also

`