dingtalk-department-mcp
Version:
DingTalk Department Management MCP Server - TypeScript implementation for AI assistants
87 lines (86 loc) • 2.03 kB
TypeScript
export interface ToolConfig {
name: string;
description: string;
requestTemplate: {
method: string;
url: string;
headers?: Array<{
key: string;
value: string;
}>;
};
args: ToolArg[];
}
export interface ToolArg {
name: string;
type: string;
required: boolean;
position: 'body' | 'query' | 'path';
description: string;
items?: any;
}
export interface TokenCacheData {
access_token: string;
expires_in: number;
expires_at: number;
created_at: number;
app_id?: string;
}
export interface DingTalkResponse<T = any> {
errcode: number;
errmsg: string;
request_id?: string;
result?: T;
}
export interface DepartmentDetail {
dept_id: number;
name: string;
parent_id: number;
source_identifier?: string;
create_dept_group: boolean;
auto_add_user: boolean;
tags?: string;
from_union_org?: boolean;
order: number;
dept_group_chat_id?: string;
group_contain_sub_dept?: boolean;
org_dept_owner?: string;
dept_manager_userid_list?: string[];
outer_dept?: boolean;
outer_permit_depts?: number[];
outer_permit_users?: string[];
user_permits?: string[];
hide_dept?: boolean;
dept_permits?: number[];
auto_approve_apply?: boolean;
code?: string;
union_dept_ext?: {
deptId: number;
corpId: string;
};
member_count?: number;
owning_member_count?: number;
}
export interface DepartmentBase {
dept_id: number;
name: string;
parent_id: number;
create_dept_group: boolean;
auto_add_user: boolean;
}
export interface SearchDepartmentResponse {
hasMore: boolean;
totalCount: number;
list: number[];
}
export interface DepartmentParentsResponse {
parent_id_list: number[];
}
export interface UserDepartmentParentsResponse {
parent_list: Array<{
parent_dept_id_list: number[];
}>;
}
export interface SubDepartmentIdsResponse {
dept_id_list: number[];
}