article
README
🚀 Outlook日历MCP服务器
这是一个MCP(模型上下文协议)服务器,它能为您提供对Outlook/微软365日历的只读访问功能,方便您获取日历信息。
🚀 快速开始
本项目是一个提供只读访问Outlook/微软365日历的MCP服务器,下面将为您介绍使用该项目的详细步骤。
✨ 主要特性
- 提供对Outlook/微软365日历的只读访问。
- 支持多种平台的构建和交叉编译。
- 支持使用YAML配置文件和环境变量进行配置。
📦 安装指南
克隆项目
git clone https://github.com/your-username/outlookmcp.git
cd outlookmcp
下载依赖
go mod download
💻 使用示例
构建应用程序
构建MCP服务器
# 为当前平台构建
go build -o outlook-mcp ./cmd/mcp
# 交叉编译Windows版本
GOOS=windows GOARCH=amd64 go build -o outlook-mcp.exe ./cmd/mcp
# 交叉编译macOS版本
GOOS=darwin GOARCH=amd64 go build -o outlook-mcp-mac ./cmd/mcp
# 交叉编译Linux版本
GOOS=linux GOARCH=amd64 go build -o outlook-mcp-linux ./cmd/mcp
构建CLI客户端
# 为当前平台构建
go build -o outlook-cli ./cmd/cli
# 交叉编译Windows版本
GOOS=windows GOARCH=amd64 go build -o outlook-cli.exe ./cmd/cli
# 交叉编译macOS版本
GOOS=darwin GOARCH=amd64 go build -o outlook-cli-mac ./cmd/cli
# 交叉编译Linux版本
GOOS=linux GOARCH=amd64 go build -o outlook-cli-linux ./cmd/cli
配置应用程序
配置文件
基于示例创建一个 config.yaml 文件:
outlook:
me: "John Doe"
max_attendees: 10
max_event_count: 50
skip_all_day_events: true
环境变量
创建一个包含您的Azure AD应用程序凭证的 .env 文件:
OUTLOOK_TENANT_ID=your-tenant-id
OUTLOOK_CLIENT_ID=your-client-id
OUTLOOK_CLIENT_SECRET=your-client-secret
📚 详细文档
项目结构
outlook/outlook_api.go- 用于与Outlook日历交互的内部APIcmd/mcp/main.go- 用于AI助手的MCP服务器实现cmd/cli/main.go- 测试用的命令行界面config.example.yaml- 示例配置文件
配置方式
有两种配置方式:
- 使用YAML配置文件(参考
config.example.yaml) - 使用环境变量
🔧 技术细节
先决条件
- Go 1.21或更高版本
- 微软365账户,具有日历访问权限
- 在Azure AD中注册的应用程序,并带有适当的权限
📄 许可证
暂未提供相关许可证信息。
⚠️ 重要提示
- 安全地存储客户端密钥(使用环境变量)
- 服务器仅提供日历数据的只读访问权限
- 没有实现写入操作
- 令牌仅在服务器执行期间内存中存储
Scan to contact