Skip to main content
Glama
scmdr

SourceSync.ai MCP Server

by scmdr

SourceSync.ai MCP サーバー

鍛冶屋のバッジ

SourceSync.ai API用のモデルコンテキストプロトコル(MCP)サーバー実装。このサーバーにより、AIモデルは標準化されたインターフェースを介してSourceSync.aiのナレッジマネジメントプラットフォームと連携できるようになります。

特徴

  • 知識を整理するための名前空間を管理する

  • さまざまなソース(テキスト、URL、ウェブサイト、外部サービス)からコンテンツを取り込む

  • ナレッジベースに保存されているドキュメントを取得、更新、管理します

  • ナレッジベースに対してセマンティック検索とハイブリッド検索を実行します

  • 解析されたテキスト URL からドキュメント コンテンツに直接アクセスする

  • 外部サービスへの接続を管理する

  • シームレスな AI 統合のためのデフォルト構成サポート

Related MCP server: Jira MCP Server

インストール

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"
  }
}

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scmdr/sourcesyncai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server