sourcesyncai-mcp
Version:
[](https://smithery.ai/server/@pbteja1998/sourcesyncai-mcp)
119 lines (118 loc) • 3.68 kB
JavaScript
import { z } from "zod";
import { FetchDocumentsSchema, UpdateDocumentsSchema, DeleteDocumentsSchema, ResyncDocumentsSchema } from "./schemas.js";
// Common schemas
const DocumentTypeEnum = z.enum([
"TEXT", "URL", "FILE", "NOTION_DOCUMENT", "GOOGLE_DRIVE_DOCUMENT",
"DROPBOX_DOCUMENT", "ONEDRIVE_DOCUMENT", "BOX_DOCUMENT"
]);
const IngestionSourceEnum = z.enum([
"TEXT", "LOCAL_FILE", "URLS_LIST", "SITEMAP", "WEBSITE",
"NOTION", "GOOGLE_DRIVE", "DROPBOX", "ONEDRIVE", "BOX"
]);
const IngestionStatusEnum = z.enum([
"BACKLOG", "QUEUED", "QUEUED_FOR_RESYNC", "PROCESSING",
"SUCCESS", "FAILED", "CANCELLED"
]);
const FilterConfigSchema = z.object({
documentIds: z.array(z.string()).optional(),
documentExternalIds: z.array(z.string()).optional(),
documentConnectionIds: z.array(z.string()).optional(),
documentTypes: z.array(DocumentTypeEnum).optional(),
documentIngestionSources: z.array(IngestionSourceEnum).optional(),
documentIngestionStatuses: z.array(IngestionStatusEnum).optional(),
metadata: z.record(z.any()).optional(),
});
const IncludeConfigSchema = z.object({
documents: z.boolean().optional(),
stats: z.boolean().optional(),
statsBySource: z.boolean().optional(),
statsByStatus: z.boolean().optional(),
rawFileUrl: z.boolean().optional(),
parsedTextFileUrl: z.boolean().optional(),
}).optional();
const PaginationSchema = z.object({
pageSize: z.number().min(1).max(100).optional(),
cursor: z.string().optional(),
}).optional();
/**
* Fetch documents from a namespace
*/
export async function fetchDocuments(params) {
try {
// This is a placeholder implementation
console.log("Fetching documents:", params);
return {
success: true,
documents: [],
message: "Document fetching is not fully implemented yet"
};
}
catch (error) {
return {
success: false,
message: error.message || "Failed to fetch documents",
error
};
}
}
/**
* Update documents in a namespace
*/
export async function updateDocuments(params) {
try {
// This is a placeholder implementation
console.log("Updating documents:", params.documents);
return {
success: true,
message: "Document updating is not implemented yet"
};
}
catch (error) {
return {
success: false,
message: error.message || "Failed to update documents",
error
};
}
}
/**
* Delete documents from a namespace
*/
export async function deleteDocuments(params) {
try {
// This is a placeholder implementation
console.log("Deleting documents:", params.documentIds);
return {
success: true,
message: "Document deletion is not implemented yet"
};
}
catch (error) {
return {
success: false,
message: error.message || "Failed to delete documents",
error
};
}
}
/**
* Resync documents in a namespace
*/
export async function resyncDocuments(params) {
try {
// This is a placeholder implementation
console.log("Resyncing documents:", params.documentIds);
return {
success: true,
message: "Document resyncing is not implemented yet"
};
}
catch (error) {
return {
success: false,
message: error.message || "Failed to resync documents",
error
};
}
}
export { FetchDocumentsSchema, UpdateDocumentsSchema, DeleteDocumentsSchema, ResyncDocumentsSchema };