Skip to content

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:

C:\Users\<username>\.copilot\mcp-config.json

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