飞书日历 MCP 服务器

飞书日历 MCP 服务器

将飞书日历 API 封装为 MCP 服务器,支持日历、日程、订阅和忙碌状态的查询与管理。

Category
Visit Server

README

飞书日历 MCP 服务器

Feishu Calendar MCP Server - 用于将飞书日历 API 包装成 Model Context Protocol (MCP) 服务器。

功能特性

  • 日历管理: 获取、创建、更新、删除日历
  • 日程管理: 获取、创建、更新、删除日程事件
  • 订阅管理: 订阅/取消订阅日历
  • 忙碌状态: 查询用户忙碌状态和可用时间
  • 简单认证: 支持多种认证方式,推荐使用 app_access_token(最简单)

快速开始

1. 安装依赖

npm install
npm run build

2. 获取飞书应用凭证

  1. 访问 飞书开放平台
  2. 创建自建应用
  3. 获取 App IDApp Secret

3. 配置应用权限

在飞书开放平台配置应用:

  1. 进入你的应用管理页面
  2. 权限管理权限配置,开通以下权限:
    • calendar:calendar - 查看、管理日历
    • calendar:event - 查看、创建、编辑日程

4. 配置认证方式

本服务器支持三种认证方式,推荐使用方式一(最简单)


方式一:App Access Token(推荐,最简单)

只需配置 app_idapp_secret,系统自动获取 app_access_token。

FEISHU_APP_ID=cli_xxxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxx
FEISHU_USE_APP_TOKEN=true

无需任何额外配置,这是最简单的方式!


方式二:Refresh Token(自动刷新)

通过 OAuth 授权获取 refresh_token,系统会自动刷新 access_token。

FEISHU_APP_ID=cli_xxxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxx
FEISHU_REFRESH_TOKEN=你的刷新令牌

运行授权脚本获取 refresh_token:

npm run auth

按照提示在浏览器中完成授权,refresh_token 会自动保存到 .env 文件。


方式三:User Access Token(手动管理)

直接使用 user_access_token,但需要注意 token 有效期约 2 小时,过期需要重新获取。

FEISHU_APP_ID=cli_xxxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxx
FEISHU_USER_ACCESS_TOKEN=你的用户访问令牌

5. 在 Claude Desktop 中使用

编辑 Claude Desktop 配置文件:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

配置方式选择

根据你的安装方式选择对应的配置:


方式一:全局安装(推荐,最简单)

先全局安装:

npm install -g feishu-calendar-mcp

配置:

{
  "mcpServers": {
    "feishu-calendar": {
      "command": "feishu-calendar-mcp",
      "args": [],
      "env": {
        "FEISHU_APP_ID": "your_app_id",
        "FEISHU_APP_SECRET": "your_app_secret",
        "FEISHU_USE_APP_TOKEN": "true"
      }
    }
  }
}

方式二:使用 npx(无需安装)

配置:

{
  "mcpServers": {
    "feishu-calendar": {
      "command": "npx",
      "args": ["-y", "feishu-calendar-mcp"],
      "env": {
        "FEISHU_APP_ID": "your_app_id",
        "FEISHU_APP_SECRET": "your_app_secret",
        "FEISHU_USE_APP_TOKEN": "true"
      }
    }
  }
}

方式三:本地开发路径

如果你在开发目录下使用:

{
  "mcpServers": {
    "feishu-calendar": {
      "command": "node",
      "args": ["/absolute/path/to/feishu-calendar/dist/index.js"],
      "env": {
        "FEISHU_APP_ID": "your_app_id",
        "FEISHU_APP_SECRET": "your_app_secret",
        "FEISHU_USE_APP_TOKEN": "true"
      }
    }
  }
}

认证方式选择

使用 App Access Token(推荐):

"env": {
  "FEISHU_APP_ID": "your_app_id",
  "FEISHU_APP_SECRET": "your_app_secret",
  "FEISHU_USE_APP_TOKEN": "true"
}

使用 Refresh Token:

"env": {
  "FEISHU_APP_ID": "your_app_id",
  "FEISHU_APP_SECRET": "your_app_secret",
  "FEISHU_REFRESH_TOKEN": "your_refresh_token"
}

配置完成后,重启 Claude Desktop 即可使用。

6. 测试连接

npm run build
npx tsx test-client.ts

可用工具

日历相关

工具名 描述 必需参数
feishu_get_calendar_list 获取日历列表 -
feishu_get_calendar 获取日历详情 calendar_id
feishu_create_calendar 创建日历 summary
feishu_update_calendar 更新日历 calendar_id
feishu_delete_calendar 删除日历 calendar_id

日程事件相关

工具名 描述 必需参数
feishu_get_event_list 获取日程列表 calendar_id
feishu_get_event 获取日程详情 calendar_id, event_id
feishu_create_event 创建日程 calendar_id, summary, start_time, end_time
feishu_update_event 更新日程 calendar_id, event_id
feishu_delete_event 删除日程 calendar_id, event_id

订阅相关

工具名 描述 必需参数
feishu_subscribe_calendar 订阅日历 calendar_id
feishu_unsubscribe_calendar 取消订阅日历 calendar_id

忙碌状态相关

工具名 描述 必需参数
feishu_get_free_busy 查询忙碌状态 calendar_ids, start_time, end_time
feishu_get_available_time 获取可用时间 calendar_id, start_time, end_time, duration_minutes

使用示例

在 Claude Desktop 中使用

查询我的日历列表:

请帮我查询所有日历

创建一个日程:

帮我创建一个明天下午2点的会议,主题是"产品讨论会",时长1小时

查询某段时间的空闲时间:

查询明天上午9点到12点之间,我有哪段空闲时间可以安排30分钟的会议

API 直接调用示例

创建日程(完整参数)

curl -i -X POST \
  'https://open.feishu.cn/open-apis/calendar/v4/calendars/{calendar_id}/events?user_id_type=open_id' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {your_user_access_token}' \
  -d '{
    "summary": "团队周会",
    "description": "每周项目进度同步会议",
    "start_time": {
      "timestamp": "1738360800",
      "timezone": "Asia/Shanghai"
    },
    "end_time": {
      "timestamp": "1738364400",
      "timezone": "Asia/Shanghai"
    },
    "visibility": "default",
    "attendee_ability": "can_see_others",
    "free_busy_status": "busy",
    "location": "会议室 A"
  }'

参数说明

时间参数

参数 类型 说明 示例
timestamp string Unix 时间戳(秒) "1738360800"
timezone string 时区 "Asia/Shanghai"

注意: 飞书 API 使用级时间戳,不是毫秒!

可见性 (visibility)

说明
default 默认
public 公开
private 私密

参与者能力 (attendee_ability)

说明
can_see_others 可见其他参与者
cannot_see_others 不可见其他参与者

忙碌状态 (free_busy_status)

说明
busy 忙碌
free 空闲

开发

# 安装依赖
npm install

# 开发模式运行
npm run dev

# 构建
npm run build

注意事项

  1. 认证方式: 推荐使用 app_access_token(只需 app_id 和 app_secret,最简单)
  2. Token 刷新: refresh_token 会自动刷新 access_token,无需手动干预
  3. 时间格式: API 使用 Unix 时间戳(秒)
  4. 权限配置: 确保应用已获取足够的权限
  5. API 限制: 飞书 API 有调用频率限制,请注意控制调用频率

许可证

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured