o365管理员MCP
基于技能的Microsoft 365管理MCP服务器,围绕API而非应用程序进行组织。功能是从指令文件中延迟加载的,而不是作为大型工具清单公开。
建筑
此MCP仅暴露 4个基础工具:
| 工具 | 目的 |
|---|---|
list_skills | 返回可用技能和资源参考 |
read_skill | 将技能或资源引用加载到上下文中 |
graph_api_call | 通用图形API执行器 |
powerplatform_api_call | 通用动力平台API执行器 |
没有特定于域的工具。 Claude阅读技能/资源来学习API调用什么来构建,然后通过通用工具执行。
目录结构
o365-Admin/
├── src/
│ └── index.ts # MCP server with 4 base tools
├── skills/
│ ├── graph-api.md # Core: auth, request patterns, pagination, errors
│ └── powerplatform-api.md # Core: auth, environments, request patterns
├── resources/
│ ├── graph/
│ │ ├── sites.md # SharePoint: sites, drives, lists, permissions
│ │ ├── teams.md # Teams: teams, channels, tabs, apps
│ │ ├── users.md # Entra: users, groups, directory roles
│ │ └── mail.md # Exchange: messages, folders, rules, calendars
│ └── powerplatform/
│ ├── flows.md # Flow definitions, runs, connections
│ └── environments.md # Environment management, DLP policies
├── README.md
├── package.json
└── tsconfig.json先决条件
- Node.js 18+
- 具有适当权限的Azure AD应用程序注册
- 访问Microsoft 365租户
Azure AD应用程序注册
步骤1:创建应用程序注册
- 首选 Azure门户 >Azure Active Directory>应用程序注册
- 点击“新建注册”
- 姓名:
o365-Admin-MCP - 支持的帐户类型:单租户(或多租户,如果需要)
- 点击“注册”
步骤2:创建客户端密码
- 在您的应用程序注册中,转到“证书和机密”
- 点击“新建客户端密码”
- 添加描述和到期时间
- 立即复制机密值 (仅显示一次)
步骤3:添加API权限
转到“API权限”>“添加权限”>《Microsoft Graph》>“应用程序权限”
根据您的需要添加以下权限:
SharePoint/OneDrive:
Sites.ReadWrite.AllSites.Manage.All
团队:
Team.CreateTeamSettings.ReadWrite.AllChannel.CreateChannelSettings.ReadWrite.AllTeamsApp.ReadWrite.All
用户/目录:
Directory.Read.AllDirectory.ReadWrite.AllUser.ReadWrite.AllGroup.ReadWrite.AllRoleManagement.ReadWrite.Directory
邮件/日历:
Mail.ReadWriteMail.SendCalendars.ReadWriteMailboxSettings.ReadWrite
步骤4:授予管理员同意
点击“授予\[您的租户\]管理员同意”并确认。
第五步:记下你的ID
从应用程序注册“概述”页面,复制:
- 应用程序(客户端)ID
- 目录(租户)ID
环境配置
设置以下环境变量:
export AZURE_CLIENT_ID="your-client-id"
export AZURE_CLIENT_SECRET="your-client-secret"
export AZURE_TENANT_ID="your-tenant-id"或者创建一个 .env 文件(记得添加到 .gitignore):
AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret
AZURE_TENANT_ID=your-tenant-id安装
# Clone the repository
git clone https://github.com/yourusername/o365-Admin.git
cd o365-Admin
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run the server
npm start发展
# Run in development mode (no build step)
npm run dev与Claude一起使用
MCP配置
添加到您的Claude MCP设置中:
{
"mcpServers": {
"o365-admin": {
"command": "node",
"args": ["path/to/o365-Admin/dist/index.js"],
"env": {
"AZURE_CLIENT_ID": "your-client-id",
"AZURE_CLIENT_SECRET": "your-client-secret",
"AZURE_TENANT_ID": "your-tenant-id"
}
}
}
}工作流示例
- 列出可用资源:
Use list_skills to see what's available- 加载相关文件:
Use read_skill with type="resource" and name="graph/sites"- 执行API调用:
Use graph_api_call with method="GET" and endpoint="/sites/root"对话示例
User: Create a new SharePoint document library called "Project Files" in the IT site
Claude:
1. [Uses read_skill to load graph/sites resource]
2. [Uses graph_api_call GET /sites/contoso.sharepoint.com:/sites/IT to get site ID]
3. [Uses graph_api_call POST /sites/{site-id}/lists with library config]
Result: Document library "Project Files" created successfully.添加新资源
要用新功能扩展MCP:
- 创建新
.md文件在相应的目录中:
- skills/ 用于核心API模式 - resources/graph/ 用于Graph API端点 - resources/powerplatform/ 适用于Power Platform端点
- 遵循现有格式:
- 以“#Title”开头 - 包括“##所需权限”部分 - 用方法、URL和示例正文记录每个端点 - 用标记不完整的部分 一切:
- 新文件将自动出现在
list_skills输出
资源模板
# Resource Name
Brief description of what this resource covers.
## Required Permissions
| Permission | Type | Description |
|------------|------|-------------|
| Permission.Name | Application | What it allows |
## Operation Name
Description of the operation.
\`\`\`
METHOD /endpoint/path
Content-Type: application/json
{
"property": "value"
}
\`\`\`安全考虑
- 从不将凭据提交到版本控制
- 使用环境变量或安全密钥管理
- 分配权限时应用最小特权原则
- 定期轮换客户机密
- 监控API使用情况以发现异常
许可证
麻省理工学院
