@hongkongkiwi/clockify-master-mcp
Version:
Clockify Master MCP - The most comprehensive Model Context Protocol server for Clockify time tracking with full API integration, advanced filtering, and enterprise features
152 lines • 6.89 kB
TypeScript
import { z } from 'zod';
export declare const ConfigSchema: z.ZodObject<{
apiKey: z.ZodString;
apiUrl: z.ZodDefault<z.ZodString>;
restrictions: z.ZodDefault<z.ZodObject<{
allowedProjects: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
deniedProjects: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
defaultProjectId: z.ZodOptional<z.ZodString>;
allowedWorkspaces: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
defaultWorkspaceId: z.ZodOptional<z.ZodString>;
readOnly: z.ZodDefault<z.ZodBoolean>;
allowTimeEntryCreation: z.ZodDefault<z.ZodBoolean>;
allowTimeEntryDeletion: z.ZodDefault<z.ZodBoolean>;
allowProjectManagement: z.ZodDefault<z.ZodBoolean>;
allowClientManagement: z.ZodDefault<z.ZodBoolean>;
allowUserManagement: z.ZodDefault<z.ZodBoolean>;
maxTimeEntryDuration: z.ZodOptional<z.ZodNumber>;
allowFutureTimeEntries: z.ZodDefault<z.ZodBoolean>;
allowPastTimeEntriesInDays: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
readOnly: boolean;
allowTimeEntryCreation: boolean;
allowTimeEntryDeletion: boolean;
allowProjectManagement: boolean;
allowClientManagement: boolean;
allowUserManagement: boolean;
allowFutureTimeEntries: boolean;
allowPastTimeEntriesInDays: number;
allowedProjects?: string[] | undefined;
deniedProjects?: string[] | undefined;
defaultProjectId?: string | undefined;
allowedWorkspaces?: string[] | undefined;
defaultWorkspaceId?: string | undefined;
maxTimeEntryDuration?: number | undefined;
}, {
allowedProjects?: string[] | undefined;
deniedProjects?: string[] | undefined;
defaultProjectId?: string | undefined;
allowedWorkspaces?: string[] | undefined;
defaultWorkspaceId?: string | undefined;
readOnly?: boolean | undefined;
allowTimeEntryCreation?: boolean | undefined;
allowTimeEntryDeletion?: boolean | undefined;
allowProjectManagement?: boolean | undefined;
allowClientManagement?: boolean | undefined;
allowUserManagement?: boolean | undefined;
maxTimeEntryDuration?: number | undefined;
allowFutureTimeEntries?: boolean | undefined;
allowPastTimeEntriesInDays?: number | undefined;
}>>;
cacheEnabled: z.ZodDefault<z.ZodBoolean>;
cacheTTLSeconds: z.ZodDefault<z.ZodNumber>;
rateLimitPerMinute: z.ZodDefault<z.ZodNumber>;
logLevel: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
toolFiltering: z.ZodDefault<z.ZodObject<{
enabledCategories: z.ZodDefault<z.ZodArray<z.ZodEnum<["user", "workspace", "project", "client", "timeEntry", "tag", "task", "report", "bulk", "search"]>, "many">>;
enabledTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
disabledTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
maxTools: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
enabledCategories: ("user" | "workspace" | "project" | "client" | "timeEntry" | "tag" | "task" | "report" | "bulk" | "search")[];
maxTools: number;
enabledTools?: string[] | undefined;
disabledTools?: string[] | undefined;
}, {
enabledCategories?: ("user" | "workspace" | "project" | "client" | "timeEntry" | "tag" | "task" | "report" | "bulk" | "search")[] | undefined;
enabledTools?: string[] | undefined;
disabledTools?: string[] | undefined;
maxTools?: number | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
apiKey: string;
apiUrl: string;
restrictions: {
readOnly: boolean;
allowTimeEntryCreation: boolean;
allowTimeEntryDeletion: boolean;
allowProjectManagement: boolean;
allowClientManagement: boolean;
allowUserManagement: boolean;
allowFutureTimeEntries: boolean;
allowPastTimeEntriesInDays: number;
allowedProjects?: string[] | undefined;
deniedProjects?: string[] | undefined;
defaultProjectId?: string | undefined;
allowedWorkspaces?: string[] | undefined;
defaultWorkspaceId?: string | undefined;
maxTimeEntryDuration?: number | undefined;
};
cacheEnabled: boolean;
cacheTTLSeconds: number;
rateLimitPerMinute: number;
logLevel: "debug" | "info" | "warn" | "error";
toolFiltering: {
enabledCategories: ("user" | "workspace" | "project" | "client" | "timeEntry" | "tag" | "task" | "report" | "bulk" | "search")[];
maxTools: number;
enabledTools?: string[] | undefined;
disabledTools?: string[] | undefined;
};
}, {
apiKey: string;
apiUrl?: string | undefined;
restrictions?: {
allowedProjects?: string[] | undefined;
deniedProjects?: string[] | undefined;
defaultProjectId?: string | undefined;
allowedWorkspaces?: string[] | undefined;
defaultWorkspaceId?: string | undefined;
readOnly?: boolean | undefined;
allowTimeEntryCreation?: boolean | undefined;
allowTimeEntryDeletion?: boolean | undefined;
allowProjectManagement?: boolean | undefined;
allowClientManagement?: boolean | undefined;
allowUserManagement?: boolean | undefined;
maxTimeEntryDuration?: number | undefined;
allowFutureTimeEntries?: boolean | undefined;
allowPastTimeEntriesInDays?: number | undefined;
} | undefined;
cacheEnabled?: boolean | undefined;
cacheTTLSeconds?: number | undefined;
rateLimitPerMinute?: number | undefined;
logLevel?: "debug" | "info" | "warn" | "error" | undefined;
toolFiltering?: {
enabledCategories?: ("user" | "workspace" | "project" | "client" | "timeEntry" | "tag" | "task" | "report" | "bulk" | "search")[] | undefined;
enabledTools?: string[] | undefined;
disabledTools?: string[] | undefined;
maxTools?: number | undefined;
} | undefined;
}>;
export type Config = z.infer<typeof ConfigSchema>;
export declare class ConfigurationManager {
private config;
constructor(overrides?: Partial<Config>);
private parseToolFiltering;
private parseRestrictions;
get(): Config;
getApiKey(): string;
getApiUrl(): string;
getRestrictions(): Config['restrictions'];
getToolFiltering(): Config['toolFiltering'];
isProjectAllowed(projectId: string): boolean;
isWorkspaceAllowed(workspaceId: string): boolean;
canPerformOperation(operation: string): boolean;
getDefaultProjectId(): string | undefined;
getDefaultWorkspaceId(): string | undefined;
validateTimeEntry(start: Date, end?: Date): {
valid: boolean;
error?: string;
};
}
export declare const config: ConfigurationManager;
//# sourceMappingURL=index.d.ts.map