使用说明
🐦 组
您的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 status
3.使用CLI
flok mail list # List inbox
flok auth status # Check auth
flok serve # Start MCP server
4.用作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服务器 |
许可证
麻省理工学院
