SourceSync.ai MCP Server

by pbteja1998
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables ingestion of content from Box cloud storage platform into the SourceSync.ai knowledge base

  • Enables ingestion of content from Dropbox cloud storage platform into the SourceSync.ai knowledge base

  • Enables ingestion of content from Google Drive cloud storage platform into the SourceSync.ai knowledge base

Servidor MCP de SourceSync.ai

Implementación de un servidor de Protocolo de Contexto de Modelo (MCP) para la API de SourceSync.ai . Este servidor permite que los modelos de IA interactúen con la plataforma de gestión del conocimiento de SourceSync.ai mediante una interfaz estandarizada.

Características

  • Administrar espacios de nombres para organizar el conocimiento
  • Ingerir contenido de diversas fuentes (texto, URL, sitios web, servicios externos)
  • Recupere, actualice y administre documentos almacenados en su base de conocimientos
  • Realice búsquedas semánticas e híbridas en su base de conocimientos
  • Acceda al contenido del documento directamente desde las URL de texto analizadas
  • Administrar conexiones a servicios externos
  • Compatibilidad con configuración predeterminada para una integración perfecta con IA

Instalación

Ejecutando con npx

# Install and run with your API key and tenant ID env SOURCESYNC_API_KEY=your_api_key npx -y sourcesyncai-mcp

Instalación mediante herrería

Para instalar sourcesyncai-mcp para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @pbteja1998/sourcesyncai-mcp --client claude

Instalación manual

# Clone the repository git clone https://github.com/yourusername/sourcesyncai-mcp.git cd sourcesyncai-mcp # Install dependencies npm install # Build the project npm run build # Run the server node dist/index.js

Ejecutando en el cursor

Para configurar SourceSync.ai MCP en Cursor:

  1. Abrir configuración del cursor
  2. Vaya a Features > MCP Servers
  3. Haga clic en + Add New MCP Server
  4. Introduzca lo siguiente:
    • Nombre: sourcesyncai-mcp (o su nombre preferido)
    • Tipo: command
    • Comando: env SOURCESYNCAI_API_KEY=your-api-key npx -y sourcesyncai-mcp

Después de agregar, puede usar las herramientas de SourceSync.ai con las funciones de inteligencia artificial de Cursor describiendo sus necesidades de gestión de conocimientos.

Corriendo en Windsurf

Agregue esto a su ./codeium/windsurf/model_config.json :

{ "mcpServers": { "sourcesyncai-mcp": { "command": "npx", "args": ["-y", "soucesyncai-mcp"], "env": { "SOURCESYNC_API_KEY": "your_api_key", "SOURCESYNC_NAMESPACE_ID": "your_namespace_id", "SOURCESYNC_TENANT_ID": "your_tenant_id" } } } }

Ejecutándose en Claude Desktop

Para utilizar este servidor MCP con Claude Desktop:

  1. Localice el archivo de configuración de Claude Desktop:
    • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
    • Ventanas : %APPDATA%\Claude\claude_desktop_config.json
    • Linux : ~/.config/Claude/claude_desktop_config.json
  2. Edite el archivo de configuración para agregar el servidor MCP de SourceSync.ai:
{ "mcpServers": { "sourcesyncai-mcp": { "command": "npx", "args": ["-y", "sourcesyncai-mcp"], "env": { "SOURCESYNC_API_KEY": "your_api_key", "SOURCESYNC_NAMESPACE_ID": "your_namespace_id", "SOURCESYNC_TENANT_ID": "your_tenant_id" } } } }
  1. Guarde el archivo de configuración y reinicie Claude Desktop

Configuración

Variables de entorno

Requerido

  • SOURCESYNC_API_KEY : Su clave API de SourceSync.ai (obligatoria)

Opcional

  • SOURCESYNC_NAMESPACE_ID : ID de espacio de nombres predeterminado que se utilizará para las operaciones
  • SOURCESYNC_TENANT_ID : Su ID de inquilino (opcional)

Ejemplos de configuración

Configuración básica con valores predeterminados:

