返回 MCP 目录
public公开dns本地运行

feishu-mcp-server

飞书MCP服务器是一个基于Model Context Protocol的服务,提供飞书API集成,使AI模型能够轻松与飞书服务交互。

article

README

🚀 FeiShu 项目文档

这是一个用于与 FeiShu(飞书)集成的工具包,支持多种功能模块开发,能帮助开发者更便捷地与飞书进行交互。

🚀 快速开始

此工具包能让你轻松实现与飞书的集成,下面为你介绍安装和基本使用方法。

📦 安装指南

安装依赖

npm install @feishu/abc123

💻 使用示例

基础用法

初始化配置

import { FeiShuClient } from '@feishu/core';

const config: ClientConfig = {
  appId: 'your_app_id',
  appSecret: 'your_app_secret'
};

const client = new FeiShuClient(config);

高级用法

消息发送

发送文本消息
await client.sendMessage('open_chat_id', 'hello world');
发送卡片消息
const card = {
  type: 'message_card',
  content: [{
    type: 'text',
    text: '卡片内容'
  }]
};

await client.sendCardMessage('open_chat_id', card);

📚 详细文档

错误处理

所有 API 请求错误将通过 FeiShuApiError 类进行包装:

try {
  // 执行 API 操作
} catch (error) {
  if (error instanceof FeiShuApiError) {
    // 处理特定的 API 错误
    console.error(`飞书 API 错误 (${error.code}): ${error.message}`);
  } else {
    // 处理通用错误
    console.error('意外错误:', error);
  }
  // 转换为用户友好的消息
  throw new FeiShuApiError('操作失败', { cause: error });
}

请参考错误处理文档:错误处理指南

扩展指南

添加新功能步骤

  1. 创建客户端类src/client/feature/ 目录下创建新客户端类:
// src/client/feature/feature-client.ts
export class FeatureClient extends ApiClient {
  async getFeatureData(id: string): Promise<FeatureData> {
    return this.request<FeatureResponse>('/feature/get', { id });
  }
}
  1. 创建服务类src/services/feature/ 目录下创建新服务类:
// src/services/feature/feature-service.ts
export class FeatureService {
  private client: FeatureClient;
  
  constructor(config: ApiClientConfig) {
    this.client = new FeatureClient(config);
  }
  
  async getFeature(id: string): Promise<Feature> {
    try {
      const data = await this.client.getFeatureData(id);
      return this.transformData(data);
    } catch (error) {
      handleError(error);
    }
  }
}
  1. 注册服务src/services/index.ts 中导出新服务:
// src/services/index.ts
export { FeatureService } from './feature/feature-service';
  1. 创建 MCP 工具src/server/tools/feature-tools.ts 中创建工具函数:
// src/server/tools/feature-tools.ts
export function createFeatureTool() {
  return {
    getFeature: async (id: string) => {
      const service = new FeatureService({ /* 配置 */ });
      return await service.getFeature(id);
    }
  };
}
  1. 使用新功能
import { createFeatureTool } from './tools/feature-tools';

const tool = createFeatureTool();
await tool.getFeature('123');

贡献指南

提交代码规范

请遵循以下提交规范:

  1. 每个提交必须有明确的提交信息
  2. 保持代码格式统一
  3. 提交前通过所有测试用例

创建新功能模块

  1. src/components/ 下创建新组件
  2. 实现组件逻辑
  3. 在示例页面中集成组件

项目结构

project/
├── src/
│   ├── client/
│   │   └── feature/
│   │       └── feature-client.ts
│   └── services/
│       └── feature/
│           └── feature-service.ts
└── tools/
    └── feature-tools.ts

📄 许可证

本项目遵循 MIT 协议。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端