Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Obo

FreeNot checked

Implements the on-behalf-of flow with Entra ID to enable authorized calls to Microsoft Graph API via MCP tools.

GitHubEmbed

About

Implements the on-behalf-of flow with Entra ID to enable authorized calls to Microsoft Graph API via MCP tools.

README

Blog post: https://baeke.info/2025/07/29/end-to-end-authorization-with-entra-id-and-mcp/

Instructions

1. Create and activate a Python virtual environment

python3 -m venv .venv
source .venv/bin/activate

2. Install dependencies

pip install -r requirements.txt

3. Set up environment variables

Create a .env file in the project root with the required Azure and API credentials (see example files for required variables).

4. Start the MCP server

python -m mcp.main

5. Run the MCP client

In a new terminal (with the virtual environment activated):

python mcp_client.py

Diagrams

sequenceDiagram
    autonumber
    participant User
    participant Client
    participant AzureAD as "Azure Entra ID"
    participant MCP
    participant MSGraph

    User->>Client: Initiate Device Flow
    Client->>AzureAD: Start Device Code Flow
    AzureAD-->>Client: Device Code + Verification URL
    Client->>User: Show Code + URL

    User->>AzureAD: Authenticates via browser
    AzureAD-->>Client: Returns Access Token (for MCP)

    Client->>MCP: Call tool with Bearer Access Token
    MCP->>AzureAD: OBO request for token to call MS Graph\n(include access token as assertion)
    AzureAD-->>MCP: Returns new Access Token (for MS Graph)

    MCP->>MSGraph: Call Graph API with new token
    MSGraph-->>MCP: Graph data
    MCP-->>Client: Return tool result

from github.com/gbaeke/mcp-obo

Installing Obo

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/gbaeke/mcp-obo

FAQ

Is Obo MCP free?

Yes, Obo MCP is free — one-click install via Unyly at no cost.

Does Obo need an API key?

No, Obo runs without API keys or environment variables.

Is Obo hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Obo in Claude Desktop, Claude Code or Cursor?

Open Obo on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Obo with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs