Skip to main content
Glama

Synapse MCP Server

MIT License
2
  • Linux
  • Apple

시냅스 MCP 서버

Synapse 엔터티(데이터 세트, 프로젝트, 폴더, 파일, 테이블)와 해당 주석을 노출하고 OAuth2 인증을 지원하는 MCP(모델 컨텍스트 프로토콜) 서버입니다.

개요

이 서버는 모델 컨텍스트 프로토콜(MCP)을 통해 Synapse 엔터티와 해당 주석에 액세스하는 RESTful API를 제공합니다. 다음과 같은 작업을 수행할 수 있습니다.

  • Synapse로 인증
  • ID로 엔터티 검색
  • 이름으로 엔터티 검색
  • 엔티티 주석 가져오기
  • 엔티티 자식 가져오기
  • 다양한 기준에 따라 엔터티 쿼리
  • Synapse 테이블 쿼리
  • Croissant 메타데이터 형식으로 데이터 세트 가져오기

설치

지엑스피1

PyPI에서 설치

# Install from PyPI pip install synapse-mcp

용법

서버 시작

python server.py --host 127.0.0.1 --port 9000

이렇게 하면 기본 포트(9000)에서 MCP 서버가 시작됩니다.

CLI 사용

# Start the server using the CLI synapse-mcp --host 127.0.0.1 --port 9000 --debug

명령줄 옵션

usage: server.py [-h] [--host HOST] [--port PORT] [--debug] Run the Synapse MCP server with OAuth2 support options: -h, --help show this help message and exit --host HOST Host to bind to --port PORT Port to listen on --debug Enable debug logging --server-url URL Public URL of the server (for OAuth2 redirect)

테스트 실행

# Run all tests with coverage ./run_tests.sh # Or run pytest directly python -m pytest

서버 테스트

python examples/client_example.py

인증 방법

환경 변수

