1. Conduid
  2. RAG
  3. SourceSync.ai MCP Server
MCP server · RAG

SourceSync.ai MCP Server

Integrate your AI models with SourceSync.ai's knowledge management platform. Seamlessly manage, ingest, and search your documents while leveraging external services for enhanced data retrieval. Empower your AI with organized knowledge and efficient document management.

Unclaimed last commit a year ago rag
34Low

Scored 6 months ago · breakdown

About SourceSync.ai MCP Server

SourceSync.ai MCP Server is an MCP server published by sitegpt in the RAG category: integrate your AI models with SourceSync.ai's knowledge management platform. Seamlessly manage, ingest, and search your documents while leveraging external services for enhanced data retrieval. Empower your AI with organized knowledge and efficient document management.

The repository has 3 stars and 0 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/sitegpt/sourcesyncai-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (25)

createConnectionCreates a new connection to a specific source. The connector parameter should be a valid SourceSync connector enum value. The clientRedirectUrl parameter is optional and can be used to specify a custom redirect URL for the connection. This will give you a authorization url which you can redirect the user to. The user will then be asked to pick the documents they want to ingest.

Parameters not published.

createNamespaceCreates a new namespace with the provided configuration. Requires a name, file storage configuration, vector storage configuration, and embedding model configuration.

Parameters not published.

deleteDocumentsPermanently deletes documents that match the specified filter criteria.

Parameters not published.

deleteNamespacePermanently deletes a namespace by its ID.

Parameters not published.

fetchDocumentsFetches documents from the namespace based on filter criteria. Supports pagination and including specific document properties.

Parameters not published.

fetchUrlContentFetches the content of a URL. Particularly useful for fetching parsed text file URLs.

Parameters not published.

getConnectionRetrieves details for a specific connection by its ID.

Parameters not published.

getIngestJobRunStatusChecks the status of a previously submitted ingestion job.

Parameters not published.

getNamespaceRetrieves a specific namespace by its ID.

Parameters not published.

hybridSearchPerforms a combined keyword and semantic search, balancing between exact matches and semantic similarity. Requires hybridConfig with weights for both search types.

Parameters not published.

Show all 25 tools
ingestConnectorIngests all documents in the connector that are in backlog or failed status. No need to provide the document ids or file ids for the ingestion. Ids are already in the backlog when picked thorough the picker. If not, the user has to go through the authorization flow again, where they will be asked to pick the documents again.

Parameters not published.

ingestFileIngests a file into the namespace. Supports various file formats with automatic parsing.

Parameters not published.

ingestSitemapIngests content from a website using its sitemap.xml. Supports path filtering and link limits.

Parameters not published.

ingestTextIngests raw text content into the namespace. Supports optional metadata and chunk configuration.

Parameters not published.

ingestUrlsIngests content from a list of URLs. Supports scraping options and metadata.

Parameters not published.

ingestWebsiteCrawls and ingests content from a website recursively. Supports depth control and path filtering.

Parameters not published.

listConnectionsLists all connections for the current namespace, optionally filtered by connector type.

Parameters not published.

listNamespacesLists all namespaces available for the current API key and optional tenant ID.

Parameters not published.

resyncDocumentsReprocesses documents that match the specified filter criteria. Useful for updating after schema changes.

Parameters not published.

revokeConnectionRevokes access for a specific connection, removing the integration with the external service.

Parameters not published.

semanticSearchPerforms semantic search across the namespace to find relevant content based on meaning rather than exact keyword matches.

Parameters not published.

updateConnectionUpdates a connection to a specific source. The connector parameter should be a valid SourceSync connector enum value. The clientRedirectUrl parameter is optional and can be used to specify a custom redirect URL for the connection. This will give you a authorization url which you can redirect the user to. The user will then be asked to pick the documents they want to ingest. This is useful if you want to update the connection to a different source or if you want to update the clientRedirectUrl or if you want to pick a different or new set of documents.

Parameters not published.

updateDocumentsUpdates metadata for documents that match the specified filter criteria.

Parameters not published.

updateNamespaceUpdates an existing namespace with the provided configuration parameters.

Parameters not published.

validateApiKeyValidates the API key by attempting to list namespaces. Returns the list of namespaces if successful.

Parameters not published.

Ask AI

✦

Ask AI about SourceSync.ai MCP Server

Powered by Claude · Grounded in docs

I know everything about SourceSync.ai MCP Server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

SourceSync.ai MCP Server

smithery badge

A Model Context Protocol (MCP) server implementation for the SourceSync.ai API. This server allows AI models to interact with SourceSync.ai's knowledge management platform through a standardized interface.

Features

  • Manage namespaces for organizing knowledge
  • Ingest content from various sources (text, URLs, websites, external services)
  • Retrieve, update, and manage documents stored in your knowledge base
  • Perform semantic and hybrid searches against your knowledge base
  • Access document content directly from parsed text URLs
  • Manage connections to external services
  • Default configuration support for seamless AI integration

Installation

Running with npx

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

Installing via Smithery

To install sourcesyncai-mcp for Claude Desktop automatically via Smithery:

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

Manual Installation

# 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

Running on Cursor

To configure SourceSync.ai MCP in Cursor:

  1. Open Cursor Settings
  2. Go to Features > MCP Servers
  3. Click + Add New MCP Server
  4. Enter the following:
    • Name: sourcesyncai-mcp (or your preferred name)
    • Type: command
    • Command: env SOURCESYNCAI_API_KEY=your-api-key npx -y sourcesyncai-mcp

After adding, you can use SourceSync.ai tools with Cursor's AI features by describing your knowledge management needs.

Running on Windsurf

Add this to your ./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"
      }
    }
  }
}

Running on Claude Desktop

To use this MCP server with Claude Desktop:

  1. Locate the Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Edit the configuration file to add the SourceSync.ai MCP server:

{
  "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. Save the configuration file and restart Claude Desktop

Configuration

Environment Variables

Required

  • SOURCESYNC_API_KEY: Your SourceSync.ai API key (required)

Optional

  • SOURCESYNC_NAMESPACE_ID: Default namespace ID to use for operations
  • SOURCESYNC_TENANT_ID: Your tenant ID (optional)

Configuration Examples

Basic configuration with default values:

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

Available Tools

Authentication

  • validate_api_key: Validate a SourceSync.ai API key
{
  "name": "validate_api_key",
  "arguments": {}
}

Namespaces

  • create_namespace: Create a new namespace
  • list_namespaces: List all namespaces
  • get_namespace: Get details of a specific namespace
  • update_namespace: Update a namespace
  • delete_namespace: Delete a namespace
{
  "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"
  }
}

Data Ingestion

  • ingest_text: Ingest text content
  • ingest_urls: Ingest content from URLs
  • ingest_sitemap: Ingest content from a sitemap
  • ingest_website: Ingest content from a website
  • ingest_notion: Ingest content from Notion
  • ingest_google_drive: Ingest content from Google Drive
  • ingest_dropbox: Ingest content from Dropbox
  • ingest_onedrive: Ingest content from OneDrive
  • ingest_box: Ingest content from Box
  • get_ingest_job_run_status: Get the status of an ingestion job run
{
  "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"
  }
}

Documents

  • getDocuments: Retrieve documents with optional filters
  • updateDocuments: Update document metadata
  • deleteDocuments: Delete documents
  • resyncDocuments: Resync documents
  • fetchUrlContent: Fetch text content from document URLs
{
  "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"
  }
}

Search

  • semantic_search: Perform semantic search
  • hybrid_search: Perform hybrid search (semantic + keyword)
{
  "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
    }
  }
}

Connections

  • create_connection: Create a new connection to an external service
  • list_connections: List all connections
  • get_connection: Get details of a specific connection
  • update_connection: Update a connection
  • revoke_connection: Revoke a connection
{
  "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"
  }
}

Example Prompts

Here are some example prompts you can use with Claude or Cursor after configuring the MCP server:

  • "Search my SourceSync knowledge base for information about machine learning."
  • "Ingest this article into my SourceSync knowledge base: [URL]"
  • "Create a new namespace in SourceSync for my project documentation."
  • "List all the documents in my SourceSync namespace."
  • "Get the text content of document [document_id] from my SourceSync namespace."

Troubleshooting

Connection Issues

If you encounter issues connecting the SourceSync.ai MCP server:

  1. Verify Paths: Ensure all paths in your configuration are absolute paths, not relative.

  2. Check Permissions: Ensure the server file has execution permissions (chmod +x dist/index.js).

  3. Enable Developer Mode: In Claude Desktop, enable Developer Mode and check the MCP Log File.

  4. Test the Server: Run the server directly from the command line:

    node /path/to/sourcesyncai-mcp/dist/index.js
    
  5. Restart AI Client: After making changes, completely restart Claude Desktop or Cursor.

  6. Check Environment Variables: Ensure all required environment variables are correctly set.

Debug Logging

For detailed logging, add the DEBUG environment variable:


Development

Project Structure

  • src/index.ts: Main entry point and server setup
  • src/schemas.ts: Schema definitions for all tools
  • src/sourcesync.ts: Client for interacting with SourceSync.ai API
  • src/sourcesync.types.ts: TypeScript type definitions

Building and Testing

# Build the project
npm run build

# Run tests
npm test

License

MIT

Links

Document content retrieval workflow:

  1. First, use getDocuments with includeConfig.parsedTextFileUrl: true to get documents with their content URLs
  2. Extract the URL from the document response
  3. Use fetchUrlContent to retrieve the actual content:
{
  "name": "fetchUrlContent",
  "arguments": {
    "url": "https://example.com"
  }
}

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About SourceSync.ai MCP Server

How do I install SourceSync.ai MCP Server?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is SourceSync.ai MCP Server safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is SourceSync.ai MCP Server still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.