← Discover MCPs and Agents
m
MCPAI & MLGitHub

mcp-server-graph-api

Model-context-protocol (MCP) server for the Microsoft Graph API in C#

Links

README

From the repo.

MCP Server for the Microsoft Graph Api

Model-context-protocol (MCP) server for the Microsoft Graph API in C#.

Prerequisites

Entra ID application

Register a new Entra ID application, add and grant at least the User.Read.All application permission and create a new client secret.

You can grant also another permissions, it depends on what you want to ask AI about your tenant through the Microsoft Graph API.

Claude Desktop app

I'm using the Claude Desktop app, but I think you can use any other MCP clients, including GitHub Copilot if they allow to add local MCP server.

MCP server

Open and build the solution.

MCP server configuration

Open the claude_desktop_config.json file. On Windows, the file should be located in %APPDATA%\Claude\ folder.

Add the MCP Server. Under the args section, specify the path to project folder. Don't forget to set the details about the Entra ID application like tenant id, client id and client secret under the env section.

By default, Microsoft Graph global service is used. You can change it by modifying the NATIONAL_CLOUD environment variable.

Possible values for the NATIONAL_CLOUD are:

{
    "mcpServers": {
        "graphApi": {
            "command": "dotnet",
            "args": [
                "run",
                "--project",
                "path/to/folder/with/console_project",
                "--no-build"
            ],
            "env": {
                "TENANT_ID": "<tenant_id>",
                "CLIENT_ID": "<client_id>",
                "CLIENT_SECRET": "<client_secret>",
                "NATIONAL_CLOUD": "Global"
            }
        }
    }
}

Run MCP server

When you open Claude Desktop app, the MCP server should be automatically discovered and run. You can start new chat.

If Claude Desktop app was already open, you need to close (quit it in system tray) and reopen it.

In case of any issues, you can check logs in %APPDATA%\Claude\logs.

MCP Client

The MCP client allows you to connect the MCP server.

Tools exposed by the MCP server can be invoked either by Claude AI (via Anthropic Claude API) or by any model deployed to Azure OpenAI Service.

You need to set the Anthropic API key in the AnthropicService.GetAnthropicApiKey() method.

private static string GetAnthropicApiKey()
{
    return "<anthropic-api-key>";
}

For Azure OpenAI Service, you need to

  • API key: set either the AZURE_OPENAI_API_KEY environment variable or specify the key in the AzureOpenAIServiceGetOpenAIApiKey() method
  • Azure OpenAI endpoint: set either the AZURE_OPENAI_ENDPOINT environment variable or specify the endpoint in the AzureOpenAIService.GetOpenAIEndpoint() method

Collected info

  • 11 stars
  • 8 forks
  • Language: C#
  • Source updated: 9/19/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.