SourceSync.ai MCP Server

by scmdr

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로 실행

지엑스피1

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에서 실행

Claude Desktop과 함께 이 MCP 서버를 사용하려면:

  1. Claude Desktop 구성 파일을 찾으세요.
    • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
    • 윈도우 : %APPDATA%\Claude\claude_desktop_config.json
    • 리눅스 : ~/.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

특허

MIT

모래밭

문서 콘텐츠 검색 워크플로:

  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

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.

AI 모델이 SourceSync.ai의 지식 관리 플랫폼과 상호 작용하여 문서를 관리하고, 다양한 소스에서 콘텐츠를 수집하고, 의미 검색을 수행할 수 있도록 하는 모델 컨텍스트 프로토콜 서버입니다.

  1. 특징
    1. 설치
      1. npx로 실행
      2. Smithery를 통해 설치
      3. 수동 설치
      4. 커서에서 실행
      5. 윈드서프에서 달리기
      6. Claude Desktop에서 실행
    2. 구성
      1. 환경 변수
      2. 구성 예제
    3. 사용 가능한 도구
      1. 입증
      2. 네임스페이스
      3. 데이터 수집
      4. 서류
      5. 찾다
      6. 사이
    4. 예시 프롬프트
      1. 문제 해결
        1. 연결 문제
        2. 디버그 로깅
      2. 개발
        1. 프로젝트 구조
        2. 빌딩 및 테스트
      3. 특허
        1. 모래밭

          Related MCP Servers

          • -
            security
            F
            license
            -
            quality
            A comprehensive suite of Model Context Protocol servers designed to extend AI agent Claude's capabilities with integrations for knowledge management, reasoning, advanced search, news access, and workspace tools.
            Last updated -
            5
            TypeScript
            • Apple
          • -
            security
            F
            license
            -
            quality
            A Model Context Protocol server that provides AI assistants with structured access to your Logseq knowledge graph, enabling retrieval, searching, analysis, and creation of content within your personal knowledge base.
            Last updated -
            19
            TypeScript
            • Apple
          • -
            security
            A
            license
            -
            quality
            Allows AI models to interact with SourceSync.ai's knowledge management platform to organize, ingest, retrieve, and search content in knowledge bases.
            Last updated -
            14
            1
            TypeScript
            MIT License
            • Apple
            • Linux
          • A
            security
            F
            license
            A
            quality
            A Model Context Protocol server that enables AI assistants like Claude to access and search Atlassian Confluence content, allowing integration with your organization's knowledge base.
            Last updated -
            5
            467
            3
            TypeScript
            • Apple

          View all related MCP servers

          ID: 3llggpfti7