get_group_member_statistics
Retrieve detailed statistics of team members in Yuque, including edit counts, reads, and likes, with customizable filters, sorting, and pagination for efficient analysis.
Instructions
获取团队成员的统计数据,包括各成员的编辑次数、阅读量、点赞量等
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| accessToken | No | 用于认证 API 请求的令牌 | |
| limit | No | 每页数量,默认为10,最大为20 | |
| login | Yes | 团队的登录名或唯一标识 | |
| name | No | 成员名称,用于过滤特定成员 | |
| page | No | 页码,默认为1 | |
| range | No | 时间范围(0: 全部, 30: 近30天, 365: 近一年) | |
| sortField | No | 排序字段,可选值:write_doc_count、write_count、read_count、like_count | |
| sortOrder | No | 排序方向,可选值:desc(降序)、asc(升序),默认为desc |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"accessToken": {
"description": "用于认证 API 请求的令牌",
"type": "string"
},
"limit": {
"description": "每页数量,默认为10,最大为20",
"type": "number"
},
"login": {
"description": "团队的登录名或唯一标识",
"type": "string"
},
"name": {
"description": "成员名称,用于过滤特定成员",
"type": "string"
},
"page": {
"description": "页码,默认为1",
"type": "number"
},
"range": {
"description": "时间范围(0: 全部, 30: 近30天, 365: 近一年)",
"type": "number"
},
"sortField": {
"description": "排序字段,可选值:write_doc_count、write_count、read_count、like_count",
"type": "string"
},
"sortOrder": {
"description": "排序方向,可选值:desc(降序)、asc(升序),默认为desc",
"enum": [
"desc",
"asc"
],
"type": "string"
}
},
"required": [
"login"
],
"type": "object"
}
Implementation Reference
- src/server.ts:590-620 (handler)The MCP tool handler function that destructures parameters, creates YuqueService instance, calls getGroupMemberStatistics helper, logs progress, and returns formatted response or error.async (params) => { try { const { login, accessToken, ...queryParams } = params; Logger.log(`Fetching member statistics for group: ${login}`); const yuqueService = this.createYuqueService(accessToken); const stats = await yuqueService.getGroupMemberStatistics( login, queryParams ); Logger.log( `Successfully fetched member statistics for group: ${login}` ); return { content: [{ type: "text", text: JSON.stringify(stats, null, 2) }], }; } catch (error) { Logger.error( `Error fetching member statistics for group ${params.login}:`, error ); return { content: [ { type: "text", text: `Error fetching group member statistics: ${error}`, }, ], }; } }
- src/server.ts:570-589 (schema)Zod input schema defining parameters for the get_group_member_statistics tool including required login and optional filters.login: z.string().describe("团队的登录名或唯一标识"), name: z.string().optional().describe("成员名称,用于过滤特定成员"), range: z .number() .optional() .describe("时间范围(0: 全部, 30: 近30天, 365: 近一年)"), page: z.number().optional().describe("页码,默认为1"), limit: z.number().optional().describe("每页数量,默认为10,最大为20"), sortField: z .string() .optional() .describe( "排序字段,可选值:write_doc_count、write_count、read_count、like_count" ), sortOrder: z .enum(["desc", "asc"]) .optional() .describe("排序方向,可选值:desc(降序)、asc(升序),默认为desc"), accessToken: z.string().optional().describe("用于认证 API 请求的令牌"), },
- src/server.ts:566-621 (registration)Registration of the get_group_member_statistics tool using McpServer.tool method with name, description, schema, and handler function.this.server.tool( "get_group_member_statistics", "获取团队成员的统计数据,包括各成员的编辑次数、阅读量、点赞量等", { login: z.string().describe("团队的登录名或唯一标识"), name: z.string().optional().describe("成员名称,用于过滤特定成员"), range: z .number() .optional() .describe("时间范围(0: 全部, 30: 近30天, 365: 近一年)"), page: z.number().optional().describe("页码,默认为1"), limit: z.number().optional().describe("每页数量,默认为10,最大为20"), sortField: z .string() .optional() .describe( "排序字段,可选值:write_doc_count、write_count、read_count、like_count" ), sortOrder: z .enum(["desc", "asc"]) .optional() .describe("排序方向,可选值:desc(降序)、asc(升序),默认为desc"), accessToken: z.string().optional().describe("用于认证 API 请求的令牌"), }, async (params) => { try { const { login, accessToken, ...queryParams } = params; Logger.log(`Fetching member statistics for group: ${login}`); const yuqueService = this.createYuqueService(accessToken); const stats = await yuqueService.getGroupMemberStatistics( login, queryParams ); Logger.log( `Successfully fetched member statistics for group: ${login}` ); return { content: [{ type: "text", text: JSON.stringify(stats, null, 2) }], }; } catch (error) { Logger.error( `Error fetching member statistics for group ${params.login}:`, error ); return { content: [ { type: "text", text: `Error fetching group member statistics: ${error}`, }, ], }; } } );
- src/services/yuque.ts:437-447 (helper)YuqueService helper method that performs the actual API request to Yuque for group member statistics.async getGroupMemberStatistics(login: string, params?: { name?: string; range?: number; page?: number; limit?: number; sortField?: string; sortOrder?: 'desc' | 'asc'; }): Promise<any> { const response = await this.client.get(`/groups/${login}/statistics/members`, { params }); return response.data.data; }