GraphPaaS in Claude
12 Oct 2026
Ask your Microsoft 365 tenant in Claude
Most questions about a Microsoft 365 tenant are small. Who has a licence and doesn't use it? Which laptops are out of compliance? What should I fix first? Each one usually means a report export, a filter in Excel and a second tab to cross-check names. The GraphPaaS connector for Claude turns them into a sentence: you ask, Claude queries the data your GraphPaaS dashboard already holds, and the answer comes back with the query it came from.
Below is the setup, then four real exchanges with our demo tenant (synthetic users, real tool calls, nothing tidied up), and the limits, stated plainly.
Three steps to connect
In Claude, open Settings → Connectors → Add custom connector. The URL is
https://mcp.graphpaas.com/, the root, with no /mcp
at the end. Leave the OAuth Client ID and Secret empty: Claude registers
itself. On Team and Enterprise, an owner adds it once for everyone.
Use the account you use for the dashboard. Claude then reads as you: the same organisation and the same tenants. No GraphPaaS account yet? Sign in to the dashboard once first, or ask your admin to invite you.
Turn GraphPaaS on in a chat's tools menu and ask in plain language, or start from one of the four ready-made reviews in the same menu (licences, security, device health, executive summary).
"Who has a licence and never uses it?"
The demo organisation can read two tenants, so the first call bounces. That is on purpose: without a tenant, the connector refuses to guess and tells Claude to ask.
Who has a licence and never uses it?
get_metrics(domain="licence_waste", where={"last_activity": null})
→ 400: you can read 2 tenants — ask the user which one they mean
You can read two tenants: Fabrikam HQ (Demo) and Fabrikam Iberia (Demo). Which one, or all tenants?
Pick Fabrikam HQ, and the same question runs against it.
Fabrikam HQ.
describe_domain(domain="licence_waste", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e")
→ 42 rows, refresh: daily
get_metrics(domain="licence_waste", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e",
where={"last_activity": null})
→ 5 rows
get_metrics(domain="licence_waste", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e",
where={"last_activity": {"<": "2026-07-13"}})
→ 5 rows
10 of the 42 people with a paid licence count as waste on the 90-day rule. Five have no activity Microsoft reports at all: Ana Dias, João Yilmaz, Sofia Dias, Bernardo Yilmaz and Kelly Dias. Five were last active before 13 July; the oldest is Clara Fonseca, on 15 February. All but two hold Microsoft 365 E3 plus EMS E3.
Claude didn't know what "never uses it" means in this data. It asked
describe_domain, whose note says the dashboard counts a licence as
wasted when the last activity is empty or older than 90 days. That last activity
is Microsoft's: the
most
recent intentional activity in the app, and the usage reports typically
arrive 24 to 72 hours late, which is why this domain syncs once a day. The
next step is the one in our
dormant
accounts audit: check each name with their manager before you remove
anything.
"Which devices are out of compliance?"
Which devices are out of compliance, and is anything odd about them?
get_metrics(domain="devices", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e",
group_by="compliance_state")
→ compliant 31 · noncompliant 5
get_metrics(domain="devices", tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e",
where={"compliance_state": "noncompliant"})
→ 5 rows
5 of 36 devices are non-compliant: one iPhone (FBK-IOS-017) and four Windows PCs. FBK-WIN-009 and FBK-WIN-033 still run Windows 10 (build 19045). FBK-WIN-001, Ana Dias's laptop, last checked in with Intune on 16 August.
Intune marks a device non-compliant immediately by default, and Conditional Access can then block it. But two of these five have a problem no setting will fix: Windows 10 stopped receiving security updates after 14 October 2025. Those two need an upgrade or a replacement, not a re-sync.
"What should I fix first?"
What should I fix first?
tenant_advisor(tenant_id="ce48e256-019f-4f8c-b951-0c52d1d65b8e", status="fail") → 19 failing: critical 1 · high 5 · medium 8 · low 5 (17 passing)
Start with the critical one: 2 of 7 admins have no MFA method registered, ana.dias and diego.yilmaz. Then the five high ones: Diego also has an inbox rule forwarding mail to [email protected], 4 of 29 members have no MFA, the 5 non-compliant devices, one unverified app (Mail Sync Pro) holding Mail.ReadWrite and Mail.Send, and 6 of 18 Windows devices on Windows 10.
Read the three answers together
Three separate tools, and one name keeps coming back. Ana Dias holds a paid licence with no activity Microsoft reports, an admin role with no MFA method, and a laptop that hasn't checked in since August. That is what a dormant admin account looks like, and Microsoft's own guidance is blunt about it: accounts with administrative rights are targeted by attackers, and requiring MFA on them is an easy way to cut that risk.
What it won't do
- Write to Microsoft. Every answer comes from data GraphPaaS already collected. The one action, refreshing a single domain, queues another read, and only a tenant admin can run it.
- Answer live. The background sync runs every four hours, and once a day for what Microsoft publishes once a day. Each answer carries the time its data was collected. Browsing SharePoint and OneDrive folders is the exception: that reads Microsoft live.
- See more than you do. Claude gets your dashboard's access: the same organisation and the same tenants. Limited to three tenants in Team settings? So is Claude. Someone removed from your team loses access on their next call.
- Pick a tenant for you. With more than one, it asks, as the first exchange above shows.
Claude Code and other MCP clients that send a header can use a GraphPaaS API key instead of the Microsoft sign-in.
- Microsoft 365 admin center usage reports overview — 24 to 72 hours of latency, and what the last activity date means.
- Configure actions for noncompliant devices in Intune — devices are marked non-compliant immediately by default; Conditional Access can block them.
- Windows 10 reaching end of support — no security updates after 14 October 2025.
- Require MFA for administrators — why admin accounts are targeted, and the Conditional Access policy that closes it.
Ask your own tenant the same three questions, with the access your dashboard already gives you.
Add the connector →