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

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: 5kcwiwl8hr