feishu-automation について
feishu-automationは、lark-mcpツールを使ってFeishuの操作を自動化するスキルです。Bitable、メッセージ、ドキュメント、グループ、Wiki、カレンダー、タスクを含むワークフローの構築に使えます。
主な機能
- 01Bitableのレコードを作成・管理
- 02テキスト、リッチテキスト、カードメッセージを送信
- 03ドキュメントを検索・作成・編集
- 04グループとメンバーを管理
- 05Wiki、カレンダーイベント、タスクを操作
- 06Markdownやオフィス文書をクラウドドキュメントにインポート
活用シーン
- 01Bitableで日報を集めて集計を送信
- 02承認レコードの変更を承認者に通知
- 03タスクを割り当てて完了状況を追跡
- 04レポートを作成してFeishuドキュメントを共有
MCP 対応
lark-mcpツールを通じて、Bitable、メッセージ、ドキュメント、グループ、Wiki、カレンダー、タスクなどのFeishu操作をMCPクライアントに提供します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aaaaqwq/ agi-super-team --skill feishu-automationインストール後、Claude Code で/feishu-automationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
bitable.pycard_builder.pyfeishu_api.pyfeishu-mcp-setup.jsfeishu-mcp-setup.shfeishu-send.shscripts/md2feishu.sh詳細
Lark 全チャネル自動化
lark-mcp ツールを使用して、Lark プラットフォームの包括的な自動化操作を実現します。
主な機能
1. Bitable
- Bitable とデータテーブルの作成
- フィールドの追加、変更、削除
- レコードデータの追加、削除、変更、検索
- データの一括インポート/エクスポート
- データのフィルタリングと並べ替え
2. メッセージ送信
- テキスト、リッチテキスト、カードメッセージの送信
- グループメッセージとダイレクトメッセージ
- メッセージテンプレートとインタラクティブカード
- ファイルと画像の送信
3. ドキュメント管理
- クラウドドキュメントの検索
- 新しいドキュメントの作成
- ドキュメント内容の編集
- ドキュメント権限の管理
- ドキュメントの共同編集者の管理
4. グループ管理
- グループの作成
- メンバーの追加/削除
- グループ一覧の取得
- グループ情報の照会
5. ナレッジベース(Wiki)
- ナレッジベースのノードを検索
- ノードの詳細を取得
- ナレッジベースのコンテンツを作成、管理
6. カレンダーとタスク
- カレンダーイベントの作成と検索
- タスクの作成と管理
- タスクの割り当てと追跡
クイックスタート
MCP の利用可否を確認
// 检查 lark-mcp 工具是否可用
// 可用工具前缀:mcp__lark-mcp_
テストメッセージを送信
// 发送文本消息到群组
await mcp__lark-mcp_sendMessage({
receive_id: "oc_xxxxxxxxx",
msg_type: "text",
content: JSON.stringify({
text: "Hello from Clawdbot!"
})
});
ワークフロー
データ同期の流れ
- データソースに接続
- データ形式を変換
- Bitable を作成/更新
- データを一括書き込み
- 通知を送信
メッセージ配信の流れ
- イベントをトリガー(定期実行/イベント駆動)
- メッセージ内容を作成
- 受信者 ID を取得
- メッセージを送信
- ログを記録
ドキュメント自動化の流れ
- ドキュメントテンプレートを取得
- 内容を入力
- 新しいドキュメントを作成
- 権限を設定
- チームに共有
API ツールリファレンス
Bitable 関連
createBitable- Bitable を作成createTable- データテーブルを作成addRecord- レコードを追加updateRecord- レコードを更新deleteRecord- レコードを削除searchRecords- レコードを検索getRecord- レコードの詳細を取得
メッセージ関連
sendMessage- メッセージを送信getMessages- メッセージ履歴を取得replyMessage- メッセージに返信
ドキュメント関連
searchDocs- ドキュメントを検索createDoc- ドキュメントを作成getDoc- ドキュメント内容を取得updateDoc- ドキュメントを更新setDocPermission- ドキュメント権限を設定
📄 Markdown をクラウドドキュメントにインポート(推奨方法)
ベストプラクティス:ローカルの Markdown ファイルを直接 Lark クラウドドキュメントにインポートすると、書式が完全に保持されます。
# 1. 获取 access_token
TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
-H 'Content-Type: application/json' \
-d '{"app_id":"YOUR_APP_ID","app_secret":"YOUR_APP_SECRET"}' \
| python3 -c "import sys,json; print(json.load(sys.stdin).get('tenant_access_token',''))")
# 2. 上传 md 文件到飞书云盘
FILE_TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/drive/v1/files/upload_all' \
-H "Authorization: Bearer $TOKEN" \
-F "file_name=document.md" \
-F "parent_type=explorer" \
-F "parent_node=" \
-F "size=$(stat -c%s /path/to/document.md)" \
-F "file=@/path/to/document.md" \
| python3 -c "import sys,json; print(json.load(sys.stdin).get('data',{}).get('file_token',''))")
# 3. 导入为飞书云文档
TICKET=$(curl -s -X POST 'https://open.feishu.cn/open-apis/drive/v1/import_tasks' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"file_extension": "md",
"file_token": "'"$FILE_TOKEN"'",
"type": "docx",
"point": {"mount_type": 1, "mount_key": ""}
}' | python3 -c "import sys,json; print(json.load(sys.stdin).get('data',{}).get('ticket',''))")
# 4. 等待导入完成,获取文档链接
sleep 2
curl -s -X GET "https://open.feishu.cn/open-apis/drive/v1/import_tasks/$TICKET" \
-H "Authorization: Bearer $TOKEN" \
| python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('data',{}).get('result',{}).get('url',''))"
対応しているインポート形式:
md→ Markdowndocx→ Word ドキュメントxlsx→ Excel シート
注意事項:
- インポートは非同期操作です。結果を取得するには
import_tasks/{ticket}をポーリングする必要があります mount_type: 1は「マイスペース」へのインポートを示します- インポート後のドキュメント URL の形式:
https://xxx.feishu.cn/docx/{token}
📤 クラウドドキュメントの完全な出力手順(標準操作)
クラウドドキュメントを出力する際は、毎回以下の手順を完了する必要があります:
- ローカルの Markdown ファイルを生成
- Lark ドライブにアップロード →
drive/v1/files/upload_all - クラウドドキュメントとしてインポート →
drive/v1/import_tasks - 権限を組織内で編集可能に設定 →
drive/v1/permissions/{token}/public - リンクを対象のグループに送信
# 完整流程脚本
TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
-H 'Content-Type: application/json' \
-d '{"app_id":"APP_ID","app_secret":"APP_SECRET"}' \
| python3 -c "import sys,json; print(json.load(sys.stdin).get('tenant_access_token',''))")
# 1. 上传文件
FILE_TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/drive/v1/files/upload_all' \
-H "Authorization: Bearer $TOKEN" \
-F "file_name=document.md" \
-F "parent_type=explorer" \
-F "parent_node=" \
-F "size=$(stat -c%s document.md)" \
-F "[email protected]" \
| python3 -c "import sys,json; print(json.load(sys.stdin).get('data',{}).get('file_token',''))")
# 2. 导入为云文档
TICKET=$(curl -s -X POST 'https://open.feishu.cn/open-apis/drive/v1/import_tasks' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"file_extension":"md","file_token":"'"$FILE_TOKEN"'","type":"docx","point":{"mount_type":1,"mount_key":""}}' \
| python3 -c "import sys,json; print(json.load(sys.stdin).get('data',{}).get('ticket',''))")
sleep 2
# 3. 获取文档 token
DOC_RESULT=$(curl -s -X GET "https://open.feishu.cn/open-apis/drive/v1/import_tasks/$TICKET" \
-H "Authorization: Bearer $TOKEN")
DOC_TOKEN=$(echo "$DOC_RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('data',{}).get('result',{}).get('token',''))")
DOC_URL=$(echo "$DOC_RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('data',{}).get('result',{}).get('url',''))")
# 4. 设置权限:组织内可编辑
curl -s -X PATCH "https://open.feishu.cn/open-apis/drive/v1/permissions/$DOC_TOKEN/public?type=docx" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"external_access_entity":"open","security_entity":"anyone_can_view","comment_entity":"anyone_can_view","share_entity":"anyone","link_share_entity":"tenant_editable"}'
# 5. 发送到群
curl -s -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"receive_id":"CHAT_ID","msg_type":"text","content":"{\"text\":\"📄 文档已上传:\\n\\n'"$DOC_URL"'\"}"}'
権限設定の説明:
link_share_entity: "tenant_editable"→ 組織内でリンクを取得した人が編集できますcomment_entity: "anyone_can_view"→ 誰でもコメントできますshare_entity: "anyone"→ 誰でも共有できます
グループ関連
createGroup- グループを作成addMember- メンバーを追加getGroupList- グループ一覧を取得getGroupInfo- グループ情報を取得
活用シーン
1. 日報収集の自動化
- 毎日定刻にテーブルレコードを作成
- メンバーが日報を記入
- 統計を自動集計
- グループに送信
2. 承認ワークフロー
- 承認用テーブルを作成
- 状態の変更を監視
- 承認者に自動通知
- 承認履歴を記録
3. タスク管理
- タスクテーブルを作成
- メンバーにタスクを割り当て
- タスクのリマインダーを送信
- 完了状況を追跡
4. 顧客管理
- 顧客情報テーブル
- フォローアップ記録
- 自動リマインダー
- データの可視化
5. レポート生成
- テーブルからデータを抽出
- 統計レポートを生成
- Lark ドキュメントを作成
- 定期的に更新情報を配信
ベストプラクティス
認証設定
- 提供された App ID と App Secret を使用
- API 呼び出し頻度の制限を遵守
- access_token をキャッシュ
データ操作
- 一括操作ではページネーションを使用
- データを書き込む前に形式を検証
- エラー処理と再試行を実装
- 操作ログを記録
メッセージ送信
- インタラクティブカードを使用して利便性を向上
- 送信頻度を適切に管理
- 機密情報の送信を避ける
- ユーザー操作に対応
権限管理
- 最小権限の原則
- 権限を定期的に確認
- 共同編集者のライフサイクルを管理
エラー処理
よくあるエラー
- 権限不足 - アプリの権限設定を確認
- レート制限エラー - 再試行と待機を実装
- 無効な ID - ユーザー/グループ ID の形式を検証
- ネットワークエラー - 再試行の仕組みを実装
再試行戦略
- 指数バックオフアルゴリズム
- 最大再試行回数の制限
- 失敗したリクエストを記録
- 管理者に通知
セキュリティに関する注意事項
- App Secret を保護する
- ログに機密情報を記録しない
- 環境変数を使用して認証情報を管理する
- アクセストークンを定期的にローテーションする
- データプライバシー規制を遵守する
コード例
Bitable を作成してデータを追加
// 创建多维表格
const bitable = await mcp__lark-mcp_createBitable({
name: "项目管理",
folder_token: "folder_token"
});
// 创建数据表
const table = await mcp__lark-mcp_createTable({
app_token: bitable.app_token,
table: {
name: "任务列表",
fields: [
{ field_name: "任务名称", type: 1 },
{ field_name: "负责人", type: 13 },
{ field_name: "状态", type: 3 },
{ field_name: "截止日期", type: 5 }
]
}
});
// 添加记录
await mcp__lark-mcp_addRecord({
app_token: bitable.app_token,
table_id: table.table_id,
fields: {
"任务名称": "完成项目文档",
"负责人": "user_id",
"状态": "进行中",
"截止日期": Date.now()
}
});
カードメッセージを送信
await mcp__lark-mcp_sendMessage({
receive_id: "chat_id",
msg_type: "interactive",
content: JSON.stringify({
config: {
wide_screen_mode: true
},
header: {
template: "turquoise",
title: {
content: "重要通知",
tag: "plain_text"
}
},
elements: [
{
tag: "div",
text: {
content: "**项目里程碑已完成**",
tag: "lark_md"
}
},
{
tag: "action",
actions: [
{
tag: "button",
text: {
content: "查看详情",
tag: "plain_text"
},
type: "primary",
url: "https://example.com"
}
]
}
]
})
});
データを一括インポート
const data = [
{ name: "张三", phone: "13800138000" },
{ name: "李四", phone: "13900139000" }
];
for (const item of data) {
await mcp__lark-mcp_addRecord({
app_token: "app_token",
table_id: "table_id",
fields: {
"姓名": item.name,
"电话": item.phone
}
});
// 避免限流
await new Promise(resolve => setTimeout(resolve, 100));
}
設定の検証
MCP サーバーを確認
# 检查 .claude.json 中的 lark-mcp 配置
cat ~/.claude.json | grep -A 15 "lark-mcp"
接続をテスト
// 发送测试消息验证连接
await mcp__lark-mcp_sendMessage({
receive_id: "your_chat_id",
msg_type: "text",
content: JSON.stringify({
text: "🎉 飞书 MCP 连接成功!"
})
});
応用的な使い方
Webhook の統合
- Lark の Webhook イベントを監視
- ワークフローを自動でトリガー
- リアルタイムでデータを同期
定期タスクの自動化
- レポートを定期送信
- データを自動バックアップ
- 定期的にクリーンアップ
クロスプラットフォーム連携
- GitHub と連携(Issue の同期)
- メールと連携(通知の配信)
- カレンダーと連携(予定管理)
トラブルシューティング
MCP ツールを利用できない
- Claude Desktop を再起動
- ネットワーク接続を確認
- 認証情報が有効か確認
- エラーログを確認
API 呼び出しの失敗
- アプリの権限設定を確認
- ユーザー/グループ ID を検証
- レート制限の状態を確認
- データ形式を確認
権限不足
- Lark 開発者プラットフォームにログイン
- アプリの権限範囲を確認
- 再認証
- 権限が有効になるまで待機
コメント
Markdown 対応