# How to integrate Microsoft Entra ID MCP with Hermes

```json
{
  "title": "How to integrate Microsoft Entra ID MCP with Hermes",
  "toolkit": "Microsoft Entra ID",
  "toolkit_slug": "microsoft_entra_id",
  "framework": "Hermes",
  "framework_slug": "hermes-agent",
  "url": "https://composio.dev/toolkits/microsoft_entra_id/framework/hermes-agent",
  "markdown_url": "https://composio.dev/toolkits/microsoft_entra_id/framework/hermes-agent.md",
  "updated_at": "2026-10-28T05:33:39.240Z"
}
```

## Introduction

Hermes is a 24/7 autonomous agent that lives on your computer or server — it remembers what it learns and evolves as your usage grows.
This guide explains the easiest and most robust way to connect your Microsoft Entra ID account to Hermes. You can do this through either Composio Connect CLI or Composio Connect MCP. For personal use we recommend the CLI, but you won't go wrong with MCP either.

## Also integrate Microsoft Entra ID with

- [ChatGPT](https://composio.dev/toolkits/microsoft_entra_id/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/microsoft_entra_id/framework/claude-cowork)
- [Atomic Agent](https://composio.dev/toolkits/microsoft_entra_id/framework/atomic-agent)

## TL;DR

### What is Composio Connect?
Composio Connect is a consumer offering that lets anyone plug 1,500+ applications directly into their agent harness — including Hermes. It can:
- Search and load tools from relevant toolkits on-demand, reducing context usage.
- Chain multiple tools to accomplish complex workflows via a remote workbench, without excessive back-and-forth with the LLM.
- Manage app authentication end-to-end with zero manual overhead.

## Connect Microsoft Entra ID to Hermes

### Integrating Microsoft Entra ID with Hermes
### Using Composio Connect CLI
1. Install the Composio CLI
Run the install script directly, or paste https://composio.dev/hermes into your Hermes chat box to have it installed for you.

```bash
curl -fsSL https://composio.dev/install | bash
```

## What is the Microsoft Entra ID MCP server, and what's possible with it?

The Microsoft Entra ID MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Microsoft Entra ID account. It provides structured and secure access to directory resources, so your agent can create and manage users, groups, applications, and service principals, assign licenses and directory roles, organize memberships and ownership, inspect sign-in and audit events, and retrieve tenant details on your behalf.
- User and group administration: Have your agent create, retrieve, disable, and delete users, create and delete groups, manage group membership and ownership, and assign user licenses.
- Application and service principal management: Let the agent create, retrieve, and delete application registrations and service principals, then manage their owners and application role assignments.
- Access and role management: Direct your agent to add directory role members, create and retrieve role assignments, and add users, groups, or devices to administrative units.
- Directory visibility and auditing: Instruct your agent to inspect devices, domains, organizational details, subscriptions, Conditional Access policies, sign-in events, and directory audit events.
- Administrative unit management: Have your agent create, retrieve, list, and delete administrative units, review their members, and inspect scoped administrative role memberships.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `MICROSOFT_ENTRA_ID_ADD_ADMINISTRATIVE_UNIT_MEMBER` | Add Administrative Unit Member | Add one existing user, group, or device to an assigned-membership Microsoft Entra administrative unit, bringing that object into the unit's delegated administration scope. Dynamic administrative units are managed only by their membership rule and reject manual changes. In a restricted-management unit, a group must be a nonunified, security-enabled, non-mail-enabled group that is not synchronized from on-premises. For delegated access, Privileged Role Administrator is the least-privileged supported role. App-only callers that need directory reads also require a supported directory-reader role or an application permission such as Directory.Read.All. |
| `MICROSOFT_ENTRA_ID_ADD_APPLICATION_OWNER` | Add Application Owner | Add an existing user or service principal as an owner of an application registration, granting authority to administer it. For delegated access, the signed-in user must also hold Application Administrator, Cloud Application Administrator, Hybrid Identity Administrator, or a supported custom Microsoft Entra role. |
| `MICROSOFT_ENTRA_ID_ADD_DIRECTORY_ROLE_MEMBER` | Add Directory Role Member | Assign a principal to an activated Microsoft Entra directory role, granting that role's tenant-wide administrative access. This is an access-elevation operation. For delegated access, the signed-in user must be a Privileged Role Administrator (the least-privileged supported role) or hold a custom role that grants the permissions required for this operation. Prefer unified role assignments when scoped access is required. |
| `MICROSOFT_ENTRA_ID_ADD_GROUP_MEMBER` | Add Group Member | Add an existing directory object as a direct member of an assigned-membership Microsoft Entra group. Dynamic group membership cannot be changed manually. Role-assignable groups additionally require RoleManagement.ReadWrite.Directory and an eligible Entra role. Adding a device, service principal, or organizational contact can require an additional permission for that member type. |
| `MICROSOFT_ENTRA_ID_ADD_GROUP_OWNER` | Add Group Owner | Add an existing user or service principal as an owner of a Microsoft 365 or security group, granting authority to modify the group. Delegated callers must also be a group owner or hold a supported Microsoft Entra role; some roles can add only user owners or are limited to particular group types. |
| `MICROSOFT_ENTRA_ID_ADD_SERVICE_PRINCIPAL_OWNER` | Add Service Principal Owner | Add an existing user or service principal as an owner of an enterprise application/service principal, granting authority to administer it. For delegated access, the signed-in user must also hold Application Administrator, Cloud Application Administrator, Hybrid Identity Administrator, or a supported custom Microsoft Entra role. With app-only Application.ReadWrite.OwnedBy access, the calling application must already own the target service principal. |
| `MICROSOFT_ENTRA_ID_ASSIGN_USER_LICENSES` | Assign User Licenses | Add and remove Microsoft product licenses for one Entra user in a single request. Both add and remove lists are required and either can be empty. Removing a license revokes the user's entitlement to that product's services and can immediately prevent access; data retention depends on the affected Microsoft product. |
| `MICROSOFT_ENTRA_ID_CREATE_ADMINISTRATIVE_UNIT` | Create Administrative Unit | Create an assigned or dynamic Microsoft Entra administrative unit for scoping directory administration. Restricted member management can be set only during creation and is immutable afterward. |
| `MICROSOFT_ENTRA_ID_CREATE_APPLICATION` | Create Application | Create a Microsoft Entra application registration with allowlisted platform, role, and API permission settings, without creating or accepting password or key credentials. |
| `MICROSOFT_ENTRA_ID_CREATE_APP_ROLE_ASSIGNMENT` | Create App Role Assignment | Assign an application role to a user, group, or client service principal. This grants the principal the application access represented by that role; for client service principals, the grant is an application permission. |
| `MICROSOFT_ENTRA_ID_CREATE_GROUP` | Create Group | Create a Microsoft 365, assigned security, or dynamic-membership group. Optionally bind up to 20 total initial owners and members by directory object ID; dynamic groups cannot have initial members. |
| `MICROSOFT_ENTRA_ID_CREATE_ROLE_ASSIGNMENT` | Create Role Assignment | Grant a user, role-assignable group, or service principal a Microsoft Entra directory role, conferring the role's administrative access at the explicit tenant, administrative-unit, resource-application, or app-specific scope. This is an access-elevation operation. For delegated access, the signed-in user must be a Privileged Role Administrator (the least-privileged supported role) or hold a custom role that grants the required permissions. |
| `MICROSOFT_ENTRA_ID_CREATE_SERVICE_PRINCIPAL` | Create Service Principal | Create an enterprise application (service principal) for an existing application ID without accepting or creating password or key credentials. Delegated callers also need a supported Microsoft Entra role. With app-only Application.ReadWrite.OwnedBy, the calling application must own the backing application. |
| `MICROSOFT_ENTRA_ID_CREATE_USER` | Create User | Create a Microsoft Entra tenant user with the required sign-in profile and an initial password. This action only sets the password required during creation; it does not reset passwords or modify authentication methods. |
| `MICROSOFT_ENTRA_ID_DELETE_ADMINISTRATIVE_UNIT` | Delete Administrative Unit | Delete a Microsoft Entra administrative unit and remove its administrative scope. This is irreversible from this toolkit because restoration is not supported here. |
| `MICROSOFT_ENTRA_ID_DELETE_APPLICATION` | Delete Application | Delete a Microsoft Entra application registration by its directory Object ID. This is irreversible from this toolkit because restoration is not supported here. Deleting the registration can break dependent user or workload sign-in and integrations that rely on its Application (client) ID, permissions, roles, or redirect configuration. |
| `MICROSOFT_ENTRA_ID_DELETE_GROUP` | Delete Group | Delete a Microsoft Entra group and its associated group resources. This is irreversible from this toolkit: Microsoft 365 and security groups can be restored for 30 days only through recovery outside this toolkit, while distribution groups are permanently deleted immediately. |
| `MICROSOFT_ENTRA_ID_DELETE_SERVICE_PRINCIPAL` | Delete Service Principal | Delete a Microsoft Entra enterprise application/service principal. This is irreversible from this toolkit because restoration is not supported here. Deletion removes the enterprise application's tenant identity and can break sign-in, resource access, and app-role assignments that depend on it. |
| `MICROSOFT_ENTRA_ID_DELETE_USER` | Delete User | Delete a tenant user and remove the directory identity. This deletion is irreversible from this toolkit; restoration is outside this toolkit. |
| `MICROSOFT_ENTRA_ID_DISABLE_USER` | Disable User | Disable a Microsoft Entra user without deleting the directory object. This sets accountEnabled=false and blocks future sign-ins; already-issued access tokens or sessions can remain usable until they expire or are separately revoked. |
| `MICROSOFT_ENTRA_ID_GET_ADMINISTRATIVE_UNIT` | Get Administrative Unit | Get one Microsoft Entra administrative unit by directory object ID. |
| `MICROSOFT_ENTRA_ID_GET_APPLICATION` | Get Application | Get one application registration by its directory Object ID, not its Application (client) ID, returning only credential-safe properties. |
| `MICROSOFT_ENTRA_ID_GET_CONDITIONAL_ACCESS_POLICY` | Get Conditional Access Policy | Get one Microsoft Entra Conditional Access policy by object ID. This is a read-only paid-tier capability; delegated callers also need a supported Entra role such as Security Reader, Global Reader, or Conditional Access Administrator. |
| `MICROSOFT_ENTRA_ID_GET_DEVICE` | Get Device | Get one Microsoft Entra device by its directory Object ID, not its distinct Device Registration Service deviceId value. |
| `MICROSOFT_ENTRA_ID_GET_DIRECTORY_AUDIT` | Get Directory Audit | Get one Microsoft Entra directory audit event by its event ID. |
| `MICROSOFT_ENTRA_ID_GET_DIRECTORY_ROLE` | Get Directory Role | Get one Microsoft Entra directory role that is activated in the tenant by its activated role object ID. Inactive role definitions are not available. |
| `MICROSOFT_ENTRA_ID_GET_DOMAIN` | Get Domain | Get one tenant domain by its fully qualified domain name. |
| `MICROSOFT_ENTRA_ID_GET_GROUP` | Get Group | Get one tenant group by directory object ID. |
| `MICROSOFT_ENTRA_ID_GET_ORGANIZATION` | Get Organization | Get the connected Microsoft Entra tenant's organization record by tenant organization ID. The keyed Graph route returns one organization entity. |
| `MICROSOFT_ENTRA_ID_GET_ROLE_ASSIGNMENT` | Get Role Assignment | Get one unified Microsoft Entra directory role assignment by its assignment ID, including its principal, role definition, and directory or application scope identifiers. |
| `MICROSOFT_ENTRA_ID_GET_SERVICE_PRINCIPAL` | Get Service Principal | Get one Microsoft Entra enterprise application/service principal by its directory Object ID, not its Application (client) ID, returning only credential-safe properties. |
| `MICROSOFT_ENTRA_ID_GET_SIGN_IN` | Get Sign In | Get one retained Microsoft Entra sign-in event by event ID. Availability is limited by the tenant's sign-in data retention policy; downloading sign-in logs requires Microsoft Entra ID P1 or P2, and delegated callers need a supported Entra role such as Reports Reader or Security Reader. P2-only risk details can be hidden. |
| `MICROSOFT_ENTRA_ID_GET_SUBSCRIBED_SKU` | Get Subscribed SKU | Get one commercial product subscription acquired by the Microsoft Entra tenant using its subscribed-SKU object ID. |
| `MICROSOFT_ENTRA_ID_GET_USER` | Get User | Get one tenant user by directory object ID or user principal name. |
| `MICROSOFT_ENTRA_ID_GET_USER_MANAGER` | Get User Manager | Get the directory object recorded as a user's manager. Returns not found when no manager is assigned. |
| `MICROSOFT_ENTRA_ID_LIST_ADMINISTRATIVE_UNIT_MEMBERS` | List Administrative Unit Members | List users, groups, and devices directly assigned to a Microsoft Entra administrative unit. Hidden membership requires the additional Member.Read.Hidden grant, so hidden members can otherwise be omitted. Properties other than id and type can be null when the connection lacks permission to read a member's concrete object type. |
| `MICROSOFT_ENTRA_ID_LIST_ADMINISTRATIVE_UNITS` | List Administrative Units | List Microsoft Entra administrative units with optional OData filtering, search, field selection, relationship expansion, and cursor pagination. |
| `MICROSOFT_ENTRA_ID_LIST_ADMINISTRATIVE_UNIT_SCOPED_ROLE_MEMBERS` | List Administrative Unit Scoped Role Members | List the legacy scoped-role memberships that grant users administrative access within one Microsoft Entra administrative unit. This action is read-only; create new scoped grants with unified role assignments instead. |
| `MICROSOFT_ENTRA_ID_LIST_APPLICATION_OWNERS` | List Application Owners | List the users and service principals that own an application registration. Properties other than id and type can be null when the connection lacks permission to read an owner's concrete object type. |
| `MICROSOFT_ENTRA_ID_LIST_APPLICATIONS` | List Applications | List Microsoft Entra application registrations with OData filtering, search, ordering, and cursor pagination. Selection and output schemas structurally exclude password and key credential collections. |
| `MICROSOFT_ENTRA_ID_LIST_APP_ROLE_ASSIGNMENTS` | List App Role Assignments | List users, groups, and client service principals granted application roles on a resource service principal, with OData filtering, field selection, and cursor pagination. Recently added or removed assignments can be delayed by Microsoft Entra replication. |
| `MICROSOFT_ENTRA_ID_LIST_CONDITIONAL_ACCESS_POLICIES` | List Conditional Access Policies | List read-only Microsoft Entra Conditional Access policy definitions, including conditions, grant controls, and session controls, with OData queries and cursor pagination. Conditional Access is license-dependent; delegated callers also need a supported Microsoft Entra role. |
| `MICROSOFT_ENTRA_ID_LIST_DEVICES` | List Devices | List devices registered in the Microsoft Entra tenant with optional advanced OData queries and cursor pagination. Results distinguish each device's directory object ID from its registration-service deviceId. |
| `MICROSOFT_ENTRA_ID_LIST_DIRECTORY_AUDITS` | List Directory Audits | List retained Microsoft Entra directory audit events with documented OData filtering, activity-time ordering, and opaque cursor pagination. Availability is limited by the tenant's Microsoft Entra data-retention policy. For delegated access, the signed-in user must have Reports Reader, Security Reader, Security Administrator, or a supported custom role. |
| `MICROSOFT_ENTRA_ID_LIST_DIRECTORY_ROLE_MEMBERS` | List Directory Role Members | List principals currently assigned to one activated Microsoft Entra directory role. Microsoft Graph returns up to 1,000 objects by default and this operation does not support $top pagination, so the result is a single bounded collection. Concrete-type properties can be null when the connection has limited permission. |
| `MICROSOFT_ENTRA_ID_LIST_DIRECTORY_ROLES` | List Directory Roles | List Microsoft Entra directory roles that are activated in the tenant. Inactive built-in roles and other available role definitions are not returned. |
| `MICROSOFT_ENTRA_ID_LIST_DOMAINS` | List Domains | List verified and unverified domains configured for the Microsoft Entra tenant, with documented OData query controls and cursor pagination. |
| `MICROSOFT_ENTRA_ID_LIST_GROUP_MEMBERS` | List Group Members | List a group's direct members; transitive members are not included. Hidden membership requires the additional Member.Read.Hidden grant and, for delegated access, an eligible Entra role, so hidden members can otherwise be omitted. Properties other than id and type can be null when the connection lacks permission to read a member's concrete object type. |
| `MICROSOFT_ENTRA_ID_LIST_GROUP_OWNERS` | List Group Owners | List the users and service principals that own a group. Microsoft Graph can omit service-principal owners during its staged v1.0 rollout. Properties other than id and type can be null when the connection lacks permission to read an owner's concrete object type. |
| `MICROSOFT_ENTRA_ID_LIST_GROUPS` | List Groups | List tenant groups with general OData options, or list only dynamic-membership groups with a fixed safe filter and membership-rule fields. |
| `MICROSOFT_ENTRA_ID_LIST_ORGANIZATIONS` | List Organizations | Return the connected Microsoft Entra tenant's organization record. Microsoft Graph exposes it as a collection containing exactly one organization. |
| `MICROSOFT_ENTRA_ID_LIST_ROLE_ASSIGNMENTS` | List Role Assignments | List unified Microsoft Entra directory role assignments, including the assigned principal, role definition, and directory or application scope. |
| `MICROSOFT_ENTRA_ID_LIST_SERVICE_PRINCIPAL_OWNERS` | List Service Principal Owners | List directory objects that own an enterprise application/service principal. Properties other than id and type can be null when the connection lacks permission to read an owner's concrete object type. |
| `MICROSOFT_ENTRA_ID_LIST_SERVICE_PRINCIPALS` | List Service Principals | List Microsoft Entra enterprise applications and service principals with OData filtering, search, ordering, and cursor pagination. Selection and output schemas structurally exclude password credentials, key credentials, and token-encryption key identifiers. |
| `MICROSOFT_ENTRA_ID_LIST_SIGN_INS` | List Sign Ins | List retained Microsoft Entra sign-in events, newest first. Prefer a createdDateTime range filter to avoid timeouts. Results are limited by the tenant's retention policy; downloading sign-in logs requires Microsoft Entra ID P1 or P2, and delegated callers need a supported Entra role such as Reports Reader or Security Reader. P2-only risk details can be hidden. |
| `MICROSOFT_ENTRA_ID_LIST_SUBSCRIBED_SKUS` | List Subscribed SKUs | List commercial product subscriptions acquired by the Microsoft Entra tenant, including assigned-license counts, prepaid-unit availability, and included service plans. |
| `MICROSOFT_ENTRA_ID_LIST_USER_DIRECT_REPORTS` | List User Direct Reports | List directory objects that directly report to one user, with optional OData filtering, search, ordering, field selection, and safe cursor pagination. |
| `MICROSOFT_ENTRA_ID_LIST_USER_LICENSE_DETAILS` | List User License Details | List one tenant user's assigned product licenses and the provisioning state of their included service plans. |
| `MICROSOFT_ENTRA_ID_LIST_USER_MEMBERSHIPS` | List User Memberships | List groups, directory roles, and administrative units a user directly belongs to. This is not transitive. Hidden memberships require the additional Member.Read.Hidden grant and otherwise might be omitted. Advanced OData queries use an eventually consistent index, so recent membership changes might not appear immediately. |
| `MICROSOFT_ENTRA_ID_LIST_USERS` | List Users | List tenant users with optional OData filtering, search, ordering, field selection, and a safe continuation cursor. |
| `MICROSOFT_ENTRA_ID_REMOVE_ADMINISTRATIVE_UNIT_MEMBER` | Remove Administrative Unit Member | Remove a user, group, or device from a Microsoft Entra administrative unit, ending administration scoped through that membership. This is irreversible from this toolkit because the prior membership is not restored automatically. The request retains the mandatory /$ref suffix, so it removes only the membership reference and never deletes the member directory object. |
| `MICROSOFT_ENTRA_ID_REMOVE_APPLICATION_OWNER` | Remove Application Owner | Remove an owner from a Microsoft Entra application registration, revoking that principal's authority to administer the application. This is irreversible from this toolkit because prior ownership and administration access are not restored automatically. Microsoft recommends retaining at least two owners; verify that another valid owner will retain access before removal. The request preserves the required /$ref suffix, so it removes only the ownership reference and never deletes the owner directory object. With app-only authentication, the target application must be owned by the calling application when using Application.ReadWrite.OwnedBy. |
| `MICROSOFT_ENTRA_ID_REMOVE_APP_ROLE_ASSIGNMENT` | Remove App Role Assignment | Remove an app-role assignment from a Microsoft Entra resource service principal. This revokes the user, group, or client service principal's application access granted by that role. The removal is irreversible from this toolkit because the prior assignment is not restored automatically. |
| `MICROSOFT_ENTRA_ID_REMOVE_DIRECTORY_ROLE_MEMBER` | Remove Directory Role Member | Remove a principal from an activated Microsoft Entra directory role, revoking the role's tenant-wide administrative access. This is irreversible from this toolkit because the prior role membership is not restored automatically. The request retains the mandatory /$ref suffix, so it removes only the membership reference and never deletes the principal directory object. |
| `MICROSOFT_ENTRA_ID_REMOVE_GROUP_MEMBER` | Remove Group Member | Remove a direct member from an assigned-membership Microsoft Entra group, revoking access inherited through that membership. This is irreversible from this toolkit because the prior membership is not restored automatically. Dynamic groups do not support manual membership changes. Role-assignable groups additionally require RoleManagement.ReadWrite.Directory and a supported Microsoft Entra role. The request retains the required /$ref suffix so it removes only the membership reference and never deletes the member object. |
| `MICROSOFT_ENTRA_ID_REMOVE_GROUP_OWNER` | Remove Group Owner | Remove a user or service principal as an owner of a Microsoft Entra group, revoking that principal's authority to administer the group. This is irreversible from this toolkit because prior ownership is not restored automatically. Verify that another valid owner remains before removing the current owner; removing the last owner can leave ownership-dependent groups without an administrator. The owner directory object itself is not deleted. |
| `MICROSOFT_ENTRA_ID_REMOVE_ROLE_ASSIGNMENT` | Remove Role Assignment | Remove a unified Microsoft Entra directory role assignment and revoke the principal's administrative access at that assignment's scope. This is irreversible from this toolkit because the prior assignment is not restored automatically. |
| `MICROSOFT_ENTRA_ID_REMOVE_SERVICE_PRINCIPAL_OWNER` | Remove Service Principal Owner | Remove an owner from a Microsoft Entra enterprise application/service principal, revoking that principal's authority to administer it. This is irreversible from this toolkit because prior ownership and administration access are not restored automatically. Microsoft recommends retaining at least two owners; verify that another valid owner will retain access before removal. The request preserves the required /$ref suffix, so it removes only the ownership reference and never deletes the owner directory object. With app-only authentication, the target service principal must be owned by the calling application when using Application.ReadWrite.OwnedBy. |
| `MICROSOFT_ENTRA_ID_UPDATE_ADMINISTRATIVE_UNIT` | Update Administrative Unit | Update explicitly supplied profile or dynamic-membership properties of one Microsoft Entra administrative unit. The immutable restricted-member-management property is not accepted. |
| `MICROSOFT_ENTRA_ID_UPDATE_APPLICATION` | Update Application | Update explicitly supplied, allowlisted settings of one Microsoft Entra application registration. Password credentials, key credentials, and token encryption key selection are structurally unavailable. With app-only OAuth, the least-privilege grant can update only applications owned by the calling app. |
| `MICROSOFT_ENTRA_ID_UPDATE_GROUP` | Update Group | Update explicitly supplied, allowlisted properties of one Microsoft Entra group, including its dynamic membership rule or processing state. Properties that require separate permissions or delegated-only support are unavailable. |
| `MICROSOFT_ENTRA_ID_UPDATE_SERVICE_PRINCIPAL` | Update Service Principal | Update explicitly supplied, allowlisted settings of one Microsoft Entra enterprise application/service principal. Password credentials, key credentials, and token-encryption-key selection are structurally unavailable. With app-only OAuth, the least-privilege grant applies only to service principals owned by the calling application. |
| `MICROSOFT_ENTRA_ID_UPDATE_USER` | Update User | Update allowlisted, non-credential profile properties for one Microsoft Entra user. Only explicitly supplied fields are changed; use null only on fields whose description permits clearing. Account status, passwords, authentication methods, identities, phone properties, lifecycle data, and custom security attributes are intentionally unavailable. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Microsoft Entra ID MCP server provides comprehensive access to Microsoft Entra ID operations through Composio. Once connected, Hermes can perform all major Microsoft Entra ID actions on your behalf using natural language commands.

## Complete Code

None listed.

## Conclusion

### Way Forward
With Microsoft Entra ID connected, Hermes can now act on your behalf whenever it detects a relevant task or you ask it to.
From here, you can extend Hermes further:
- Connect more apps: Calendar, Slack, Notion, Linear, and hundreds of others are available through the same Composio Connect setup. Each new integration compounds what Hermes can do for you.
- Build workflows across tools: Once multiple apps are connected, Hermes can chain actions together — turn an email into a calendar invite, a Slack message into a Linear ticket, or a meeting note into a follow-up draft.
- Let it learn your patterns: The more you use Hermes, the better it gets at anticipating how you'd handle recurring tasks. Give it feedback on drafts and decisions, and it will adapt.
If you run into trouble or want to share what you've built, join the [community](https://discord.com/invite/composio) or check out the [Docs](https://docs.composio.dev?utm_source=toolkits&utm_medium=framework_template&utm_campaign=hermes&utm_content=docs) for deeper configuration options.

## How to build Microsoft Entra ID MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/microsoft_entra_id/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/microsoft_entra_id/framework/claude-cowork)
- [Atomic Agent](https://composio.dev/toolkits/microsoft_entra_id/framework/atomic-agent)

## Related Toolkits

- [Supabase](https://composio.dev/toolkits/supabase) - Supabase is an open-source backend platform offering scalable Postgres databases, authentication, storage, and real-time APIs. It lets developers build modern apps without managing infrastructure.
- [Codeinterpreter](https://composio.dev/toolkits/codeinterpreter) - Codeinterpreter is a Python-based coding environment with built-in data analysis and visualization. It lets you instantly run scripts, plot results, and prototype solutions inside supported platforms.
- [1password](https://composio.dev/toolkits/_1password) - 1Password is a password manager and digital vault for storing logins, secrets, notes, and secure documents. It helps individuals and teams protect credentials, share access safely, and reduce password risk.
- [Ably](https://composio.dev/toolkits/ably) - Ably is a real-time messaging platform for live chat and data sync in modern apps. It offers global scale and rock-solid reliability for seamless, instant experiences.
- [Abuselpdb](https://composio.dev/toolkits/abuselpdb) - Abuselpdb is a central database for reporting and checking IPs linked to malicious online activity. Use it to quickly identify and report suspicious or abusive IP addresses.
- [Alchemy](https://composio.dev/toolkits/alchemy) - Alchemy is a blockchain development platform offering APIs and tools for Ethereum apps. It simplifies building and scaling Web3 projects with robust infrastructure.
- [Algolia](https://composio.dev/toolkits/algolia) - Algolia is a hosted search API that powers lightning-fast, relevant search experiences for web and mobile apps. It helps developers deliver instant, typo-tolerant, and scalable search without complex infrastructure.
- [Anakin](https://composio.dev/toolkits/anakin_io) - Anakin is a web automation platform offering scraping, crawling, search, and browser automation. Use it to extract structured data, automate site tasks, and monitor web changes reliably.
- [Anchor browser](https://composio.dev/toolkits/anchor_browser) - Anchor browser is a developer platform for AI-powered web automation. It transforms complex browser actions into easy API endpoints for streamlined web interaction.
- [Apiflash](https://composio.dev/toolkits/apiflash) - Apiflash is a website screenshot API for programmatically capturing web pages. It delivers high-quality screenshots on demand for automation, monitoring, or reporting.
- [Apiverve](https://composio.dev/toolkits/apiverve) - Apiverve delivers a suite of powerful APIs that simplify integration for developers. It's designed for reliability and scalability so you can build faster, smarter applications without the integration headache.
- [Appcircle](https://composio.dev/toolkits/appcircle) - Appcircle is an enterprise-grade mobile CI/CD platform for building, testing, and publishing mobile apps. It streamlines mobile DevOps so teams ship faster and with more confidence.
- [Appdrag](https://composio.dev/toolkits/appdrag) - Appdrag is a cloud platform for building websites, APIs, and databases with drag-and-drop tools and code editing. It accelerates development and iteration by combining hosting, database management, and low-code features in one place.
- [Appveyor](https://composio.dev/toolkits/appveyor) - AppVeyor is a cloud-based continuous integration service for building, testing, and deploying applications. It helps developers automate and streamline their software delivery pipelines.
- [Authyo](https://composio.dev/toolkits/authyo) - Authyo is a REST API service for passwordless authentication, OTP verification, session management, and transactional notifications. Use it to add secure login flows and user verification without building auth infrastructure from scratch.
- [AWS Marketplace MCP](https://composio.dev/toolkits/aws_marketplace_mcp) - AWS Marketplace MCP provides MCP access to AWS Marketplace's cloud software, data, and services catalog. Use it to discover, compare, and evaluate 30K+ AWS Marketplace listings faster.
- [Azure Monitor Activity Log](https://composio.dev/toolkits/azure_monitor_activity_log) - Azure Monitor Activity Log is Azure's service that records management and control-plane events for a subscription. Use it to audit changes, troubleshoot issues, and track resource operations across your Azure resources.
- [Backendless](https://composio.dev/toolkits/backendless) - Backendless is a backend-as-a-service platform for mobile and web apps, offering database, file storage, user authentication, and APIs. It helps developers ship scalable applications faster without managing server infrastructure.
- [Baserow](https://composio.dev/toolkits/baserow) - Baserow is an open-source no-code database platform for building collaborative data apps. It makes it easy for teams to organize data and automate workflows without writing code.
- [Bench](https://composio.dev/toolkits/bench) - Bench is a benchmarking tool for automated performance measurement and analysis. It helps you quickly evaluate, compare, and track your systems or workflows.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Microsoft Entra ID MCP?

With a standalone Microsoft Entra ID MCP server, the agents and LLMs can only access a fixed set of Microsoft Entra ID tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Microsoft Entra ID and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Hermes?

Yes, you can. Hermes fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Microsoft Entra ID tools.

### Can I manage the permissions and scopes for Microsoft Entra ID while using Tool Router?

Yes, absolutely. You can configure which Microsoft Entra ID scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Microsoft Entra ID data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
