MCP
- API
- ** **
- ** **
- ** **
- ** ** - **STDIO ** / CLI - **HTTP ** REST API SSE Web
- ** **
- ** ** TypeScript
- ** ** API
1.
- ** Client **
- ** Service **
- ** Tools **
2.
3.
FeiShuApiErrorAPI
- MCP STDIO HTTP
- API
- MCP
- Node.js 23.0
- pnpm
.env
STDIO
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
API
`get_feishu_doc_raw`
docId- ID URL ( feishu.cn/docx/<documentId>)
`get_feishu_doc_info`
docId- ID
- JSON
`send_feishu_text_message`
chatId- ID
text-
- ID
`send_feishu_card`
chatId- ID
cardContent- JSON
- ID
`get_feishu_chat_info`
chatId- ID
- JSON
`get_feishu_sheet_meta`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
- JSON ID
`get_feishu_sheet_tables`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
pageSize- 20 100
pageToken-
- JSON ID
`get_feishu_sheet_views`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
tableId- ID
pageSize- 20 100
pageToken-
- JSON ID
`get_feishu_sheet_view`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
tableId- ID
viewId- ID
- JSON ID
`get_feishu_sheet_records`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
tableId- ID
viewId- ID
fieldIds- ID
filter- FQL
sort- JSON
pageSize- 20 100
pageToken-
- JSON ID
`get_feishu_sheet_record`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
tableId- ID
recordId- ID
fieldIds- ID
- JSON ID
- TypeScript
- `any`
Record<string, unknown>object
feat(bot):
fix(documents):
feat:
fix: Bug
docs:
style:
refactor:
perf:
test:
chore:
- ** ** - `src/client/<feature>/` - `ApiClient` - API ```typescript // src/client/feature/feature-client.ts export class FeatureClient extends ApiClient { async getFeatureData(id: string): Promise<FeatureData> { return this.request<FeatureResponse>('/feature/get', { id }); } } ```
- ** ** - `src/services/<feature>/` - - ```typescript // 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); } } } ```
- ** ** - `src/services/index.ts` - `FeiShuServices`
- ** MCP **
- ** ** - `src/server/tools/index.ts`
- ID
- Fork
- `git checkout -b feature/amazing-feature`
- `git commit -m 'feat: add some amazing feature'`
- `git push origin feature/amazing-feature`
- Pull Request
PR
MCP
- API
- ** **
- ** **
- ** **
- ** ** - **STDIO ** / CLI - **HTTP ** REST API SSE Web
- ** **
- ** ** TypeScript
- ** ** API
1.
- ** Client **
- ** Service **
- ** Tools **
2.
3.
FeiShuApiErrorAPI
- MCP STDIO HTTP
- API
- MCP
- Node.js 23.0
- pnpm
.env
STDIO
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
[object Object] | [object Object] | [object Object] | [object Object] | [object Object] |
API
`get_feishu_doc_raw`
docId- ID URL ( feishu.cn/docx/<documentId>)
`get_feishu_doc_info`
docId- ID
- JSON
`send_feishu_text_message`
chatId- ID
text-
- ID
`send_feishu_card`
chatId- ID
cardContent- JSON
- ID
`get_feishu_chat_info`
chatId- ID
- JSON
`get_feishu_sheet_meta`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
- JSON ID
`get_feishu_sheet_tables`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
pageSize- 20 100
pageToken-
- JSON ID
`get_feishu_sheet_views`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
tableId- ID
pageSize- 20 100
pageToken-
- JSON ID
`get_feishu_sheet_view`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
tableId- ID
viewId- ID
- JSON ID
`get_feishu_sheet_records`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
tableId- ID
viewId- ID
fieldIds- ID
filter- FQL
sort- JSON
pageSize- 20 100
pageToken-
- JSON ID
`get_feishu_sheet_record`
appToken- ID URL ( feishu.cn/base/<appToken> feishu.cn/app/<appToken>)
tableId- ID
recordId- ID
fieldIds- ID
- JSON ID
- TypeScript
- `any`
Record<string, unknown>object
feat(bot):
fix(documents):
feat:
fix: Bug
docs:
style:
refactor:
perf:
test:
chore:
- ** ** - `src/client/<feature>/` - `ApiClient` - API ```typescript // src/client/feature/feature-client.ts export class FeatureClient extends ApiClient { async getFeatureData(id: string): Promise<FeatureData> { return this.request<FeatureResponse>('/feature/get', { id }); } } ```
- ** ** - `src/services/<feature>/` - - ```typescript // 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); } } } ```
- ** ** - `src/services/index.ts` - `FeiShuServices`
- ** MCP **
- ** ** - `src/server/tools/index.ts`
- ID
- Fork
- `git checkout -b feature/amazing-feature`
- `git commit -m 'feat: add some amazing feature'`
- `git push origin feature/amazing-feature`
- Pull Request