🐦 组
您的Microsoft 365运营商失败了。 Swift CLI+MCP服务器,适用于邮件、日历、联系人和OneDrive-全部通过Microsoft Graph API。
______________________________________________________________________
它的作用
Flok为您(和您的AI代理)提供了对Microsoft 365的完全访问权限:
- 📬 邮件 --列出、阅读、发送、回复、搜索、移动、删除
- 📅 日历 --事件、日程安排、忙/闲、接受/拒绝
- 👤 联系人 --CRUD+搜索
- 📁 OneDrive --浏览、下载、搜索文件
- 🔓 认证 --设备代码流+钥匙链令牌存储
- 🤖 MCP服务器 --通过stdio为AI代理提供20多种工具
建筑
Sources/
├── Core/ # Graph client, auth, models (zero CLI deps)
│ ├── Auth/ # Device code flow, Keychain storage, token manager
│ ├── Graph/ # HTTP client with retry, pagination
│ └── Models/ # Mail, Calendar, Contact, Drive types
├── CLI/ # Commander subcommands
├── MCP/ # MCP server, tools, resources, prompts
│ ├── Tools/ # Handler per operation (mail, calendar, etc.)
│ ├── Resources/ # Context injection (inbox summary, today's calendar)
│ └── Prompts/ # Workflow templates (triage, schedule, brief)
└── Executable/ # Entry point关键决策:
- URL会话 对于HTTP(不是AsyncHTTPClient)——更简单、足够
- 钥匙扣优先 令牌存储——macOS原生、安全
- 设备代码流 --适用于任何终端、无头、SSH
- Swift 6 严格货币,存在主义
- 处理器模式 对于MCP工具, 提供者模式 用于Graph API
快速开始
1.注册Azure AD应用程序
- 首选 Azure门户→ 应用注册
- 新注册→ 名称:“Flok”→ 个人+工作账户
- 允许公共客户端流 =是
- 复制 应用程序(客户端)ID
2.安装并验证
# Clone and build
git clone https://github.com/RyanLisse/Flok.git
cd Flok
swift build
# Set your client ID
export FLOK_CLIENT_ID="your-app-client-id"
# Login (opens browser for device code)
flok auth login
# Verify
flok auth status3.使用CLI
flok mail list # List inbox
flok auth status # Check auth
flok serve # Start MCP server4.用作MCP服务器
添加到MCP客户端配置中:
{
"mcpServers": {
"flok": {
"command": "/path/to/flok",
"args": ["serve"],
"env": {
"FLOK_CLIENT_ID": "your-client-id"
}
}
}
}MCP工具
| 工具 | 描述 | 写吗? |
|---|---|---|
list-mail | 列出收件箱/文件夹中的邮件 | 否 |
read-mail | 获取完整消息内容 | 否 |
send-mail | 发送新电子邮件 | 是 |
reply-mail | 回复消息 | 是 |
search-mail | 搜索邮件 | 否 |
move-mail | 移动到文件夹 | 是 |
delete-mail | 删除消息 | 是 |
list-events | 列出日历事件 | 否 |
get-event | 获取事件详细信息 | 否 |
create-event | 创建日历事件 | 是 |
respond-event | 接受/拒绝/暂定 | 是 |
check-availability | 忙/闲查找 | 否 |
list-contacts | 列出/搜索联系人 | 否 |
get-contact | 获取联系方式 | 否 |
create-contact | 创建新联系人 | 是 |
list-files | 浏览OneDrive | 否 |
get-file | 获取文件元数据 | 否 |
search-files | 搜索OneDrive | 否 |
graph-api | 原始图形API转义填充 | 取决于 |
代理本机功能
- MCP资源 --自动注入上下文:
flok://inbox/summary,flok://calendar/today,flok://me/profile - MCP提示 --可组合的工作流程:分类收件箱、安排会议、起草和审查、每日简报、联系人查找
- 逃生舱口 —
graph-api该工具直接调用ANY Graph端点 - 完工信号 --每个工具结果包括
nextActions建议 - 只读模式 --设置
FLOK_READ_ONLY=true禁用所有写入操作
配置
| 设置 | CLI | 环境变量 | 默认值 |
|---|---|---|---|
| 客户端ID | -- | FLOK_CLIENT_ID | (必填) |
| 租户ID | -- | FLOK_TENANT_ID | common |
账户 FLOK_ACCOUNT | default | ||
| 只读 | -- | FLOK_READ_ONLY | false |
| API版本 | - | FLOK_API_VERSION | v1.0 |
所需的Azure权限
Mail.ReadWrite
Calendars.ReadWrite
Contacts.ReadWrite
Files.ReadWrite
User.Read
offline_access依赖项
| 包装 | 用途 |
|---|---|
| steipete/指挥官 | CLI框架 |
| modelcontextprotocol/swift-sdk | MCP服务器 |
许可证
麻省理工学院
