@rashidazarang/aptly-mcp
Version:
Model Context Protocol server for Aptly package repository management - enables AI assistants to manage Debian repositories
73 lines (72 loc) • 2.52 kB
TypeScript
export interface AptlyConfig {
baseURL: string;
timeout?: number;
authToken?: string;
}
export interface Repository {
Name: string;
Comment?: string;
DefaultDistribution?: string;
DefaultComponent?: string;
}
export interface Package {
Key: string;
ShortKey?: string;
Architecture?: string;
Description?: string;
Package?: string;
Version?: string;
Section?: string;
Maintainer?: string;
Homepage?: string;
Size?: number;
InstalledSize?: number;
}
export interface Mirror {
Name: string;
ArchiveRoot: string;
Distribution: string;
Components: string[];
Architectures: string[];
LastDownloadDate?: string;
}
export interface Snapshot {
Name: string;
CreatedAt: string;
Description: string;
}
export interface PublishedRepository {
Prefix: string;
Distribution: string;
Architectures: string[];
Sources: Array<{
Component: string;
Name: string;
}>;
SourceKind: 'local' | 'snapshot';
}
export declare class AptlyClient {
private client;
constructor(config: AptlyConfig);
ping(): Promise<boolean>;
listRepositories(): Promise<Repository[]>;
getRepository(name: string): Promise<Repository>;
createRepository(name: string, comment?: string, defaultDistribution?: string, defaultComponent?: string): Promise<Repository>;
deleteRepository(name: string, force?: boolean): Promise<void>;
listPackages(repoName: string, query?: string): Promise<Package[]>;
addPackages(repoName: string, directory: string, files?: string[]): Promise<void>;
listMirrors(): Promise<Mirror[]>;
createMirror(name: string, archiveURL: string, distribution: string, components?: string[], architectures?: string[]): Promise<Mirror>;
getMirror(name: string): Promise<Mirror>;
updateMirror(name: string): Promise<void>;
listSnapshots(): Promise<Snapshot[]>;
createSnapshot(name: string, repoName: string, description?: string): Promise<Snapshot>;
listPublishedRepositories(): Promise<PublishedRepository[]>;
publishRepository(repoName: string, distribution: string, prefix?: string): Promise<PublishedRepository>;
publishSnapshot(snapshotName: string, distribution: string, prefix?: string): Promise<PublishedRepository>;
listUploadedFiles(directory?: string): Promise<Record<string, Array<{
filename: string;
size: number;
}>>>;
deleteUploadedFiles(directory: string, filename?: string): Promise<void>;
}