Bootstrapper Gluesync bootstrapper screenshot Repository

Gluesync Bootstrapper is a configuration tool for setting up database schema mappings between source and target systems in an automated way, bypassing the need to manually configure entities in the Gluesync Core Hub Web UI. It also ships with an MCP (Model Context Protocol) server that exposes every CoreHub operation as AI-agent-callable tools, enabling natural-language pipeline management, debugging, and monitoring via Claude Desktop, Windsurf, Cursor, and other MCP-compatible clients.

Open Source This project is Open Source

Gluesync Automator UI

For users who prefer a graphical interface over command-line tools, the Bootstrapper is also available as a standalone executable with a web-based UI. The Gluesync Automator provides a user-friendly interface accessible via localhost:8080, featuring drag-and-drop configuration uploads, live log monitoring, and simplified authentication without requiring Python dependencies.

Overview

The Bootstrapper allows you to define table structures, column mappings, and connection properties using YAML configuration files, enabling precise control over how data is transferred and transformed across different database systems. This automation tool integrates directly with the Core Hub API to streamline entity configuration.

Key Features

  • Real-time Data Synchronization

    • Automated synchronization between source and target databases

    • Support for multiple database systems (MS SQL Server, Couchbase, etc.)

    • Configurable filtering and transformation rules

  • Schema Configuration

    • Table structure mapping

    • Column mapping with type safety

    • Custom document key generation

    • TTL (Time To Live) management for target documents

    • Schedules for recurring jobs (via Chronos)

    • …​and much more

  • Pipeline Management

    • Flexible polling intervals and batch processing

    • Automatic agent configuration

    • Direct Core Hub API integration

  • AI Agent Integration (MCP Server)

    • 48 tools exposing pipelines, agents, entities, sync commands, metrics, notifications, and more

    • Works with Claude Desktop, Windsurf, Cursor, and any MCP-compatible client

    • Automatic token sharing — no manual environment configuration needed

    • One-click client setup from the Automator Settings UI

AI Agent Integration (MCP Server)

The Bootstrapper includes a built-in MCP (Model Context Protocol) server that exposes every CoreHub operation as a callable tool. Any MCP-compatible AI client — Claude Desktop, Windsurf, Cursor, OpenClaw, or custom agents — can list pipelines, start and stop sync, inspect entity status, read metrics, and manage notifications using natural language prompts.

What AI agents can do

Tool Description

list_pipelines

List all pipelines with IDs and completion status

get_pipeline

Full config and agent details for a pipeline

get_pipeline_status

High-level health summary (syncing / idle / erroring / paused)

get_pipeline_entities_status

Real-time runtime status for every entity (isSyncActive, isMigrationActive, isBusy, errorState)

get_agent / get_agent_raw

Agent configuration (raw includes secrets, requires SUPER_ADMIN)

assign_agent / unassign_agent

Attach or detach agents from pipelines

start_sync / stop_sync / redo_sync / one_time_snapshot

Control replication and snapshots

enter_maintenance_mode / exit_maintenance_mode

Pause and resume without losing checkpoints

get_notifications / mark_notifications_read

Browse and acknowledge CoreHub events

get_pipeline_metrics / get_prometheus_metrics

Real-time throughput and raw Prometheus text

get_mapping_function_code

Read UDF source code

export_pipeline_yaml

Export pipeline config to YAML for migration

get_license_info / get_corehub_version

Instance metadata

Full tool count: 48 (see the 2.7.0 release notes for the complete list).

Authentication

The MCP server needs a valid CoreHub JWT to call the REST API. You have three ways to provide it:

  1. Automatic (recommended) — Log in via the Automator web UI. The token is written to .gluesync_mcp_token in the project root and read automatically by the MCP server.

  2. Environment variable — Set COREHUB_TOKEN in the shell or client config.

  3. Tool argument — Pass token directly in any individual tool call.

Transport options

SSE (via Automator)

When the Automator is running, the MCP server is available at http://localhost:<AUTOMATOR_PORT>/mcp/sse. Connect any SSE-capable client (Cursor, Windsurf, custom agents) to that URL. Token is injected automatically from Automator state.

stdio (Claude Desktop, CLI agents)

Run the server as a subprocess over stdio:

# Automatic token (written by Automator login)
python -m mcp_server.server

# Or with explicit token
export COREHUB_TOKEN="your-token"
python -m mcp_server.server

Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "gluesync": {
      "command": "python3",
      "args": ["-m", "mcp_server.server"],
      "cwd": "/path/to/gluesync-bootstrapper"
    }
  }
}

One-click client setup

The Automator Settings UI includes an AI Agent Integration card that detects installed MCP clients on your machine (Claude Desktop, Windsurf, Cursor). Select the clients you want to configure and click Setup MCP. The Automator will:

  1. Detect each client’s config path

  2. Safely merge the Gluesync MCP server entry

  3. Preserve any existing servers you already have configured

After setup, restart the AI client app to activate the connection.

Example agent interactions

User: Which pipelines are currently configured?
Agent → list_pipelines()

User: Are there any errors on pipeline abc-123?
Agent → get_pipeline_status(pipeline_id="abc-123")
Agent → get_notifications(pipeline_id="abc-123", level=["ERROR"])

User: Start a full snapshot for all entities in pipeline abc-123
Agent → start_sync(pipeline_id="abc-123", with_snapshot=true)

User: Export the QA pipeline config so I can import it to production
Agent → export_pipeline_yaml(pipeline_id="abc-123", base_url="https://qa-corehub:1717")

User: What's the replication lag on the source agent?
Agent → get_agent_prometheus_metrics(pipeline_id="abc-123", agent_id="source-agent-id")

Configuration

The Bootstrapper works with two primary configuration files:

  1. Schema configuration (table-list-template.yaml)

  2. Agent configuration (config.json)

Schema Configuration

The schema configuration defines how tables should be synchronized and transformed:

You can download a ready-to-use schema template here:

dbo: # Source schema
  target: public # Target schema
  customProperties: # Custom properties for both source and target
    source: # Source custom properties
      maxItemsCountPerIteration: 1000
      pollingIntervalMilliseconds: 100
    target: # Target custom properties
      ttlValue: 10000000
  tables: # Tables to be synchronized
    whitelist: # Allowed tables to be synchronized, empty list means all tables
      - DRIVERS
      - VEHICLES
    blacklist: # Forbidden tables to be synchronized, empty list means no restrictions
      - TEST

Table Configuration

Each table can be configured with detailed mapping information:

DRIVERS:
  keys:
    - ID
  documentKey:
    prefix: "TESTPREFIX"
    suffix: "TESTSUFFIX"
    separator: "-"
    keys:
      - ID
      - LAST_NAME
  name: drivers
  columns:
    - FIRST_NAME: "FIRST_NAME"
    - LAST_NAME: "LAST_NAME"
    - AGE: "AGE"
    - EMAIL: "EMAIL"

Agent Configuration

The agent configuration defines the connection details for source and target databases:

{
  "agents": [
    {
      "agentType": "SOURCE",
      "agentTag": "mssql-ct",
      "hostCredentials": {
        "connectionName": "MS SQL Server source",
        "host": "localhost",
        "port": 1433,
        "databaseName": "demo"
      }
    }
  ]
}

Usage

Getting Started

Before using the Bootstrapper, you need:

  1. A running Gluesync deployment with Core Hub accessible

  2. Authentication credentials for the Core Hub API

  3. Proper network connectivity between source and target systems

Authentication

To use the tool, you need to get a valid authentication token from the Core Hub API. This can be done in several ways:

  1. By logging in to the Core Hub Web UI and copying the token from the browser’s cookies

  2. By using an HTTP client to request a token

curl -X POST https://<corehub-url>/authentication/login -H "Content-Type: application/json" -d '{"username":"<username>","password":"<password>"}'

Main Script Usage

The primary entry point is the main.py script which creates a new pipeline and configures the agents:

python main.py --config <path_to_config> --token <auth_token> [--skip-errors] [--chunk-size <number>]

Alternatively, you can use environment variables:

# Set environment variables
export FILE_CONF_PATH="./my-config.json"
export CORE_HUB_URL="https://my-corehub:1717"
export DEFAULT_PASSWORD="my-secure-password"
export CREATE_ENTITIES_FROM_SCHEMA="true"
export TARGET_SCHEMA="public"
export SOURCE_TYPE="SQL"
export TARGET_TYPE="NoSQL"

# Run the script
python main.py

Creating Entities

To create entities in the Core Hub based on your YAML configuration:

python create_all_entities.py --pipeline <pipeline_id> --source-schema <source_schema> --target-schema <target_schema> --source-type <source_agent_type> --target-type <target_agent_type> --yaml-file <path_to_yaml_config> --token <auth_token> [--skip-errors] [--chunk-size <number>]

Parameters:

  • --pipeline: Required. The ID of the pipeline to create entities for

  • --source-schema: Required. Source schema name

  • --target-schema: Required. Target schema name

  • --source-type: Required. Source agent type (e.g., SQL for RDBMSs, NoSQL for NoSQL databases)

  • --target-type: Required. Target agent type (e.g., NoSQL for NoSQL databases, SQL for RDBMSs)

  • --yaml-file: Required. Path to the YAML configuration file

  • --token: Required. Authentication token for API access

  • --skip-errors: Optional. Continue execution even if errors occur

  • --chunk-size: Optional. Number of entities to process in each chunk (default: 50)

Accepted values for source-type and target-type: - SQL (for any RDBMS) - NoSQL (for NoSQL databases, Kafka, AWSS3, etc.)

Best Practices

  • Store configuration files in version control

  • Create different configuration files for development, staging, and production environments

  • Validate configurations before applying them to production systems

  • Use consistent naming conventions for schemas, tables, and columns

  • Document custom transformations and rules

  • Test configurations thoroughly before deployment

Troubleshooting

Common Issues

Issue Possible Cause Resolution

Authentication failures

Invalid or expired token

Generate a new authentication token

Entity creation errors

Incorrect schema configuration

Verify YAML configuration format and structure

Connection issues

Network connectivity problems

Check network settings and firewall rules

Type mapping errors

Incompatible data types between source and target

Verify column type definitions in the YAML configuration

Release Notes

2.7.8

Released: September 21, 2026

  • Hotfix for Missing entity primary keys regression from 2.7.7 Field Functions (GSSD-1355): restore IT-style {id: ID} shorthand mappings (no longer skipped as export metadata), fall back to discovery when mapping extraction yields no source columns, and set isPK=true on matching columns so CoreHub CREATE succeeds for plain SQL entities;

2.7.7

Released: September 20, 2026

  • Fixed Field Functions round-trip in Automator/Bootstrapper export/import (GSSD-1355): read target.entityType.fieldFunctions, emit documented YAML expression blocks, and rebuild field functions on import;

  • Entity-only export packages referenced UDF source files (udf-* / ZIP when present); full pipeline backup layout is unchanged;

2.7.6

Released: September 8, 2026

  • Fixed first-login password change: change_password is now defined at module scope so Hub changeRequired no longer raises NameError and falls back to the default password;

2.7.5

Released: September 7, 2026

  • Fixed DbMoto converter YAML/report export on Windows: force UTF-8 encoding on text reads/writes so non-ASCII metadata (e.g. Hungarian Ő) no longer crashes with UnicodeEncodeError under the Windows locale encoding;

2.7.4

Released: August 24, 2026

  • Fixed an issue with agent’s credentials validation;

2.7.3

Released: August 21, 2026

  • No Bootstrapper runtime change. Tagged together with Automator 1.4.7 so the maintenance-mode backup skip ships on main;

2.7.2

Released: August 20, 2026

  • Restored the original credentials-then-cert-store order. Hub 2.2.11.1 now requires agent credentials before uploading a certificate store;

  • Safe on older Hub (2.2.10.12 and earlier);

2.7.1

Released: July 30, 2026

  • Added support for CCSID management;

2.7.0

Released: June 15, 2026

  • New MCP server exposing CoreHub pipeline operations as tools for AI agents (48 tools total). Supports both SSE (via Automator) and stdio (Claude Desktop, Windsurf, Cursor) transports;

    • Entity Operations: get_pipeline_entities_status — returns real-time runtime status (isSyncActive, isMigrationActive, isBusy, errorState) for every entity in a pipeline. This is the same data the Gluesync MPP UI uses to display entity status (Active / Hold / Error);

    • Agent Management: get_agent, get_agent_raw (with secrets, requires SUPER_ADMIN), get_agent_node_info, assign_agent, unassign_agent;

    • Sync Commands: redo_sync (restart from zero), one_time_snapshot, start_group_sync, stop_group_sync;

    • Maintenance: enter_maintenance_mode, exit_maintenance_mode;

    • Global Configuration: get_global_config, get_global_config_keys, get_release_channel, set_log_level;

    • Notifications: get_notification (by ID), get_notification_count, mark_notifications_read (by ID or all);

    • Mapping Functions (UDF): list_mapping_functions, get_mapping_function_code;

    • Metrics: get_pipeline_metrics, get_agent_metrics, get_entity_metrics, get_global_metrics, get_prometheus_metrics (raw OpenMetrics text), get_agent_prometheus_metrics;

    • License & Version: get_license_info, get_corehub_version;

    • Automatic token sharing — token written to .gluesync_mcp_token on login, read automatically by the MCP server. No manual COREHUB_TOKEN environment variable needed;

    • One-click MCP client setup — added /api/mcp/status and /api/mcp/install endpoints to the Automator, with a setup card in the Settings UI for detected clients (Claude Desktop, Windsurf, Cursor);

    • stdio transport stability — fixed AttributeError during initialization and redirected sys.stdout to sys.stderr to prevent stray print() calls from corrupting the JSON-RPC protocol stream;

    • Entity status accuracy — get_pipeline_status now calls the new GET /pipelines/{pid}/entities-status REST endpoint (also added to the Kotlin backend) instead of scanning entity configuration objects for non-existent status fields. Status is now computed the same way as the MPP UI: error if errorState != null, active if isSyncActive || isMigrationActive, hold otherwise;

2.6.1

Released: May 29, 2026

  • Table creation now does not attempt sending physical keys creation when source table doesn’t have any;

2.6.0

Released: May 27, 2026

  • Version bump for Core Hub 2.2.7+ compatibility;

2.5.3

Released: May 19, 2026

  • Improved data type resolution during entity creation by normalizing mapped types against the target matrix canonical values and preserving valid YAML type overrides when they match supported target types;

  • Lowered log severity for expected Core Hub error statuses (for example 404 during table existence checks) to reduce false-positive error noise in normal flows;

2.5.2

Released: May 9, 2026

  • Fixed snapshot deletion filter not working properly;

2.5.1

Released: April 29, 2026

  • Improved gzip decoding;

2.5.0

Released: April 29, 2026

  • Added support for Gluesync 2.2.6;

2.4.10

Released: April 27, 2026

  • Fixed an issue where target defined columns were not picked up during entity creation;

2.4.9

Released: April 4, 2026

  • Warning instead of error when login fails;

2.4.8

Released: March 31, 2026

  • Fixed a bug with tables retrieval when using MultiTable entities and multiple schemas within the same yaml template;

2.4.7

Released: March 23, 2026

  • Fixed an issue with target columns not being properly mapped when having different cases;

2.4.6

Released: March 19, 2026

  • Added support for pipeline maintenance mode scheduling;

2.4.5

Released: March 18, 2026

  • Improved Vertica data type mapping;

2.4.4

Released: March 17, 2026

  • Improved Oracle data type mapping;

2.4.3

Released: March 15, 2026

  • Support for dynamic target custom properties;

2.4.2

Released: March 9, 2026

  • Fixed snapshot write method not being used when startin an entity;

  • Fixed a regression on legacy YAML format handling;

2.4.1

Released: March 7, 2026

  • Fixed an issue during import of tables with multiple occurrences of the same table name within a YAML file;

2.4.0

Released: March 6, 2026

  • Support for Gluesync 2.2;

2.3.18

Released: February 26, 2026

  • Fixed an issue with target table creation and no keys at source;

  • Azure data lake data type mapping improvements;

2.3.17

Released: February 26, 2026

  • Create target table with declared keys when source tables has none;

2.3.16

Released: February 25, 2026

  • Enhaced data type mapping;

2.3.15

Released: February 25, 2026

  • Major refactor on data types management with the introduction of data type matrix;

2.3.14

Released: February 25, 2026

  • Fixed an issue with create table processing and columns ids exports;

2.3.13

Released: February 22, 2026

  • Support for new Chronos schedules types (redo api);

2.3.12

Released: February 19, 2026

  • Fixed an issue with case sensitiveness applied when attempting to perform table’s creation;

2.3.11

Released: February 15, 2026

  • Added support for pre & post snapshot queries as per Gluesync 2.1.11;

2.3.10

Released: February 2, 2026

  • Added support for SQL where clauses applied at source database level;

2.3.9

Released: January 19, 2026

  • Added support for bulk loads at entity level;

2.3.8

Released: January 16, 2026

  • Fixed import of document keys;

  • Fixed import of filters;

  • Minor fixes and improvements;

2.3.7

Released: January 14, 2026

  • Minor fixes;

2.3.6

Released: December 19, 2025

  • Better handling of target table type matching;

2.3.5

Released: December 10, 2025

  • It is not longer necessary to manually declare the source & target agents types, those will be derived from the embedded agents.json;

2.3.4

Released: December 8, 2025

  • Enriched metadata for full pipeline export;

2.3.3

Released: December 6, 2025

  • GSSD-442: when using "targetOnlyColumns" with "lockedSchema" set to true, you’ll prompted with an error;

2.3.2

Released: December 6, 2025

  • Support for source & target type within .yaml (both for import & export);

2.3.1

Released: December 5, 2025

  • Added support for pipeline export (also in bulk);

2.3.0

Released: November 28, 2025

  • Added support for Logical partitions;

  • Timeout is now float;

2.2.7

Released: November 19, 2025

  • Added support for Tables Id as per GS 2.1.8.1;

2.2.6

Released: November 7, 2025

  • Added support for table creation outside "targetOnlyColumns";

2.2.5

Released: October 15, 2025

  • Fixes around URL encoding during api calls;

2.2.4

Released: October 10, 2025

  • Suppress additional table discovery checks when not needed;

2.2.3

Released: October 9, 2025

  • API updates for table creation;

2.2.2

Released: October 3, 2025

  • Re-added back snapshot write method param;

2.2.1

Released: October 2, 2025

  • Improved handling of Chains;

2.2.0

Released: September 25, 2025

  • Support for unlocked schema APIs;

2.1.16

Released: September 23, 2025

  • Support for conditional deletion ahead of snapshot task;

  • Support for custom snaphost method property (e.g. INSERT / UPSERT).

2.1.15

Released: September 16, 2025

  • Added support for Conductor’s APIs;

2.1.14

Released: September 15, 2025

  • Improvements and fixes around the table creation APIs;

2.1.13

Released: September 3, 2025

  • Fixed table keys declaration;

2.1.12

Released: September 1, 2025

  • void tag

2.1.11

Released: August 28, 2025

  • Support for multiple schemas within the same given .yaml file;

2.1.10

Released: August 26, 2025

  • Fixed chains creation;

  • Readme updated;

2.1.9

Released: August 25, 2025

  • Avoid table’s discovery if CREATE_TABLES_IF_NOT_EXIST is set to false;

2.1.8

Released: August 25, 2025

  • Support for groups' scheduling;

2.1.7

Released: August 22, 2025

  • Handle multiple schemas within the same given .yaml file;

2.1.6

Released: August 20, 2025

  • Make the pipeline name configurable;