microsoft / microsoft/agentsleague

Project: [Enterprise Agents] - Guardian Pulse

Open
#84 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

💼 Enterprise Agents
Dominant language
No language data
Stars
286
Forks
92
Avg merge
12h 44m
Merged PRs (30d)
1

Description

Track

Enterprise Agents (M365 Agents Toolkit)

Project Name

Guardian Pulse — Enterprise AI Risk Intelligence System

GitHub Username

@jpablortiz96

Repository URL

https://github.com/jpablortiz96/GUARDIAN-PULSE

Project Description

Guardian Pulse is an enterprise AI risk intelligence system that transforms reactive risk management into proactive, real-time threat detection — all within the Microsoft 365 ecosystem.
The system addresses a critical enterprise problem: risk signals are scattered across email chains, news feeds, financial reports, and internal communications. By the time leadership is aware, minor concerns have already escalated into crises.
Guardian Pulse solves this through a connected multi-agent architecture built in Microsoft Copilot Studio, coordinating four specialized AI agents:

Guardian Pulse Orchestrator: Routes natural language commands to specialized agents
External Sentinel: Scans real-time news and financial data for external threats
Internal Pulse Analyzer: Detects team burnout signals from M365 metadata
Response Commander: Generates action plans and persists alerts to SharePoint

All agents connect to a custom MCP (Model Context Protocol) server built with Node.js and TypeScript, exposing five tools that pull real data from NewsAPI, Alpha Vantage, and Microsoft Graph API. Authentication uses Microsoft Entra ID with OAuth 2.0 client credentials flow.
Key features include: composite Guardian Risk Index combining external (40%), internal (30%), and vendor (30%) risk dimensions; automatic alert persistence to SharePoint when risk exceeds threshold; rich Adaptive Cards v1.5 with action buttons rendered natively in Teams; and diagnostic endpoints for SharePoint connectivity verification.
Users simply type "quick scan Boeing" in M365 Copilot Chat to receive a complete risk intelligence briefing in seconds.

Demo Video or Screenshots

Demo Video: https://youtu.be/tnGVpeP6iXw

Primary Programming Language

TypeScript/JavaScript

Key Technologies Used

Microsoft Copilot Studio (Multi-Agent Orchestration)
Model Context Protocol (MCP) — @modelcontextprotocol/sdk
Node.js 22.x + TypeScript 5.x
Express.js (StreamableHTTP transport)
Microsoft Entra ID + MSAL (OAuth 2.0 Client Credentials)
Microsoft Graph API v1.0
SharePoint Online (Alert persistence)
Adaptive Cards v1.5
NewsAPI (Real-time news intelligence)
Alpha Vantage (Financial market data)
Zod (Schema validation)
Axios (HTTP client)

Submission Type

Individual

Team Members

No response

Submission Requirements
  • My project meets the track-specific challenge requirements
  • My repository includes a comprehensive README.md with setup instructions
  • My code does not contain hardcoded API keys or secrets
  • I have included demo materials (video or screenshots)
  • My project is my own work with proper attribution for any third-party code
  • I agree to the Code of Conduct
  • I have read and agree to the Disclaimer
  • My submission does NOT contain any confidential, proprietary, or sensitive information
  • I confirm I have the rights to submit this content and grant the necessary licenses
Quick Setup Summary

Clone the repo: git clone https://github.com/jpablortiz96/GUARDIAN-PULSE
Navigate to MCP server: cd guardian-pulse/mcp-server
Install dependencies: npm install
Configure environment: cp .env.example .env and fill in API keys
Run in development: npm run dev
Verify: curl http://localhost:3000/health
Connect MCP endpoint (POST /sse) in Copilot Studio with OAuth 2.0

Full setup details including Azure App Registration and Copilot Studio configuration are in the README.

Technical Highlights

Connected Multi-Agent Architecture: Four Copilot Studio agents collaborating through an orchestrator pattern — each agent has specialized MCP tools and instructions optimized for its domain (external intelligence, internal analytics, crisis response)
Real MCP Server with Read + Write: StreamableHTTP transport exposing 5 tools that both consume external APIs (NewsAPI, Alpha Vantage, Graph) and write back to SharePoint — true bidirectional data flow
Composite Risk Scoring Algorithm: Guardian Risk Index combines external (40%), internal (30%), and vendor (30%) dimensions into a single weighted score with automatic threshold-based alert generation
Enterprise-Grade Error Handling: SharePoint write failures are properly propagated (not silently swallowed), with diagnostic endpoints (/debug/sharepoint-columns, /debug/test-write) for production troubleshooting
OAuth 2.0 with Token Caching: MSAL client credentials flow with 5-minute refresh buffer — authentication overhead is near-zero on repeated tool invocations
Adaptive Cards on Every Tool: All 5 MCP tools return rich Adaptive Cards v1.5 with color-coded risk levels, action buttons, and inline fact grids — consistent UX across the entire system

Challenges & Learnings

Biggest challenge: SharePoint integration via Graph API. The write_risk_alert tool initially appeared to work but was silently failing — the error was caught internally without propagating the failure to the agent. The root cause was twofold: (1) SharePoint "Single line of text" columns have a 255-character limit that the AI-generated summaries exceeded, and (2) the original code set success: true regardless of whether the Graph API call actually succeeded. Diagnosing this required building dedicated debug endpoints (/debug/sharepoint-columns and /debug/test-write) that verified column schemas and write connectivity independently.
Second challenge: Graph API /me endpoint with Client Credentials Flow. The internal pulse tool used /me/messages which requires delegated (user) authentication, but our MCP server authenticates with app-only client credentials where /me doesn't exist. The solution was implementing an intelligent fallback with deterministic simulation seeded by department name, ensuring consistent demo data while being transparent about the data source.
Key learning: In multi-agent systems, error propagation is everything. If a tool silently succeeds when it actually fails, the orchestrating agent makes wrong decisions downstream. Building observable, diagnosable systems matters more than making them work on the happy path.

Contact Information

jpablortiz96@hotmail.com

Country/Region

Colombia

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked Guardian Pulse repository's README.md, then follow the setup path in mcp-server: npm install, configure .env, run npm run dev, and check /health. The submission describes a complete system but names no specific change, acceptance criteria, or file to modify, so a concrete task is needed before work can be considered done.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, express, javascript, node.js, typescript
Domain
ai, api, authentication, backend-api-design, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.