@ignitionai/azure-storage-mcp
Version:
Complete Azure Storage MCP server with CRUD operations, batch processing, schema validation, and advanced querying for Azure Tables, Blobs, Service Bus Queues, and Storage Queues
309 lines (308 loc) • 8.44 kB
TypeScript
import { ReadTableToolParams, CreateEntityToolParams, UpdateEntityToolParams, DeleteEntityToolParams, BatchCreateEntitiesParams, BatchUpdateEntitiesParams, BatchDeleteEntitiesParams, CreateTableParams, DeleteTableParams, QueryTableAdvancedParams } from "../types.js";
export declare class AzureTableTools {
private tableServiceClient;
private connectionString;
private accountName;
constructor(connectionString?: string, accountName?: string);
readTable(params: ReadTableToolParams): Promise<{
success: boolean;
data: any[];
count: number;
tableName: string;
error?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
data?: undefined;
count?: undefined;
}>;
private cleanEntity;
listTables(): Promise<{
success: boolean;
data: any[];
count: number;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
count?: undefined;
}>;
private getTableClient;
createEntity(params: CreateEntityToolParams): Promise<{
success: boolean;
data: {
partitionKey: string;
rowKey: string;
message: string;
entitySize: number;
schemaValidation: {
conformsToSchema: boolean;
warnings: any[] | string[];
errors: string[];
};
};
tableName: string;
error?: undefined;
errorType?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
errorType: string;
data?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
data?: undefined;
errorType?: undefined;
}>;
updateEntity(params: UpdateEntityToolParams): Promise<{
success: boolean;
data: {
partitionKey: string;
rowKey: string;
mode: "merge" | "replace";
message: string;
schemaValidation: {
conformsToSchema: boolean;
warnings: any[] | string[];
errors: string[];
};
};
tableName: string;
error?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
data?: undefined;
}>;
deleteEntity(params: DeleteEntityToolParams): Promise<{
success: boolean;
data: {
partitionKey: string;
rowKey: string;
message: string;
};
tableName: string;
error?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
data?: undefined;
}>;
inferTableSchema(tableName: string, sampleSize?: number): Promise<{
success: boolean;
data: {
isEmpty: boolean;
message: string;
suggestedSchema: {};
sampleSize?: undefined;
schema?: undefined;
commonProperties?: undefined;
optionalProperties?: undefined;
typeVariations?: undefined;
examples?: undefined;
};
tableName: string;
error?: undefined;
} | {
success: boolean;
data: {
isEmpty: boolean;
sampleSize: number;
schema: {
[key: string]: any;
};
commonProperties: string[];
optionalProperties: string[];
typeVariations: {
[key: string]: string[];
};
examples: any[];
message?: undefined;
suggestedSchema?: undefined;
};
tableName: string;
error?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
data?: undefined;
}>;
private analyzeEntitySchema;
private getValueType;
validateEntityAgainstSchema(tableName: string, entity: any): Promise<{
success: boolean;
message: string;
warnings: any[];
errors?: undefined;
schemaInfo?: undefined;
} | {
success: boolean;
message: string;
errors: string[];
warnings: string[];
schemaInfo: {
totalProperties: number;
requiredProperties: number;
optionalProperties: number;
};
}>;
batchCreateEntities(params: BatchCreateEntitiesParams): Promise<{
success: boolean;
data: {
totalEntities: number;
successful: any;
failed: any;
partitions: number;
details: any[];
};
tableName: string;
error?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
data?: undefined;
}>;
batchUpdateEntities(params: BatchUpdateEntitiesParams): Promise<{
success: boolean;
data: {
totalEntities: number;
successful: any;
failed: any;
partitions: number;
details: any[];
};
tableName: string;
error?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
data?: undefined;
}>;
batchDeleteEntities(params: BatchDeleteEntitiesParams): Promise<{
success: boolean;
data: {
totalEntities: number;
successful: any;
failed: any;
partitions: number;
details: any[];
};
tableName: string;
error?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
data?: undefined;
}>;
createTable(params: CreateTableParams): Promise<{
success: boolean;
error: string;
tableName: string;
errorType: string;
data?: undefined;
} | {
success: boolean;
data: {
tableName: string;
message: string;
created: string;
};
tableName: string;
error?: undefined;
errorType?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
errorType?: undefined;
data?: undefined;
}>;
deleteTable(params: DeleteTableParams): Promise<{
success: boolean;
error: string;
tableName: string;
errorType: string;
data?: undefined;
} | {
success: boolean;
data: {
tableName: string;
message: string;
deleted: string;
};
tableName: string;
error?: undefined;
errorType?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
errorType?: undefined;
data?: undefined;
}>;
queryTableAdvanced(params: QueryTableAdvancedParams): Promise<{
success: boolean;
data: {
entities: any[];
count: number;
totalAvailable: number;
hasMore: string | true;
continuationToken: string;
queryInfo: {
filter: string;
select: string[];
orderBy: string[];
top: number;
skip: number;
};
};
tableName: string;
error?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
data?: undefined;
}>;
checkEntityExists(tableName: string, partitionKey: string, rowKey: string): Promise<{
success: boolean;
exists: boolean;
data: {
partitionKey: string;
rowKey: string;
entity: any;
message: string;
};
tableName: string;
error?: undefined;
} | {
success: boolean;
exists: boolean;
data: {
partitionKey: string;
rowKey: string;
message: string;
entity?: undefined;
};
tableName: string;
error?: undefined;
} | {
success: boolean;
error: string;
tableName: string;
exists?: undefined;
data?: undefined;
}>;
private groupEntitiesByPartition;
}