서버는 다음과 같은 환경 변수를 지원합니다.

  • HOST : 바인딩할 호스트(기본값: 127.0.0.1)
  • PORT : 수신할 포트(기본값: 9000)
  • MCP_TRANSPORT : 사용할 전송 프로토콜(기본값: stdio)
    • stdio : 로컬 개발을 위해 표준 입출력을 사용합니다.
    • sse : 클라우드 배포를 위해 서버에서 보낸 이벤트 사용
  • MCP_SERVER_URL : 서버의 공개 URL(기본값: mcp://127.0.0.1:9000)
    • OAuth2 리디렉션 및 서버 정보에 사용됨

서버는 두 가지 인증 방법을 지원합니다.

  1. 인증 토큰 : Synapse 인증 토큰을 사용하여 인증합니다.
  2. OAuth2 : Synapse의 OAuth2 서버를 사용하여 인증

API 엔드포인트

서버 정보

  • GET /info - 서버 정보 가져오기

도구

  • GET /tools - 사용 가능한 도구 나열
  • POST /tools/authenticate - Synapse로 인증
  • POST /tools/get_oauth_url - OAuth2 인증 URL 가져오기
  • POST /tools/get_entity - ID 또는 이름으로 엔티티 가져오기
  • POST /tools/get_entity_annotations - 엔티티에 대한 주석 가져오기
  • POST /tools/get_entity_children - 컨테이너 엔티티의 자식 엔티티 가져오기
  • POST /tools/query_entities - 다양한 기준에 따라 엔터티 쿼리
  • POST /tools/query_table - Synapse 테이블 쿼리

자원

  • GET /resources - 사용 가능한 리소스 나열
  • GET /resources/entity/{id} - ID로 엔터티 가져오기
  • GET /resources/entity/{id}/annotations - 엔티티 주석 가져오기
  • GET /resources/entity/{id}/children - 엔터티 자식 가져오기
  • GET /resources/query/entities/{entity_type} - 유형별 엔터티 쿼리
  • GET /resources/query/entities/parent/{parent_id} - 부모 ID로 엔터티 쿼리
  • GET /resources/query/entities/name/{name} - 이름으로 엔터티 쿼리
  • GET /resources/query/table/{id}/{query} - SQL과 유사한 구문으로 테이블 쿼리

OAuth2 엔드포인트

  • GET /oauth/login - Synapse OAuth2 로그인 페이지로 리디렉션
  • GET /oauth/callback - Synapse에서 OAuth2 콜백 처리

예시

입증

서버를 사용하려면 실제 Synapse 자격 증명으로 인증해야 합니다.

import requests # Authenticate with Synapse response = requests.post("http://127.0.0.1:9000/tools/authenticate", json={ "email": "your-synapse-email@example.com", "password": "your-synapse-password" }) result = response.json() print(result) # Alternatively, you can authenticate with an API key response = requests.post("http://127.0.0.1:9000/tools/authenticate", json={ "api_key": "your-synapse-api-key" })

OAuth2 인증

1. 리디렉션 흐름(브라우저 기반)

사용자를 OAuth 로그인 URL로 안내합니다.

http://127.0.0.1:9000/oauth/login?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI
2. API 기반 흐름

프로그래밍 방식으로 사용하려면 먼저 권한 부여 URL을 가져와야 합니다.

import requests # Get OAuth2 authorization URL response = requests.post("http://127.0.0.1:9000/tools/get_oauth_url", json={ "client_id": "YOUR_CLIENT_ID", "redirect_uri": "YOUR_REDIRECT_URI" }) auth_url = response.json()["auth_url"] # Redirect user to auth_url

엔티티 얻기

import requests # Get an entity by ID response = requests.get("http://127.0.0.1:9000/resources/entity/syn123456") # Replace with a real Synapse ID entity = response.json() print(entity)

엔터티 주석 가져오기

import requests # Get annotations for an entity response = requests.get("http://127.0.0.1:9000/resources/entity/syn123456/annotations") # Replace with a real Synapse ID annotations = response.json() print(annotations)

엔터티 쿼리

import requests # Query for files in a project response = requests.get("http://127.0.0.1:9000/resources/query/entities/parent/syn123456", params={ # Replace with a real Synapse ID "entity_type": "file" }) files = response.json() print(files)

테이블 쿼리

import requests # Query a table table_id = "syn123456" # Replace with a real Synapse table ID query = "SELECT * FROM syn123456 LIMIT 10" # Replace with a real Synapse table ID response = requests.get(f"http://127.0.0.1:9000/resources/query/table/{table_id}/{query}") table_data = response.json() print(table_data)

Croissant 형식으로 데이터 세트 가져오기

import requests import json # Get public datasets in Croissant format response = requests.get("http://127.0.0.1:9000/resources/croissant/datasets") croissant_data = response.json() # Save to file with open("croissant_metadata.json", "w") as f: json.dump(croissant_data, f, indent=2)

전개

도커

Docker를 사용하여 서버를 빌드하고 실행할 수 있습니다.

# Build the Docker image docker build -t synapse-mcp . # Run the container docker run -p 9000:9000 -e SYNAPSE_OAUTH_CLIENT_ID=your_client_id -e SYNAPSE_OAUTH_CLIENT_SECRET=your_client_secret -e SYNAPSE_OAUTH_REDIRECT_URI=your_redirect_uri synapse-mcp docker run -p 9000:9000 -e MCP_TRANSPORT=sse -e MCP_SERVER_URL=mcp://your-domain:9000 synapse-mcp

플라이아이오

fly.io에 배포:

# Install flyctl curl -L https://fly.io/install.sh | sh # Login to fly.io flyctl auth login # Launch the app flyctl launch # Set OAuth2 secrets flyctl secrets set SYNAPSE_OAUTH_CLIENT_ID=your_client_id flyctl secrets set SYNAPSE_OAUTH_CLIENT_SECRET=your_client_secret flyctl secrets set SYNAPSE_OAUTH_REDIRECT_URI=https://your-app-name.fly.dev/oauth/callback flyctl secrets set MCP_TRANSPORT=sse flyctl secrets set MCP_SERVER_URL=mcp://your-app-name.fly.dev:9000 # Deploy flyctl deploy

Claude Desktop과 통합

Synapse MCP 서버를 Claude Desktop과 통합하면 Claude가 대화에서 직접 Synapse 데이터에 액세스하여 작업할 수 있습니다.

설치 지침

  1. 먼저 저장소를 복제하고 요구 사항을 설치합니다.
# Clone the repository git clone https://github.com/susheel/synapse-mcp.git cd synapse-mcp # Create a virtual environment python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install dependencies pip install -e .
  1. Synapse MCP 서버를 사용하도록 Claude Desktop을 구성하세요.
    • 클로드 데스크톱 열기
    • 클로드 메뉴를 클릭하고 "설정..."을 선택하세요.
    • 왼쪽 막대에서 "개발자"를 클릭하세요
    • "구성 편집"을 클릭하세요
    • mcpServers 섹션에 다음 구성을 추가합니다.
"synapse-mcp": { "command": "python", "args": [ "/path/to/synapse-mcp/server.py", "--host", "127.0.0.1", "--port", "9000" ] }
  1. 구성 파일을 저장하고 Claude Desktop을 다시 시작하세요.
  2. 이제 Claude와의 대화에서 Synapse 데이터를 사용할 수 있습니다. 예:
    • "Synapse에서 ID syn123456을 가진 엔티티를 가져옵니다."
    • "Synapse 프로젝트 syn123456의 모든 파일 쿼리"
    • "Synapse 엔티티 syn123456에 대한 주석 가져오기"

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

특허

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Synapse 엔티티(데이터 세트, 프로젝트, 폴더, 파일, 테이블)와 해당 주석을 노출하는 모델 컨텍스트 프로토콜 서버로, RESTful API를 통해 Synapse 데이터 리소스에 프로그래밍 방식으로 액세스할 수 있습니다.

  1. 개요
    1. 설치
      1. PyPI에서 설치
    2. 용법
      1. 서버 시작
      2. CLI 사용
      3. 명령줄 옵션
      4. 테스트 실행
      5. 서버 테스트
    3. 인증 방법
      1. 환경 변수
    4. API 엔드포인트
      1. 서버 정보
      2. 도구
      3. 자원
      4. OAuth2 엔드포인트
    5. 예시
      1. 입증
      2. OAuth2 인증
      3. 엔티티 얻기
      4. 엔터티 주석 가져오기
      5. 엔터티 쿼리
      6. 테이블 쿼리
      7. Croissant 형식으로 데이터 세트 가져오기
    6. 전개
      1. 도커
      2. 플라이아이오
      3. Claude Desktop과 통합
      4. 설치 지침
    7. 기여하다
      1. 특허

        Related MCP Servers

        • A
          security
          F
          license
          A
          quality
          A Model Context Protocol server implementation for interacting with Salesforce through its REST API.
          Last updated -
          4
          10
          TypeScript
        • -
          security
          F
          license
          -
          quality
          A Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.
          Last updated -
          46
          2
          Python
          • Linux
          • Apple
        • -
          security
          F
          license
          -
          quality
          A Model Context Protocol server for accessing Confluence API using Personal Access Tokens, enabling users to retrieve space lists, view pages, create new pages, and update existing content.
          Last updated -
          TypeScript
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server that exposes over 200+ APIs from API.market as MCP resources, allowing large language models to discover and interact with various APIs through natural language commands.
          Last updated -
          111
          2
          TypeScript
          MIT License
          • Apple

        View all related MCP servers

        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/susheel/synapse-mcp'

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