export SOURCESYNC_API_KEY=your_api_key export SOURCESYNC_TENANT_ID=your_tenant_id export SOURCESYNC_NAMESPACE_ID=your_namespace_id

Herramientas disponibles

Autenticación

  • validate_api_key : valida una clave API de SourceSync.ai
{ "name": "validate_api_key", "arguments": {} }

Espacios de nombres

  • create_namespace : Crea un nuevo espacio de nombres
  • list_namespaces : Lista todos los espacios de nombres
  • get_namespace : Obtener detalles de un espacio de nombres específico
  • update_namespace : Actualizar un espacio de nombres
  • delete_namespace : Eliminar un espacio de nombres
{ "name": "create_namespace", "arguments": { "name": "my-namespace", "fileStorageConfig": { "provider": "S3_COMPATIBLE", "config": { "endpoint": "s3.amazonaws.com", "accessKey": "your_access_key", "secretKey": "your_secret_key", "bucket": "your_bucket", "region": "us-east-1" } }, "vectorStorageConfig": { "provider": "PINECONE", "config": { "apiKey": "your_pinecone_api_key", "environment": "your_environment", "index": "your_index" } }, "embeddingModelConfig": { "provider": "OPENAI", "config": { "apiKey": "your_openai_api_key", "model": "text-embedding-3-small" } }, "tenantId": "tenant_XXX" } }
{ "name": "list_namespaces", "arguments": { "tenantId": "tenant_XXX" } }
{ "name": "get_namespace", "arguments": { "namespaceId": "namespace_XXX", "tenantId": "tenant_XXX" } }
{ "name": "update_namespace", "arguments": { "namespaceId": "namespace_XXX", "tenantId": "tenant_XXX", "name": "updated-namespace-name" } }
{ "name": "delete_namespace", "arguments": { "namespaceId": "namespace_XXX", "tenantId": "tenant_XXX" } }

Ingestión de datos

  • ingest_text : Ingerir contenido de texto
  • ingest_urls : Ingerir contenido de las URL
  • ingest_sitemap : Ingerir contenido de un mapa del sitio
  • ingest_website : Ingerir contenido de un sitio web
  • ingest_notion : Ingerir contenido desde Notion
  • ingest_google_drive : Ingerir contenido desde Google Drive
  • ingest_dropbox : Ingerir contenido desde Dropbox
  • ingest_onedrive : Ingerir contenido desde OneDrive
  • ingest_box : Ingerir contenido de Box
  • get_ingest_job_run_status : obtener el estado de la ejecución de un trabajo de ingestión
{ "name": "ingest_text", "arguments": { "namespaceId": "your_namespace_id", "ingestConfig": { "source": "TEXT", "config": { "name": "example-document", "text": "This is an example document for ingestion.", "metadata": { "category": "example", "author": "AI Assistant" } } }, "tenantId": "tenant_XXX" } }
{ "name": "ingest_urls", "arguments": { "namespaceId": "your_namespace_id", "ingestConfig": { "source": "URLS", "config": { "urls": ["https://example.com/page1", "https://example.com/page2"], "metadata": { "source": "web", "category": "documentation" } } }, "tenantId": "tenant_XXX" } }
{ "name": "ingest_sitemap", "arguments": { "namespaceId": "your_namespace_id", "ingestConfig": { "source": "SITEMAP", "config": { "url": "https://example.com/sitemap.xml", "metadata": { "source": "sitemap", "website": "example.com" } } }, "tenantId": "tenant_XXX" } }
{ "name": "ingest_website", "arguments": { "namespaceId": "your_namespace_id", "ingestConfig": { "source": "WEBSITE", "config": { "url": "https://example.com", "maxDepth": 3, "maxPages": 100, "metadata": { "source": "website", "domain": "example.com" } } }, "tenantId": "tenant_XXX" } }
{ "name": "ingest_notion", "arguments": { "namespaceId": "your_namespace_id", "ingestConfig": { "source": "NOTION", "config": { "connectionId": "your_notion_connection_id", "metadata": { "source": "notion", "workspace": "My Workspace" } } }, "tenantId": "your_tenant_id" } }
{ "name": "ingest_google_drive", "arguments": { "namespaceId": "your_namespace_id", "ingestConfig": { "source": "GOOGLE_DRIVE", "config": { "connectionId": "connection_XXX", "metadata": { "source": "google_drive", "owner": "user@example.com" } } }, "tenantId": "tenant_XXX" } }
{ "name": "ingest_dropbox", "arguments": { "namespaceId": "your_namespace_id", "ingestConfig": { "source": "DROPBOX", "config": { "connectionId": "connection_XXX", "metadata": { "source": "dropbox", "account": "user@example.com" } } }, "tenantId": "tenant_XXX" } }
{ "name": "ingest_onedrive", "arguments": { "namespaceId": "your_namespace_id", "ingestConfig": { "source": "ONEDRIVE", "config": { "connectionId": "connection_XXX", "metadata": { "source": "onedrive", "account": "user@example.com" } } }, "tenantId": "tenant_XXX" } }
{ "name": "ingest_box", "arguments": { "namespaceId": "your_namespace_id", "ingestConfig": { "source": "BOX", "config": { "connectionId": "connection_XXX", "metadata": { "source": "box", "owner": "user@example.com" } } }, "tenantId": "tenant_XXX" } }
{ "name": "get_ingest_job_run_status", "arguments": { "namespaceId": "your_namespace_id", "ingestJobRunId": "ingest_job_run_XXX", "tenantId": "tenant_XXX" } }

