SourceSync.ai MCP Server

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

  • Connects to Box to ingest documents from the platform. Supports creating and managing connections to Box, and ingesting content via authenticated sessions.

  • Enables document ingestion from Dropbox accounts. Provides tools for authenticating with Dropbox, creating connections, and ingesting selected documents into the knowledge base.

  • Allows ingesting documents from Google Drive. Supports authenticating with Google Drive, selecting documents for ingestion, and maintaining connections to retrieve content.

SourceSync.ai MCP 服务器

SourceSync.ai API 的模型上下文协议 (MCP) 服务器实现。该服务器允许 AI 模型通过标准化接口与 SourceSync.ai 的知识管理平台进行交互。

特征

  • 管理命名空间以组织知识
  • 从各种来源(文本、URL、网站、外部服务)获取内容
  • 检索、更新和管理知识库中存储的文档
  • 针对您的知识库执行语义和混合搜索
  • 直接从解析的文本 URL 访问文档内容
  • 管理与外部服务的连接
  • 默认配置支持无缝 AI 集成

安装

使用 npx 运行

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

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 sourcesyncai-mcp:

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

手动安装

# 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

在光标上运行

要在 Cursor 中配置 SourceSync.ai MCP:

  1. 打开游标设置
  2. 前往Features > MCP Servers
  3. 点击+ Add New MCP Server
  4. 输入以下内容:
    • 名称: sourcesyncai-mcp (或您喜欢的名称)
    • 类型: command
    • 命令: env SOURCESYNCAI_API_KEY=your-api-key npx -y sourcesyncai-mcp

添加后,您可以通过描述您的知识管理需求,将SourceSync.ai工具与Cursor的AI功能结合使用。

在风帆冲浪中奔跑

将其添加到您的./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" } } } }

在 Claude Desktop 上运行

要将此 MCP 服务器与 Claude Desktop 一起使用:

  1. 找到 Claude Desktop 配置文件:
    • macOS~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows%APPDATA%\Claude\claude_desktop_config.json
    • Linux~/.config/Claude/claude_desktop_config.json
  2. 编辑配置文件以添加 SourceSync.ai MCP 服务器:
{ "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. 保存配置文件并重新启动Claude Desktop

配置

环境变量

必需的

  • SOURCESYNC_API_KEY :您的 SourceSync.ai API 密钥(必需)

选修的

  • SOURCESYNC_NAMESPACE_ID :用于操作的默认命名空间 ID
  • SOURCESYNC_TENANT_ID :您的租户 ID(可选)

配置示例

具有默认值的基本配置:

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

可用工具

验证

  • validate_api_key SourceSync.ai API 密钥
{ "name": "validate_api_key", "arguments": {} }

命名空间

  • create_namespace :创建一个新的命名空间
  • list_namespaces :列出所有命名空间
  • get_namespace :获取特定命名空间的详细信息
  • update_namespace :更新命名空间
  • delete_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" } }

数据提取

  • ingest_text :提取文本内容
  • ingest_urls :从 URL 中提取内容
  • ingest_sitemap :从站点地图中提取内容
  • ingest_website :从网站提取内容
  • ingest_notion :从 Notion 中提取内容
  • ingest_google_drive :从 Google Drive 提取内容
  • ingest_dropbox :从 Dropbox 提取内容
  • ingest_onedrive :从 OneDrive 提取内容
  • ingest_box :从 Box 中提取内容
  • get_ingest_job_run_status :获取摄取作业运行的状态
{ "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" } }

文件

  • getDocuments :使用可选过滤器检索文档
  • updateDocuments :更新文档元数据
  • deleteDocuments :删除文档
  • resyncDocuments :重新同步文档
  • fetchUrlContent :从文档 URL 获取文本内容
{ "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" } }

搜索

  • semantic_search :执行语义搜索
  • hybrid_search :执行混合搜索(语义+关键字)
{ "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 } } }

连接

  • create_connection :创建与外部服务的新连接
  • list_connections :列出所有连接
  • get_connection :获取特定连接的详细信息
  • update_connection :更新连接
  • revoke_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" } }

示例提示

以下是配置 MCP 服务器后可以与 Claude 或 Cursor 一起使用的一些示例提示:

  • “在我的 SourceSync 知识库中搜索有关机器学习的信息。”
  • “将这篇文章纳入我的 SourceSync 知识库:[URL]”
  • “在 SourceSync 中为我的项目文档创建一个新的命名空间。”
  • “列出我的 SourceSync 命名空间中的所有文档。”
  • “从我的 SourceSync 命名空间获取文档 [document_id] 的文本内容。”

故障排除

连接问题

如果您在连接 SourceSync.ai MCP 服务器时遇到问题:

  1. 验证路径:确保配置中的所有路径都是绝对路径,而不是相对路径。
  2. 检查权限:确保服务器文件具有执行权限( chmod +x dist/index.js )。
  3. 启用开发者模式:在 Claude Desktop 中,启用开发者模式并检查 MCP 日志文件。
  4. 测试服务器:直接从命令行运行服务器:
    node /path/to/sourcesyncai-mcp/dist/index.js
  5. 重新启动 AI 客户端:进行更改后,完全重新启动 Claude Desktop 或 Cursor。
  6. 检查环境变量:确保所有必需的环境变量都已正确设置。

调试日志

如需详细日志记录,请添加 DEBUG 环境变量:

发展

项目结构

  • src/index.ts :主入口点和服务器设置
  • src/schemas.ts :所有工具的架构定义
  • src/sourcesync.ts :与 SourceSync.ai API 交互的客户端
  • src/sourcesync.types.ts :TypeScript 类型定义

构建和测试

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

执照

麻省理工学院

链接

文档内容检索工作流程:

  1. 首先,使用getDocumentsincludeConfig.parsedTextFileUrl: true来获取文档及其内容 URL
  2. 从文档响应中提取 URL
  3. 使用fetchUrlContent检索实际内容:
{ "name": "fetchUrlContent", "arguments": { "url": "https://example.com" } }
ID: 3llggpfti7