Skip to main content
Glama
neerajks77

MCP-Copilot-Automations

by neerajks77

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.

Related MCP server: ServiceNow MCP Server

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.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/neerajks77/capstone-project-copilot-automations'

If you have feedback or need assistance with the MCP directory API, please join our Discord server