alibabacloud-devops-mcp-server
Version:
MCP Server for using the alibabacloud-devops API: allows AI assistants to directly participate in development collaboration, helping teams optimize development processes and improve efficiency.
112 lines (111 loc) • 6.1 kB
JavaScript
import { z } from "zod";
// Organization Role related types
export const OrganizationRoleSchema = z.object({
id: z.string().describe("Role ID"),
name: z.string().describe("Role name"),
organizationId: z.string().describe("Organization ID"),
permissions: z.array(z.string()).describe("Role permission list")
});
export const OrganizationRole = z.array(OrganizationRoleSchema);
export const ListOrganizationRolesSchema = z.object({
organizationId: z.string().describe("Organization ID")
});
export const GetOrganizationRoleSchema = z.object({
organizationId: z.string().describe("Organization ID"),
roleId: z.string().describe("Role ID")
});
// Organization Department related types
export const GetOrganizationDepartmentAncestorsSchema = z.object({
organizationId: z.string().describe("Organization ID"),
id: z.string().describe("Department ID"),
});
export const GetOrganizationDepartmentInfoSchema = z.object({
organizationId: z.string().describe("Organization ID"),
id: z.string().describe("Department ID"),
});
export const GetOrganizationDepartmentsSchema = z.object({
organizationId: z.string().describe("Organization ID"),
parentId: z.string().optional().describe("Parent department ID"),
});
// Organization related types
export const CurrentOrganizationInfoSchema = z.object({
lastOrganization: z.string().optional().describe("Organization ID of the most recent login, used for subsequent API calls, should be used as organizationId"),
userId: z.string().optional().describe("Current user ID, not the organization ID"),
userName: z.string().optional().describe("Current user name"),
});
export const OrganizationInfoSchema = z.object({
id: z.string().optional().describe("Organization ID"),
name: z.string().optional().describe("Organization name"),
description: z.string().optional().describe("Organization description"),
});
export const UserOrganizationsInfoSchema = z.array(OrganizationInfoSchema);
// User related types
export const UserInfoSchema = z.object({
id: z.string().nullable().optional().describe("User ID"),
name: z.string().nullable().optional().describe("User name"),
});
// Current user information schema
export const CurrentUserSchema = z.object({
id: z.string().nullable().optional().describe("User ID"),
name: z.string().optional().describe("Display name"),
email: z.string().optional().describe("Email address"),
username: z.string().optional().describe("Login account name"),
lastOrganization: z.string().optional().describe("Last login organization ID"),
staffId: z.string().optional().describe("Staff ID"),
nickName: z.string().optional().describe("Nickname"),
sysDeptIds: z.array(z.string()).optional().describe("Department IDs"),
createdAt: z.string().optional().describe("Creation time (ISO 8601格式)"),
deletedAt: z.string().optional().describe("Deletion time (ISO 8601格式)")
});
// Organization Department related types
export const DepartmentInfoSchema = z.object({
creatorId: z.string().optional().describe("创建人 ID"),
id: z.string().optional().describe("部门 ID"),
name: z.string().optional().describe("部门名称"),
organizationId: z.string().optional().describe("组织 ID"),
parentId: z.string().optional().describe("父部门 ID"),
hasSub: z.boolean().optional().describe("是否有子部门")
});
export const OrganizationDepartmentsSchema = z.array(DepartmentInfoSchema);
// Organization Member related types
export const MemberInfoSchema = z.object({
deptIds: z.array(z.string()).optional().describe("所属组织部门列表"),
id: z.string().optional().describe("成员 ID"),
joined: z.string().optional().describe("加入时间 (ISO 8601格式)"),
name: z.string().optional().describe("成员名"),
organizationId: z.string().optional().describe("组织 ID"),
roleIds: z.array(z.string()).optional().describe("角色信息"),
status: z.string().optional().describe("成员状态,可选值:ENABLED,DISABLED,UNDELETED,DELETED,NORMAL_USING,UNVISITED"),
userId: z.string().optional().describe("用户 ID"),
visited: z.string().optional().describe("最后访问时间 (ISO 8601格式)"),
});
export const OrganizationMembersSchema = z.array(MemberInfoSchema);
// Organization Member detail types
export const GetOrganizationMemberInfoSchema = z.object({
organizationId: z.string().describe("组织 ID"),
memberId: z.string().describe("成员 ID"),
});
// Get organization member by user ID types
export const GetOrganizationMemberByUserIdInfoSchema = z.object({
organizationId: z.string().describe("组织 ID"),
userId: z.string().describe("用户 ID"),
});
// Search organization members types
export const SearchOrganizationMembersSchema = z.object({
organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
deptIds: z.array(z.string()).optional().describe("Department IDs to search for"),
query: z.string().optional().describe("Search query"),
includeChildren: z.boolean().optional().describe("Whether to include sub-departments"),
nextToken: z.string().optional().describe("Next token for pagination"),
roleIds: z.array(z.string()).optional().describe("Role IDs to search for"),
statuses: z.array(z.string()).optional().describe("User statuses, posibble values: ENABLED,DISABLED,UNDELETED,DELETED,NORMAL_USING,UNVISITED。ENABLED=NORMAL_USING+UNVISITED;UNDELETED=ENABLED+DISABLED"),
page: z.number().int().optional().describe("Current page number, defaults to 1"),
perPage: z.number().int().optional().describe("Number of items per page, defaults to 100")
});
export const SearchOrganizationMembersResultSchema = z.array(MemberInfoSchema);
// Get organization members schema
export const GetOrganizationMembersSchema = z.object({
organizationId: z.string().describe("Organization ID"),
page: z.number().int().optional().describe("Page number"),
perPage: z.number().int().optional().describe("Page size"),
});