MCP Servers โ Overview¶
What Is MCP?¶
MCP stands for Model Context Protocol. It's a universal standard that lets AI assistants (like GitHub Copilot) connect to external services (like Azure, Microsoft 365, GitHub, databases, and more).
Think of MCP like USB โ before USB, every device had a different connector. MCP does the same thing for AI: one standard protocol that works everywhere.
The Hotel Concierge Analogy ๐จ¶
This is the core analogy for understanding MCP. Imagine you're at a fancy hotel:
| In the Hotel | In Copilot CLI |
|---|---|
| You (the guest) | You (typing questions) |
| The concierge | GitHub Copilot (the AI brain) |
| The phone on the concierge's desk | MCP Server (the connection) |
| The restaurant/theatre/taxi company | Azure, M365, GitHub (the actual services) |
Without MCP servers, Copilot can only talk to you. With MCP servers, it can actually do things โ query your Azure resources, check your M365 licences, manage GitHub repos, and much more.
Why this matters
Before MCP, every AI tool had to build its own custom connection to every service. With MCP, you build one connection and it works with any AI tool that supports the standard โ Copilot CLI, Copilot Studio, Azure AI Foundry, and more.
How Does It Work?¶
When you ask Copilot a question that needs external data, here's what happens step by step:
sequenceDiagram
participant You
participant Copilot as Copilot CLI
participant MCP as MCP Server<br/>(your machine)
participant Cloud as Azure / M365
You->>Copilot: "List my Azure VMs"
Copilot->>Copilot: I need Azure data for this
Copilot->>MCP: Call tool: list_vms
MCP->>Cloud: REST API request
Cloud-->>MCP: VM data (JSON)
MCP-->>Copilot: Formatted results
Copilot-->>You: Here are your 3 VMsโฆ
MCP servers run locally
The MCP server runs on your machine, not in the cloud. It's like a translator sitting on your computer that speaks both "Copilot language" and "Azure language". (MCP servers can run in the cloud too โ see The MCP Ecosystem for more on that.)
MCP Across Platforms โ The USB Analogy ๐¶
A common question: "Does MCP only work with Copilot CLI?"
No! MCP works across multiple platforms. The concierge changes, but the MCP server stays the same:
| Platform | Role | Analogy |
|---|---|---|
| Copilot CLI | Terminal-based AI assistant | Hotel concierge |
| Copilot Studio | Web-based agent builder | Airport concierge |
| Azure AI Foundry | Cloud AI platform | Corporate concierge |
| Any MCP-compatible tool | Any AI that speaks MCP | Any front desk with a phone |
The concierge (AI platform) changes depending on where you are, but the phone (MCP server) and the services (Azure, M365) stay the same.
๐ก Key insight: Build one MCP server, use it everywhere. That's the power of a universal standard โ just like one USB cable works with any USB device.
The Problem MCP Solves โ NรM vs N+M¶
Before MCP, every AI tool had to build its own custom connector to every service. This creates an explosion of integrations:
graph TB
subgraph before["โ Before MCP (NรM connections)"]
C1[Copilot] ---|custom| A1[Azure]
C1 ---|custom| M1[M365]
C1 ---|custom| S1[SAP]
C2[Claude] ---|custom| A2[Azure]
C2 ---|custom| M2[M365]
C2 ---|custom| S2[SAP]
end
subgraph after["โ
After MCP (N+M connections)"]
C3[Copilot] --> MCP[MCP Standard]
C4[Claude] --> MCP
C5[ChatGPT] --> MCP
MCP --> A3[Azure]
MCP --> M3[M365]
MCP --> S3[SAP]
end
style before fill:#1a0a0a,stroke:#ff4444,color:#fff
style after fill:#0a1a0a,stroke:#44ff44,color:#fff
style MCP fill:#1a1a2e,stroke:#66ffff,color:#fff
3 AI tools ร 3 services = 9 custom connectors (before). With MCP: 3 + 3 = 6 standard connections (after). The bigger the ecosystem, the bigger the savings.
My Current MCP Servers¶
I have four MCP servers configured in my Copilot CLI โ 3 local (stdio) and 1 remote (HTTP):
graph LR
You([๐ค You]) --> Copilot[๐ค Copilot CLI]
Copilot --> M365[๐ข m365-admin-graph<br/>stdio ยท Client Secret]
Copilot --> Azure[โ๏ธ azure<br/>stdio ยท Azure CLI Login]
Copilot --> YT[๐ฌ youtube-channel-mcp<br/>stdio ยท OAuth2 Tokens]
Copilot --> Learn[๐ microsoft-learn-docs<br/>HTTP ยท No Auth]
M365 --> Graph[Microsoft Graph API<br/>Users, Licences, Groups]
Azure --> ARM[Azure Resource Manager<br/>VMs, Storage, Web Apps]
YT --> YTAPI[YouTube Data API<br/>Videos, Analytics, SEO]
Learn --> MSLearn[Microsoft Learn<br/>Docs, Code Samples]
style Copilot fill:#1a1a2e,stroke:#66ffff,color:#fff
style M365 fill:#1a1a2e,stroke:#ff66ff,color:#fff
style Azure fill:#1a1a2e,stroke:#ff66ff,color:#fff
style YT fill:#1a1a2e,stroke:#ff66ff,color:#fff
style Learn fill:#1a1a2e,stroke:#66ff66,color:#fff
style Graph fill:#0f3460,stroke:#66ffff,color:#fff
style ARM fill:#0f3460,stroke:#66ffff,color:#fff
style YTAPI fill:#0f3460,stroke:#66ffff,color:#fff
style MSLearn fill:#0f3460,stroke:#66ffff,color:#fff
Server Summary โ 82 Tools Across 4 Servers¶
| # | Server | Tools | Transport | Auth | Install |
|---|---|---|---|---|---|
| 1 | m365-admin-graph ๐ข |
11 | stdio (local) | Client Secret | npm install |
| 2 | azure โ๏ธ |
61 | stdio (local) | Azure CLI login | npx (streams latest) |
| 3 | youtube-channel-mcp ๐ฌ |
10 | stdio (local) | OAuth2 tokens | npm install |
| 4 | microsoft-learn-docs ๐ |
3 | HTTP (remote!) | None (public) | Just a URL โ no install |
1. m365-admin-graph ๐ข¶
| Detail | Value |
|---|---|
| What it does | Connects to my lab tenant's Microsoft 365 admin data |
| Example usage | "List users in my lab", "Show me licences" |
| Where it lives | ~\.copilot\mcp-servers\m365-admin-graph\ (local folder) |
| Authentication | Client ID + Client Secret (OAuth โ like an app with its own username & password) |
| Transport | stdio (runs locally, talks directly to Copilot) |
| Install method | npm install (permanent local copy) |
| Building blocks | 11 Tools, 0 Resources, 0 Prompts |
2. azure โ๏ธ¶
| Detail | Value |
|---|---|
| What it does | Manages Azure resources (VMs, storage, web apps, etc.) |
| Example usage | "List resource groups", "Create a Static Web App" |
| Where it lives | Downloaded fresh each time (via npx) |
| Authentication | Uses my Azure CLI login (az login) โ my personal identity |
| Transport | stdio (runs locally, talks directly to Copilot) |
| Install method | npx (streams latest version every time) |
| Building blocks | 61 Tools, 0 Resources, 0 Prompts |
3. youtube-channel-mcp ๐ฌ¶
| Detail | Value |
|---|---|
| What it does | Manages my YouTube channel โ analytics, SEO, video details |
| Example usage | "Show my top videos", "Update video tags" |
| Where it lives | ~\AppData\Roaming\npm\node_modules\youtube-channel-mcp\ |
| Authentication | OAuth2 tokens (one-time Google login, tokens stored locally) |
| Transport | stdio (runs locally, talks directly to Copilot) |
| Install method | npm install -g (global permanent copy) |
| Building blocks | 10 Tools, 0 Resources, 0 Prompts |
4. microsoft-learn-docs ๐ (NEW โ first remote server!)¶
| Detail | Value |
|---|---|
| What it does | Searches Microsoft's official documentation (Learn, code samples) |
| Example usage | "Search Learn docs for Conditional Access", "Find Azure Functions code samples" |
| Where it lives | Microsoft's cloud (https://learn.microsoft.com/api/mcp) |
| Authentication | None needed โ public endpoint! |
| Transport | Streamable HTTP (remote โ runs on Microsoft's servers, not your PC) |
| Install method | Just add the URL to mcp-config.json โ no download needed |
| Building blocks | 3 Tools, 0 Resources, 0 Prompts |
All are pre-built!
I didn't write any code for these servers. They were built by others โ I just downloaded, configured, and use them. Like installing apps from an app store. See The MCP Ecosystem for more about pre-built servers.
Notice the transport difference!
Servers 1-3 use stdio (local, direct pipe). Server 4 uses HTTP (remote, over the internet). Both work seamlessly โ the only difference is where the server runs. See Transport Types for the full explanation.
Managing MCP Servers¶
Use the /mcp command in Copilot CLI to:
- View all configured MCP servers
- Add new ones
- Remove existing ones
- Check their status
The configuration is stored in:
Be careful with mcp-config.json
This file may contain secrets (like Client IDs and passwords). Never share it publicly or commit it to GitHub. Our daily backup to OneDrive keeps it safe and private.
MCP Across the Microsoft Stack (April 2026)¶
MCP isn't just for Copilot CLI โ it's being adopted across Microsoft's entire AI platform:
| Product | MCP Status | What It Means |
|---|---|---|
| Copilot CLI (us!) | โ Working | We use 4 MCP servers daily |
| Copilot Studio | โ GA (since Build 2025) | Connect Studio agents to any MCP server |
| M365 Copilot | โ Integrated | M365 Copilot can invoke tools via MCP |
| Azure AI Foundry | โ Supported | Build custom MCP servers with Azure Functions |
| Dynamics 365 | ๐ต Public Preview | D365 exposing ERP/Sales/CS as MCP servers |
The big shift
Microsoft Copilot is moving from reading your data โ to taking actions in enterprise systems through MCP. This is the future of AI-powered automation.
What's Next?¶
Now that you understand the basics, explore the other MCP topics:
| Page | What You'll Learn |
|---|---|
| MCP vs APIs | How MCP compares to traditional APIs |
| Building Blocks | The 3 components: Tools, Resources & Prompts |
| Transport Types | How MCP servers communicate (stdio vs HTTP) |
| The MCP Ecosystem | Pre-built servers, npm/npx, costs, and more |
| Under the Hood | JSON-RPC, lifecycle, how Copilot picks tools |
| Setup & Config | Practical guide to mcp-config.json |
| Security | Authentication, RBAC, and prompt injection |
| FAQ | Quick answers and quiz questions |