Skip to main content
Glama

Feishu MCP Server

aily_v1.ts21 kB
import { z } from 'zod'; export type ailyV1ToolName = | 'aily.v1.ailySessionAilyMessage.create' | 'aily.v1.ailySessionAilyMessage.get' | 'aily.v1.ailySessionAilyMessage.list' | 'aily.v1.ailySession.create' | 'aily.v1.ailySession.delete' | 'aily.v1.ailySession.get' | 'aily.v1.ailySessionRun.cancel' | 'aily.v1.ailySessionRun.create' | 'aily.v1.ailySessionRun.get' | 'aily.v1.ailySessionRun.list' | 'aily.v1.ailySession.update' | 'aily.v1.appDataAssetTag.list' | 'aily.v1.appDataAsset.list' | 'aily.v1.appKnowledge.ask' | 'aily.v1.appSkill.get' | 'aily.v1.appSkill.list' | 'aily.v1.appSkill.start'; export const ailyV1AilySessionAilyMessageCreate = { project: 'aily', name: 'aily.v1.ailySessionAilyMessage.create', sdkName: 'aily.v1.ailySessionAilyMessage.create', path: '/open-apis/aily/v1/sessions/:aily_session_id/messages', httpMethod: 'POST', description: '[Feishu/Lark]-飞书智能伙伴创建平台-消息-发送智能伙伴消息-该 API 用于向某个飞书智能伙伴应用发送一条消息(Message);每个消息从属于一个活跃的会话(Session)', accessTokens: ['tenant', 'user'], schema: { data: z.object({ idempotent_id: z .string() .describe('幂等 ID(如使用 UUID 生成器或时间戳),同一会话下相同的幂等 ID 视为同一个消息(72h)'), content_type: z .string() .describe( '消息的类型,包括 `MDX` | `TEXT` 等- `MDX` 能够表达富文本信息结构,可参考 - `TEXT` 作为纯文本进行处理', ), content: z.string().describe('消息内容'), file_ids: z.array(z.string()).describe('消息中包含的文件 ID 列表').optional(), quote_message_id: z.string().describe('引用的消息 ID').optional(), mentions: z .array( z.object({ entity_id: z.string().describe('实体 ID').optional(), identity_provider: z.string().describe('身份提供者').optional(), key: z.string().describe('被@实体在消息体中的占位符').optional(), name: z.string().describe('被@实体的名称').optional(), aily_id: z.string().describe('飞书智能伙伴创建平台账号体系下的 ID').optional(), }), ) .describe('被@的实体') .optional(), }), path: z.object({ aily_session_id: z .string() .describe('会话 ID;参考 接口'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionAilyMessageGet = { project: 'aily', name: 'aily.v1.ailySessionAilyMessage.get', sdkName: 'aily.v1.ailySessionAilyMessage.get', path: '/open-apis/aily/v1/sessions/:aily_session_id/messages/:aily_message_id', httpMethod: 'GET', description: '[Feishu/Lark]-飞书智能伙伴创建平台-消息-获取智能伙伴消息-该 API 用于获取某个飞书智能伙伴应用的消息(Message)的详细信息;包括消息的内容、发送人等', accessTokens: ['tenant', 'user'], schema: { path: z.object({ aily_session_id: z .string() .describe('会话 ID;参考 接口'), aily_message_id: z.string().describe('消息 ID'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionAilyMessageList = { project: 'aily', name: 'aily.v1.ailySessionAilyMessage.list', sdkName: 'aily.v1.ailySessionAilyMessage.list', path: '/open-apis/aily/v1/sessions/:aily_session_id/messages', httpMethod: 'GET', description: '[Feishu/Lark]-飞书智能伙伴创建平台-消息-列出智能伙伴消息-该 API 用于列出某个飞书智能伙伴应用的某个会话(Session)下消息(Message)的详细信息;包括消息的内容、发送人等', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('本次请求获取的消息记录条数,默认 20').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), run_id: z.string().describe('过滤条件,按执行的唯一 ID 筛选').optional(), with_partial_message: z .boolean() .describe( '是否返回正在进行中(即流式输出中)的消息内容- 当设置为 `true` 时,返回的消息记录中、每个消息将额外包含一个 `status `字段(`IN_PROGRESS` | `COMPLETED`),此时 `content` 字段为当前时刻的消息内容- 当设置为 `false` 时,返回的消息记录仅包含已完成的消息', ) .optional(), }), path: z.object({ aily_session_id: z .string() .describe('会话 ID;参考 接口'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionCreate = { project: 'aily', name: 'aily.v1.ailySession.create', sdkName: 'aily.v1.ailySession.create', path: '/open-apis/aily/v1/sessions', httpMethod: 'POST', description: '[Feishu/Lark]-飞书智能伙伴创建平台-会话-创建会话-该 API 用于创建与某个飞书智能伙伴应用的一次会话(Session);当创建会话成功后,可以发送消息、创建运行', accessTokens: ['tenant', 'user'], schema: { data: z.object({ channel_context: z .string() .describe( '可自行构造的 Context ;在 Workflow 技能中可消费这部分全局变量', ) .optional(), metadata: z .string() .describe( '会话的自定义变量内容,变量数据保存在服务端 Session 中,可在 `GetSession` 时原样返回,无需在 API 调用侧存储', ) .optional(), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionDelete = { project: 'aily', name: 'aily.v1.ailySession.delete', sdkName: 'aily.v1.ailySession.delete', path: '/open-apis/aily/v1/sessions/:aily_session_id', httpMethod: 'DELETE', description: '[Feishu/Lark]-飞书智能伙伴创建平台-会话-删除会话-该 API 用于删除与某个飞书智能伙伴应用的一次会话(Session)', accessTokens: ['tenant', 'user'], schema: { path: z.object({ aily_session_id: z.string().describe('会话 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionGet = { project: 'aily', name: 'aily.v1.ailySession.get', sdkName: 'aily.v1.ailySession.get', path: '/open-apis/aily/v1/sessions/:aily_session_id', httpMethod: 'GET', description: '[Feishu/Lark]-飞书智能伙伴创建平台-会话-获取会话-该 API 用于获取与某个飞书智能伙伴应用的一次会话(Session)的详细信息,包括会话的状态、渠道上下文、创建时间等', accessTokens: ['tenant', 'user'], schema: { path: z.object({ aily_session_id: z.string().describe('会话 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionRunCancel = { project: 'aily', name: 'aily.v1.ailySessionRun.cancel', sdkName: 'aily.v1.ailySessionRun.cancel', path: '/open-apis/aily/v1/sessions/:aily_session_id/runs/:run_id/cancel', httpMethod: 'POST', description: '[Feishu/Lark]-飞书智能伙伴创建平台-运行-取消运行-该 API 用于中止某个飞书智能伙伴的一次运行', accessTokens: ['tenant', 'user'], schema: { path: z.object({ aily_session_id: z .string() .describe('会话 ID;参考 接口'), run_id: z.string().describe('运行的唯一 ID'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionRunCreate = { project: 'aily', name: 'aily.v1.ailySessionRun.create', sdkName: 'aily.v1.ailySessionRun.create', path: '/open-apis/aily/v1/sessions/:aily_session_id/runs', httpMethod: 'POST', description: '[Feishu/Lark]-飞书智能伙伴创建平台-运行-创建运行-该 API 用于在某个飞书智能伙伴应用会话(Session)上创建一次运行(Run)', accessTokens: ['tenant', 'user'], schema: { data: z.object({ app_id: z.string().describe('为 Aily 应用 ID(`spring_xxx__c`),可以在 Aily 应用开发页面的浏览器地址里获取'), skill_id: z .string() .describe( '指定技能 ID(`skill_xxx`),可以在 Aily 技能配置页面的浏览器地址里获取> 指定技能后、能够节省意图匹配的耗时', ) .optional(), skill_input: z .string() .describe( '指定技能 ID 时可以同时指定技能输入> 备注:常用于工作流技能内指定自定义参数,`skill_input` 需要配合 `skill_id` 同时传递才能生效', ) .optional(), metadata: z .string() .describe('其他扩展的参数(JSON String)> 备注:`metadata` 传递的参数,可以在后续 `GetRun` 调用中原样读取获得') .optional(), }), path: z.object({ aily_session_id: z .string() .describe('会话 ID;参考 接口'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionRunGet = { project: 'aily', name: 'aily.v1.ailySessionRun.get', sdkName: 'aily.v1.ailySessionRun.get', path: '/open-apis/aily/v1/sessions/:aily_session_id/runs/:run_id', httpMethod: 'GET', description: '[Feishu/Lark]-飞书智能伙伴创建平台-运行-获取运行-该 API 用于获取某个飞书智能伙伴应用的运行(Run)的详细信息;包括运行的状态、结束时间等', accessTokens: ['tenant', 'user'], schema: { path: z.object({ aily_session_id: z .string() .describe('会话 ID;参考 接口'), run_id: z.string().describe('运行的唯一 ID'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionRunList = { project: 'aily', name: 'aily.v1.ailySessionRun.list', sdkName: 'aily.v1.ailySessionRun.list', path: '/open-apis/aily/v1/sessions/:aily_session_id/runs', httpMethod: 'GET', description: '[Feishu/Lark]-飞书智能伙伴创建平台-运行-列出运行-该 API 用于列出某个飞书智能伙伴应用的运行(Run)的详细信息;包括状态、结束时间等', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('本次请求获取的运行记录条数,默认 20').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), }), path: z.object({ aily_session_id: z .string() .describe('会话 ID;参考 接口'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AilySessionUpdate = { project: 'aily', name: 'aily.v1.ailySession.update', sdkName: 'aily.v1.ailySession.update', path: '/open-apis/aily/v1/sessions/:aily_session_id', httpMethod: 'PUT', description: '[Feishu/Lark]-飞书智能伙伴创建平台-会话-更新会话-该 API 用于更新与某个飞书智能伙伴应用的一次会话(Session)的信息', accessTokens: ['tenant', 'user'], schema: { data: z.object({ channel_context: z .string() .describe( '可自行构造的 Context ;在 Workflow 技能中可消费这部分全局变量', ) .optional(), metadata: z .string() .describe( '会话的自定义变量内容,变量数据保存在服务端 Session 中,可在 `GetSession` 时原样返回,无需在 API 调用侧存储', ) .optional(), }), path: z.object({ aily_session_id: z.string().describe('会话 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AppDataAssetTagList = { project: 'aily', name: 'aily.v1.appDataAssetTag.list', sdkName: 'aily.v1.appDataAssetTag.list', path: '/open-apis/aily/v1/apps/:app_id/data_asset_tags', httpMethod: 'GET', description: '[Feishu/Lark]-飞书智能伙伴创建平台-知识问答-数据知识管理-获取数据知识分类列表-获取智能伙伴搭建助手的数据知识分类列表', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('分页参数:分页大小,默认:20,最大:100').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), keyword: z.string().describe('模糊匹配分类名称').optional(), data_asset_tag_ids: z.array(z.string()).describe('模糊匹配分类名称').optional(), }), path: z.object({ app_id: z.string().describe('AppID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AppDataAssetList = { project: 'aily', name: 'aily.v1.appDataAsset.list', sdkName: 'aily.v1.appDataAsset.list', path: '/open-apis/aily/v1/apps/:app_id/data_assets', httpMethod: 'GET', description: '[Feishu/Lark]-飞书智能伙伴创建平台-知识问答-数据知识管理-查询数据知识列表-获取智能伙伴搭建助手的数据知识列表', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('分页参数:分页大小,默认:20,最大:100').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), keyword: z.string().describe('模糊匹配关键词').optional(), data_asset_ids: z.array(z.string()).describe('根据数据知识 ID 进行过滤').optional(), data_asset_tag_ids: z.array(z.string()).describe('根据数据知识分类 ID 进行过滤').optional(), with_data_asset_item: z.boolean().describe('结果是否包含数据与知识项目').optional(), with_connect_status: z.boolean().describe('结果是否包含数据连接状态').optional(), }), path: z.object({ app_id: z .string() .describe('智能伙伴创建平台的应用的APPID,可以直接从智能伙伴应用的URL中获取。获取示例:/ai/{APPID}'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AppKnowledgeAsk = { project: 'aily', name: 'aily.v1.appKnowledge.ask', sdkName: 'aily.v1.appKnowledge.ask', path: '/open-apis/aily/v1/apps/:app_id/knowledges/ask', httpMethod: 'POST', description: '[Feishu/Lark]-飞书智能伙伴创建平台-知识问答-执行数据知识问答-执行飞书智能伙伴的数据知识问答', accessTokens: ['tenant', 'user'], schema: { data: z.object({ message: z .object({ content: z.string().describe('消息内容').optional() }) .describe('输入消息(当前仅支持纯文本输入)'), data_asset_ids: z.array(z.string()).describe('控制知识问答所依据的数据知识范围').optional(), data_asset_tag_ids: z.array(z.string()).describe('控制知识问答所依据的数据知识分类范围').optional(), }), path: z.object({ app_id: z.string().describe('飞书智能伙伴搭建平台的AppID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AppSkillGet = { project: 'aily', name: 'aily.v1.appSkill.get', sdkName: 'aily.v1.appSkill.get', path: '/open-apis/aily/v1/apps/:app_id/skills/:skill_id', httpMethod: 'GET', description: '[Feishu/Lark]-飞书智能伙伴创建平台-技能-获取技能信息-该 API 用于查询某个 Aily 应用的特定技能详情', accessTokens: ['tenant', 'user'], schema: { path: z.object({ app_id: z.string().describe('Aily 应用 ID(`spring_xxx__c`),可以在 Aily 应用开发页面的浏览器地址里获取'), skill_id: z.string().describe('技能 ID;可通过技能编辑页面的浏览器地址栏获取(`skill_xxx`)'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AppSkillList = { project: 'aily', name: 'aily.v1.appSkill.list', sdkName: 'aily.v1.appSkill.list', path: '/open-apis/aily/v1/apps/:app_id/skills', httpMethod: 'GET', description: '[Feishu/Lark]-飞书智能伙伴创建平台-技能-查询技能列表-该 API 用于查询某个 Aily 应用的技能列表> 包括内置的数据分析与问答技能、以及未在对话开启的技能', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('本次请求获取的消息记录条数,默认 20').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), }), path: z.object({ app_id: z.string().describe('Aily 应用 ID(`spring_xxx__c`),可以在 Aily 应用开发页面的浏览器地址里获取'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1AppSkillStart = { project: 'aily', name: 'aily.v1.appSkill.start', sdkName: 'aily.v1.appSkill.start', path: '/open-apis/aily/v1/apps/:app_id/skills/:skill_id/start', httpMethod: 'POST', description: '[Feishu/Lark]-飞书智能伙伴创建平台-技能-调用技能-该 API 用于调用某个 Aily 应用的特定技能,支持指定技能入参;并同步返回技能执行的结果', accessTokens: ['tenant', 'user'], schema: { data: z.object({ global_variable: z .object({ query: z.string().describe('触发技能的消息文本;即用户在飞书机器人等渠道**对话输入的内容**').optional(), files: z .array(z.string()) .describe('触发技能的文件信息(如 OCR 节点等所需消费的图片文件)> 如技能不需要文件,`files` 参数传空即可') .optional(), channel: z .object({ variables: z.string().describe('自定义传入的变量;可在 Workflow 技能全局变量中消费').optional() }) .describe('渠道信息') .optional(), }) .describe('技能的全局变量') .optional(), input: z.string().describe('技能的自定义变量').optional(), }), path: z.object({ app_id: z.string().describe('Aily 应用 ID(`spring_xxx__c`),可以在 Aily 应用开发页面的浏览器地址里获取'), skill_id: z.string().describe('技能 ID;可通过技能编辑页面的浏览器地址栏获取(`skill_xxx`)'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const ailyV1Tools = [ ailyV1AilySessionAilyMessageCreate, ailyV1AilySessionAilyMessageGet, ailyV1AilySessionAilyMessageList, ailyV1AilySessionCreate, ailyV1AilySessionDelete, ailyV1AilySessionGet, ailyV1AilySessionRunCancel, ailyV1AilySessionRunCreate, ailyV1AilySessionRunGet, ailyV1AilySessionRunList, ailyV1AilySessionUpdate, ailyV1AppDataAssetTagList, ailyV1AppDataAssetList, ailyV1AppKnowledgeAsk, ailyV1AppSkillGet, ailyV1AppSkillList, ailyV1AppSkillStart, ];

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Xumingmingming/feishu-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server