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 ドライブからコンテンツを取り込む
  • 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. まず、 includeConfig.parsedTextFileUrl: true指定したgetDocuments使用して、ドキュメントとそのコンテンツ URL を取得します。
  2. ドキュメントレスポンスからURLを抽出する
  3. 実際のコンテンツを取得するには、 fetchUrlContentを使用します。
{ "name": "fetchUrlContent", "arguments": { "url": "https://example.com" } }

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

AI モデルが SourceSync.ai のナレッジ管理プラットフォームと対話してドキュメントを管理し、さまざまなソースからのコンテンツを取り込み、セマンティック検索を実行できるようにするモデル コンテキスト プロトコル サーバー。

  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: 3llggpfti7