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:
Step 1: You type a question
Step 2: → Copilot thinks: "I need Azure data for this"
Step 3: → Copilot calls the MCP server on YOUR machine
Step 4: → MCP server talks to Azure (via APIs)
Step 5: → Azure sends back data
Step 6: → MCP server passes it to Copilot
Step 7: → Copilot formats and shows you the answer
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.
My Current MCP Servers¶
I have two MCP servers configured in my Copilot CLI:
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) |
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) |
Both 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.
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.
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 |
| Security | Authentication, RBAC, and prompt injection |
| FAQ | Quick answers to common questions |