MCP-Copilot-Automations

MCP-Copilot-Automations

Bridges LLMs with enterprise IT operations by resolving user intents via Dataverse, creating ServiceNow service requests, and triggering Azure Automation Webhooks.

Category
Visit Server

README

MCP-Copilot-Automations

Overview

MCP-Copilot-Automations is a Model Context Protocol (MCP) server built with FastMCP. It is designed to act as a bridge between Large Language Models (LLMs) and enterprise IT operations. The server provides tools to dynamically resolve user intents by querying Microsoft Dataverse, generate corresponding ServiceNow service requests, and trigger Azure Automation Webhooks to fulfill the requested actions.

This architecture enables an Agentic AI workflow where an LLM can discover the parameters required for a service request, prompt the user for missing details, create an audit trail in ServiceNow, and execute the backend automation seamlessly.

Key Components

  • FastMCP Server (copilotautomations.py): Hosts the MCP tools and handles HTTP transport for LLM integrations. It uses MSAL to authenticate with Azure Entra ID and fetch tool definitions from a specified Dataverse table.
  • ServiceNow Client (ticketcreation.py): An asynchronous client that leverages httpx to create sc_request records in a ServiceNow instance, ensuring all automated actions are logged as standard service requests.

Prerequisites

To run this server, you need the following:

  • Python 3.12+
  • Azure App Registration: An Azure Entra ID application with permissions to access your Microsoft Dynamics 365 / Dataverse environment.
  • Microsoft Dataverse: A custom table containing intent mapping, tool definitions (Step_Json), and Webhook URLs.
  • ServiceNow Instance: Active developer or enterprise ServiceNow instance with API access.

Environment Variables

Create a .env file in the root directory and configure the following required variables:

# Microsoft Dataverse & Azure AD
DYNAMICS_INSTANCE=org********.crm8.dynamics.com
DATAVERSE_TABLE_NAME=cr9a7_servicerequestintentdetailses
AZURE_TENANT_ID=your-azure-tenant-id
AZURE_CLIENT_ID=your-azure-client-id
AZURE_CLIENT_SECRET=your-azure-client-secret

# ServiceNow
SERVICENOW_INSTANCE=https://dev******.service-now.com
SERVICENOW_USER=admin
SERVICENOW_PASS=your-servicenow-password

# Optional Configuration
PORT=8000 # Default port for the MCP server

Installation

  1. Clone the repository or download the source code.
  2. Install the required Python dependencies:
pip install -r requirements.txt

(Dependencies: fastmcp, httpx, msal, python-dotenv, requests)

Available MCP Tools

1. Resolve_Service_Request_Intent

  • Description: Queries the Dataverse table based on a natural language user intent (e.g., "Create Shared Mailbox"). It fetches the required field definitions (Step_Json) and the target Azure Automation Webhook URL.
  • Input: intent (string)
  • Output: JSON object containing the tool_definition, webhook_url, and an empty paramsbody template for the LLM to populate by asking the user.

2. Invoke_Webhook

  • Description: Executed by the LLM after gathering all necessary parameters from the user. It creates a new Service Request (sc_request) in ServiceNow, logs the user details, and then invokes the target Azure Automation webhook.
  • Input:
    • url: The Azure webhook URL.
    • jsonbody: The populated parameters payload.
    • user: User's email ID.
    • userintent: The natural language intent.
  • Output: The generated ServiceNow request number and the HTTP response from the Azure Automation webhook.

Running the Server

Start the FastMCP server by running the main Python script:

python copilotautomations.py

By default, the server runs on 0.0.0.0 over HTTP at port 8000 (or the port specified by the $PORT environment variable). The MCP endpoint is explicitly bound to /mcp.

Deployment Notes

  • Azure App Service: The code binds to 0.0.0.0 and respects the $PORT environment variable, making it ready for deployment on Azure App Service or containerized environments.
  • SSL Verification: The current implementation disables strict environment SSL checks (trust_env=False in httpx and pops SSL bundles from OS env) to bypass certain enterprise proxy restrictions. Adjust this for production environments requiring strict certificate validation.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured