Synapse MCP Server logo

Synapse MCP Server

by susheel

A Model Context Protocol (MCP) server that exposes Synapse Entities with their annotations and supports OAuth2 authentication. It provides a RESTful API for accessing Synapse entities and their annotations through the Model Context Protocol (MCP).

View on GitHub

Last updated: N/A

What is Synapse MCP Server?

This server is a Model Context Protocol (MCP) server that provides a RESTful API to access Synapse entities (Datasets, Projects, Folders, Files, Tables) and their annotations. It allows users to interact with Synapse data programmatically using standard HTTP requests and supports OAuth2 authentication.

How to use Synapse MCP Server?

To use the server, you can either install it from PyPI or clone the repository and install the dependencies. After installation, you can start the server using the command line. The server exposes several API endpoints for retrieving entities, annotations, querying data, and handling OAuth2 authentication. Example code snippets are provided in the README to demonstrate how to authenticate and interact with the server.

Key features of Synapse MCP Server

  • Authentication with Synapse (Auth Token and OAuth2)

  • Retrieval of Synapse entities by ID or name

  • Access to entity annotations

  • Querying entities based on various criteria

  • Querying Synapse tables

  • Integration with Claude Desktop

  • Exposing datasets in Croissant metadata format

Use cases of Synapse MCP Server

  • Programmatic access to Synapse data

  • Integration of Synapse data with other applications

  • Building data pipelines that leverage Synapse entities

  • Enabling AI models to access and understand Synapse data

  • Integrating Synapse data with Claude Desktop for conversational data analysis

FAQ from Synapse MCP Server

How do I authenticate with the server?

You can authenticate using a Synapse authentication token or OAuth2. For OAuth2, you need to register an OAuth2 client in Synapse.

How do I get an entity by ID?

Use the GET /resources/entity/{id} endpoint, replacing {id} with the Synapse ID of the entity.

How do I query a Synapse table?

Use the GET /resources/query/table/{id}/{query} endpoint, replacing {id} with the table ID and {query} with a SQL-like query.

What environment variables are supported?

The server supports HOST, PORT, MCP_TRANSPORT, and MCP_SERVER_URL environment variables for configuration.

How do I deploy the server?

The server can be deployed using Docker or Fly.io. Instructions for both methods are provided in the README.