@utaba/ucm-mcp-server
Version:
Universal Context Manager MCP Server - AI Productivity Platform
165 lines • 6.33 kB
TypeScript
import { ArtifactData, AuthorData } from '../types/UcmApiTypes.js';
export declare class UcmLocalApiClient {
private baseUrl;
private authToken?;
private authorId?;
private organizationId?;
private client;
constructor(baseUrl: string, authToken?: string | undefined, timeout?: number, authorId?: string | undefined, organizationId?: string | undefined);
private setupInterceptors;
private ensureClient;
getAuthors(): Promise<AuthorData[]>;
getAuthor(authorId: string): Promise<AuthorData | null>;
private buildApiPath;
getArtifact(author?: string, repository?: string, category?: string, subcategory?: string, filename?: string, version?: string): Promise<ArtifactData>;
getLatestArtifact(author?: string, repository?: string, category?: string, subcategory?: string, filename?: string): Promise<ArtifactData>;
listArtifacts(author?: string, repository?: string, category?: string, subcategory?: string, offset?: number, limit?: number): Promise<{
data: any[];
pagination: {
offset: number;
limit: number;
total: number;
};
_links?: any;
}>;
searchArtifacts(filters?: {
repository?: string;
category?: string;
technology?: string;
subcategory?: string;
offset?: number;
limit?: number;
}): Promise<ArtifactData[]>;
searchArtifactsByText(searchParams: {
searchText?: string;
namespace?: string;
author?: string;
repository?: string;
category?: string;
subcategory?: string;
filename?: string;
tags?: string;
offset?: number;
limit?: number;
}): Promise<{
data: any[];
pagination: {
offset: number;
limit: number;
total: number;
hasMore: boolean;
};
_links?: any;
}>;
publishArtifact(author: string, repository: string, category: string, subcategory: string, data: any): Promise<ArtifactData>;
updateArtifact(author: string, repository: string, category: string, subcategory: string, filename: string, version: string, data: any): Promise<ArtifactData>;
deleteArtifact(author: string, repository: string, category: string, subcategory: string, filename: string, version?: string): Promise<any>;
getArtifactVersions(author: string, repository: string, category: string, subcategory: string, filename: string): Promise<any>;
getCategories(): Promise<string[]>;
healthCheck(): Promise<{
status: string;
timestamp: string;
}>;
getQuickstart(): Promise<string>;
getAuthorIndex(author: string, repository?: string): Promise<string>;
getAuthorRecents(author: string): Promise<string>;
/**
* Cleanup method to properly dispose of HTTP client resources
* This helps prevent memory leaks from accumulated AbortSignal listeners
*/
cleanup(): void;
/**
* Check if the client is still available for use
*/
isAvailable(): boolean;
createRepository(author: string, data: {
repositoryName: string;
displayName?: string;
description?: string;
}): Promise<any>;
getRepository(author: string, repository: string): Promise<any>;
updateRepository(author: string, repository: string, data: {
displayName?: string;
description?: string;
}): Promise<any>;
deleteRepository(author: string, repository: string): Promise<any>;
listRepositories(author: string, offset?: number, limit?: number): Promise<{
data: any[];
pagination: {
offset: number;
limit: number;
total: number;
};
_links?: any;
}>;
submitFeedback(data: {
title: string;
body: string;
reportType: 'issue' | 'feedback';
tags?: string;
}): Promise<any>;
editArtifactMetadata(author: string, repository: string, category: string, subcategory: string, filename: string, data: {
updateDescription?: string;
updateNamespace?: string;
updateFilename?: string;
updateMimeType?: string;
updateTechnology?: string;
updateTags?: string;
}): Promise<any>;
/**
* List External Connections including SharePoint
* Returns markdown with a table of connections available
*/
listExternalConnections(params?: {
limit?: number;
offset?: number;
}): Promise<string>;
/**
* Search SharePoint documents using Microsoft Search API
* Uses V1 API - organizationId is auto-detected from auth token
*/
sharePointSearch(connectionId: string, params: {
query: string;
limit?: number;
offset?: number;
fileType?: string;
}): Promise<any>;
/**
* List folders and files in SharePoint with pagination
* Uses V1 API - organizationId is auto-detected from auth token
*/
sharePointListFolders(connectionId: string, params: {
folderPath?: string;
limit?: number;
offset?: number;
}): Promise<any>;
/**
* Read SharePoint file content with support for both fileUrl and legacy fileId
* Uses V1 API - organizationId is auto-detected from auth token
*/
sharePointReadFile(connectionId: string, params: {
fileUrl: string;
extractMetadata?: boolean;
offset?: number;
limit?: number;
}): Promise<any>;
/**
* Read SharePoint related file (image/embedded file extracted from document)
* Uses V1 API - organizationId is auto-detected from auth token
* Accepts full URI from markdown (with or without protocol prefix)
* Returns complete file content (no pagination support)
*/
sharePointReadRelatedFile(uri: string): Promise<any>;
/**
* Extract fileName from SharePoint related file URI
* Helper method for metadata purposes
*/
private extractFileNameFromUri;
/**
* Revoke SharePoint OnBehalfOf authorization for a connection
* Deletes user's access tokens from Key Vault and database
* Uses V1 API - organizationId is auto-detected from auth token
*/
sharePointSignOut(connectionId: string): Promise<any>;
}
//# sourceMappingURL=UcmLocalApiClient.d.ts.map