Documentos

  • getDocuments : recupera documentos con filtros opcionales
  • updateDocuments : Actualizar metadatos del documento
  • deleteDocuments : Eliminar documentos
  • resyncDocuments : Resincronizar documentos
  • fetchUrlContent : recupera el contenido de texto de las URL de los documentos
{ "name": "getDocuments", "arguments": { "namespaceId": "namespace_XXX", "tenantId": "tenant_XXX", "filterConfig": { "documentTypes": ["PDF"] }, "includeConfig": { "parsedTextFileUrl": true } } }
{ "name": "updateDocuments", "arguments": { "namespaceId": "namespace_XXX", "tenantId": "tenant_XXX", "documentIds": ["doc_XXX", "doc_YYY"], "filterConfig": { "documentIds": ["doc_XXX", "doc_YYY"] }, "data": { "metadata": { "status": "reviewed", "category": "technical" } } } }
{ "name": "deleteDocuments", "arguments": { "namespaceId": "namespace_XXX", "tenantId": "tenant_XXX", "documentIds": ["doc_XXX", "doc_YYY"], "filterConfig": { "documentIds": ["doc_XXX", "doc_YYY"] } } }
{ "name": "resyncDocuments", "arguments": { "namespaceId": "namespace_XXX", "tenantId": "tenant_XXX", "documentIds": ["doc_XXX", "doc_YYY"], "filterConfig": { "documentIds": ["doc_XXX", "doc_YYY"] } } }
{ "name": "fetchUrlContent", "arguments": { "url": "https://api.sourcesync.ai/v1/documents/doc_XXX/content?format=text", "apiKey": "your_api_key", "tenantId": "tenant_XXX" } }

Buscar

  • semantic_search : Realizar búsqueda semántica
  • hybrid_search : Realizar una búsqueda híbrida (semántica + palabra clave)
{ "name": "semantic_search", "arguments": { "namespaceId": "your_namespace_id", "query": "example document", "topK": 5, "tenantId": "tenant_XXX" } }
{ "name": "hybrid_search", "arguments": { "namespaceId": "your_namespace_id", "query": "example document", "topK": 5, "tenantId": "tenant_XXX", "hybridConfig": { "semanticWeight": 0.7, "keywordWeight": 0.3 } } }

Conexiones

  • create_connection : Crea una nueva conexión a un servicio externo
  • list_connections : Lista todas las conexiones
  • get_connection : Obtener detalles de una conexión específica
  • update_connection : Actualizar una conexión
  • revoke_connection : Revocar una conexión
{ "name": "create_connection", "arguments": { "tenantId": "tenant_XXX", "namespaceId": "namespace_XXX", "name": "My Connection", "connector": "GOOGLE_DRIVE", "clientRedirectUrl": "https://your-app.com/callback" } }
{ "name": "list_connections", "arguments": { "tenantId": "tenant_XXX", "namespaceId": "namespace_XXX" } }
{ "name": "get_connection", "arguments": { "tenantId": "tenant_XXX", "namespaceId": "namespace_XXX", "connectionId": "connection_XXX" } }
{ "name": "update_connection", "arguments": { "tenantId": "tenant_XXX", "namespaceId": "namespace_XXX", "connectionId": "connection_XXX", "name": "Updated Connection Name", "clientRedirectUrl": "https://your-app.com/updated-callback" } }
{ "name": "revoke_connection", "arguments": { "tenantId": "tenant_XXX", "namespaceId": "namespace_XXX", "connectionId": "connection_XXX" } }

Ejemplos de indicaciones

A continuación se muestran algunos ejemplos de indicaciones que puede utilizar con Claude o Cursor después de configurar el servidor MCP:

  • "Busca información sobre aprendizaje automático en mi base de conocimientos de SourceSync".
  • "Ingresar este artículo en mi base de conocimientos de SourceSync: [URL]"
  • "Crear un nuevo espacio de nombres en SourceSync para la documentación de mi proyecto".
  • "Enumere todos los documentos en mi espacio de nombres SourceSync".
  • "Obtener el contenido de texto del documento [document_id] desde mi espacio de nombres SourceSync".

Solución de problemas

Problemas de conexión

Si tiene problemas para conectarse al servidor MCP de SourceSync.ai:

  1. Verificar rutas : asegúrese de que todas las rutas en su configuración sean rutas absolutas, no relativas.
  2. Comprobar permisos : asegúrese de que el archivo del servidor tenga permisos de ejecución ( chmod +x dist/index.js ).
  3. Habilitar el modo de desarrollador : en Claude Desktop, habilite el modo de desarrollador y verifique el archivo de registro de MCP.
  4. Probar el servidor : Ejecute el servidor directamente desde la línea de comandos:
    node /path/to/sourcesyncai-mcp/dist/index.js
  5. Reiniciar AI Client : después de realizar cambios, reinicie completamente Claude Desktop o Cursor.
  6. Verificar las variables de entorno : asegúrese de que todas las variables de entorno necesarias estén configuradas correctamente.

Registro de depuración

Para un registro detallado, agregue la variable de entorno DEBUG:

Desarrollo

Estructura del proyecto

  • src/index.ts : Punto de entrada principal y configuración del servidor
  • src/schemas.ts : Definiciones de esquemas para todas las herramientas
  • src/sourcesync.ts : Cliente para interactuar con la API de SourceSync.ai
  • src/sourcesync.types.ts : definiciones de tipos de TypeScript

Construcción y pruebas

# Build the project npm run build # Run tests npm test

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Campo de golf

Flujo de trabajo de recuperación de contenido de documentos:

  1. Primero, use getDocuments con includeConfig.parsedTextFileUrl: true para obtener los documentos con sus URL de contenido.
  2. Extraer la URL de la respuesta del documento
  3. Utilice fetchUrlContent para recuperar el contenido real:
{ "name": "fetchUrlContent", "arguments": { "url": "https://example.com" } }
-
security - not tested
A
license - permissive license
-
quality - not tested

Permite que los modelos de IA interactúen con la plataforma de gestión de conocimiento de SourceSync.ai para organizar, ingerir, recuperar y buscar contenido en bases de conocimiento.

  1. Features
    1. Installation
      1. Running with npx
      2. Installing via Smithery
      3. Manual Installation
      4. Running on Cursor
      5. Running on Windsurf
      6. Running on Claude Desktop
    2. Configuration
      1. Environment Variables
      2. Configuration Examples
    3. Available Tools
      1. Authentication
      2. Namespaces
      3. Data Ingestion
      4. Documents
      5. Search
      6. Connections
    4. Example Prompts
      1. Troubleshooting
        1. Connection Issues
        2. Debug Logging
      2. Development
        1. Project Structure
        2. Building and Testing
      3. License
        1. Links
          ID: 5kcwiwl8hr