Announcing Dolt MCP

FEATURE RELEASE
31 min read

AI agents need branches and Dolt is the only SQL database with branches. This means that agents also need Dolt.

Today, we're excited to announce Dolt MCP, the open-source Model Context Protocol (MCP) server for Dolt databases.

If you're unfamiliar with MCP, it's a protocol that allows AI models and agents to interact with underlying resources through a standardized, REST-like API. Using MCP, AI agents can call tools, invoke functions, and consume information in a consistent, interoperable way.

You can think of MCP as the USB port that allows an agent to access some resource, like a database. You simply plug the agent in, and play!

Major database vendors also have MCP servers available for their technologies. For example, there are MCP servers for PostgreSQL and MySQL.

This PostgresSQL MCP server is read-only, which ensures that an AI agent can't corrupt the underlying data with unauthorized writes. On the other hand, the MySQL MCP server does allow writes, but risks data corruption by doing so. For legacy SQL databases, these will always be the trade-offs you need to consider before giving an AI agent access.

What's interesting to note, though, is that both MCP server implementations highlight the general direction AI and database technology is headed. As the MySQL MCP server implementation demonstrates, in order to get any meaningful production from AI, we have to allow it to make writes. And, as demonstrated by the PostgreSQL MCP Server implementation, we also need to be able to guarantee that AI won't corrupt data and will only make authorized writes.

This is why AI agents need branches. This is why AI agents need Dolt.

Dolt is built for agentic workflows and Dolt's MCP server allows agents to write to the Dolt database directly, without any concern for data corruption, mistakes, or hallucinations, since agents can perform all their writes on their own database branch. If an agent's branch ends up being unusable, it's thrown away. This is akin to an engineer writing source code on a branch. AI agents can now do the same with Dolt and Dolt MCP. Once an agent's branch is approved, the changes can be merged into the main branch. This is the power of Dolt.

With that said, let's jump in to how you can get started using Dolt MCP today! We'll briefly cover the basic usage, then walk through and example where we allow an agent to make some fun writes to a Dolt database.

Getting Started

As I mentioned above, AI agents already know how to use MCP servers, so to get started with Dolt MCP, you just need a running Dolt server, a running Dolt MCP server, and the AI agent(s) of your choice configured to use it.

Let's start with by running a local Dolt server that we want our agent to access.

➜  dbs git:(main) mkdir mcp_example
➜  dbs git:(main) cd mcp_example
➜  mcp_example git:(main) dolt init
Successfully initialized dolt data repository.
➜  mcp_example git:(main) dolt sql -q "create table t1 (pk int primary key);"
➜  mcp_example git:(main) dolt sql -q "insert into t1 values (1), (2), (3);"
➜  mcp_example git:(main) dolt add .
➜  mcp_example git:(main) dolt commit -m 'add t1 and some values'
commit ch830cme0c7ltohtvmcmffp7c1tsgfvc (HEAD -> main)
Author: coffeegoddd☕✨ <dustin@dolthub.com>
Date:  Wed Aug 13 11:38:17 -0700 2025

        add t1 and some values

➜  mcp_example git:(main)

In the snippet above, we've created a new Dolt database called mcp_example and added a table, t1 with some data.

Now, let's start the Dolt server for this database on port 3306.

➜  mcp_example git:(main) dolt sql-server --host 0.0.0.0 --port 3306 -l debug
Starting server with Config HP="0.0.0.0:3306"|T="28800000"|R="false"|L="debug"
DEBU[0000] Loading events
INFO[0000] Creating root@localhost superuser
INFO[0000] Server ready. Accepting connections.
WARN[0000] secure_file_priv is set to "", which is insecure.
WARN[0000] Any user with GRANT FILE privileges will be able to read any file which the sql-server process can read.
WARN[0000] Please consider restarting the server with secure_file_priv set to a safe (or non-existent) directory.

Great! In another shell, let's start up Dolt's MCP server connected to our Dolt server. To do this, we'll use the official dolthub/dolt-mcp Docker image.

➜  ~ git:(main) docker run --rm \
--network host \
-e MCP_MODE=http \
-e DOLT_HOST=127.0.0.1 \
-e DOLT_DATABASE=mcp_example \
dolthub/dolt-mcp:latest
Starting Dolt MCP Server in HTTP mode on port 8080
Connecting to Dolt server at 127.0.0.1:3306
Database: mcp_example, User: root
Serving Dolt MCP on :8080

In the above snippet we run Dolt's MCP server on the host network so it can resolve 127.0.0.1 to our host machine, and we supply the required environment variables the server needs to establish a connection with our Dolt server.

Lastly, we can register the Dolt MCP server with an AI agent, and start using it. In this example let's register the server with Claude Code.

➜  ~ git:(main) claude mcp add -t http dolt-mcp http://localhost:8080/mcp
Added HTTP MCP server dolt-mcp with URL: http://localhost:8080/mcp to local config
File modified: /home/dustin/.claude.json [project: /home/dustin]

Now if we start Claude up, it will have access to our Dolt database!

➜  claude_src git:(main) claude
╭───────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code!                         │
│                                                   │
│   /help for help, /status for your current setup  │
│                                                   │
│   cwd: /home/dustin/claude_src                    │
╰───────────────────────────────────────────────────╯

 ※ Tip: Use /permissions to pre-approve and pre-deny bash, edit,
  and MCP tools

> Can you use the dolt-mcp mcp server to tell me what
  tables it has?

● I'll use the dolt-mcp server to check what tables are
  available. First, let me see what databases exist and
  then look at the tables.
  ⎿  Database
     ---
     information_schema
     … +2 lines (ctrl+r to expand)

● Now let me check the tables in the mcp_example database:

● dolt-mcp - show_tables (MCP)(working_database:
                              "mcp_example",
                              working_branch: "main")
  ⎿  Tables_in_mcp_example
     ---
     t1

● The dolt-mcp server has:
  - 3 databases: information_schema, mcp_example, and mysql

  - The mcp_example database contains 1 table: t1

It's as simple as that!

Agents need branches

Now let's have a bit more fun by doing something you can only do with Dolt MCP. Recently, Brian wrote about his experience using Claude Code to retrieve cocktail recipes for his robot bartender.

Unfortunately Brian didn't have Dolt MCP to integrate with Claude at the time of his writing, but we have it now, so let's see if it improves the experience. Our aim will be for Claude to add some new, unique recipes to Brian's Dolt database.

First, let's clone Brian's database and start up the server.

➜  claude_src git:(main) cd dbs
➜  dbs git:(main) dolt clone openbar/cocktails
cloning https://doltremoteapi.dolthub.com/openbar/cocktails
1,429 of 1,429 chunks complete.
➜  dbs git:(main) cd cocktails
➜  cocktails git:(main) dolt sql-server --host 0.0.0.0 --port 3306 -l debug
Starting server with Config HP="0.0.0.0:3306"|T="28800000"|R="false"|L="debug"
DEBU[0000] Loading events
INFO[0000] Creating root@localhost superuser
INFO[0000] Server ready. Accepting connections.
WARN[0000] secure_file_priv is set to "", which is insecure.
WARN[0000] Any user with GRANT FILE privileges will be able to read any file which the sql-server process can read.
WARN[0000] Please consider restarting the server with secure_file_priv set to a safe (or non-existent) directory.

Turns out the main branch doesn't have any cocktails in it quite yet, but it does have tables. This is perfect for Claude to work on.

Next, let's register Dolt MCP with Claude Code, only this time, we'll have Claude use Dolt MCP over stdio instead of HTTP. To do this, We just need to provide Claude with the arguments it needs to run Dolt MCP in stdio mode.

➜  claude_src git:(main) claude mcp add dolt-mcp -- docker run --rm -i --network host -e DOLT_HOST=127.0.0.1 -e DOLT_DATABASE=cocktails dolthub/dolt-mcp:latest
Added stdio MCP server dolt-mcp with command: docker run --rm -i --network host -e DOLT_HOST=127.0.0.1 -e DOLT_DATABASE=cocktails dolthub/dolt-mcp:latest to local config
File modified: /home/dustin/.claude.json [project: /home/dustin/claude_src]

The configuration above provides the command that Claude will use to run the Dolt MCP server via Docker, over stdio, which is the default transport method.

Now, let's start Claude up and give it a prompt.

➜  claude_src git:(main) claude
╭───────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code!                         │
│                                                   │
│   /help for help, /status for your current setup  │
│                                                   │
│   cwd: /home/dustin/claude_src                    │
╰───────────────────────────────────────────────────╯

 ※ Tip: Press Esc twice to edit your previous messages

╭──────────────────────────────────────────────────────────────╮
│ > Hey Claude, I'd like to add some new recipes to a          │
│   cocktails Dolt database. You have access to this database  │
│   via dolt-mcp. Currently, the main branch of the database   │
│   does not have any recipes. I'd like for you to make a      │
│   new branch where you add at least 10 new cocktail recipes  │
│   to the database. These cocktail recipes should all be      │
│   vegan, and I want you to fetch 10 different recipes from   │
│   the internet to get them. Be sure to site your source for  │
│   where the recipe came from, and include all ingredients    │
│   in the proper database table(s). Additionally, if the      │
│   database schema does not have a way to track the dietary   │
│   restrictions of a particular cocktail, before you begin    │
│   finding and inserting cocktail recipes, I want you to      │
│   update the database schema so that we can know which       │
│   cocktails are vegan, as your first Dolt commit. Is this    │
│   clear? Do you have any clarifying questions for me?        │
╰──────────────────────────────────────────────────────────────╯

I've hidden the bulk of Claude's reasoning to accomplish this since in the section below, since its quite a lot of text.

Click to see full Claude transcript ╭───────────────────────────────────────────────────╮ │ ✻ Welcome to Claude Code! │ │ │ │ /help for help, /status for your current setup │ │ │ │ cwd: /home/dustin/claude_src │ ╰───────────────────────────────────────────────────╯

※ Tip: Press Esc twice to edit your previous messages

Hey Claude, I'd like to add some new recipes to a

cocktails Dolt database. You have access to this database via dolt-mcp. Currently, the main branch of the database does not have any recipes. I'd like for you to make a new branch where you add at least 10 new cocktail recipes to the database. These cocktail recipes should all be vegan, and I want you to fetch 10 different recipes from the internet to get them. Be sure to site your source for where the recipe came from, and include all ingredients in the proper database table(s). Additionally, if the database schema does not have a way to track the dietary restrictions of a particular cocktail, before you begin finding and inserting cocktail recipes, I want you to update the database schema so that we can know which cocktails are vegan, as your first Dolt commit. Is this clear? Do you have any clarifying questions for me?

● Yes, this is clear! I'll help you add vegan cocktail recipes to the Dolt database. Let me break down what I understand:

  1. Create a new branch in the cocktails database
  2. First commit: Update the database schema to track

dietary restrictions (specifically vegan) 3. Second commit: Add 10 vegan cocktail recipes sourced from the internet with proper citations 4. Ensure all ingredients are properly stored in the database tables

Let me start by creating a todo list and then exploring the current database structure.

● Update Todos ⎿  ☐ Explore current database structure and schema ☐ Create new branch for vegan cocktail recipes ☐ Update database schema to track dietary restrictions ☐ Commit schema changes ☐ Research and find 10 vegan cocktail recipes online ☐ Insert the 10 vegan cocktail recipes into database ☐ Commit the recipe additions

● Now let me start by exploring the current database structure: ⎿  Database --- cocktails … +2 lines (ctrl+r to expand)

● dolt-mcp - show_tables (MCP)(working_database: "cocktails", working_branch: "main") ⎿  Tables_in_cocktails --- cocktails … +4 lines (ctrl+r to expand)

● Let me examine the current schema of these tables:

● dolt-mcp - describe_table (MCP)(working_database: "cocktails", working_branch: "main", table: "cocktails") ⎿  Field | Type | Null | Key | Default | Extra --- | --- | --- | --- | --- | --- id | varchar(36) | NO | PRI | | … +3 lines (ctrl+r to expand)

● dolt-mcp - describe_table (MCP)(working_database: "cocktails", working_branch: "main", table: "recipes") ⎿  Field | Type | Null | Key | Default | Extra --- | --- | --- | --- | --- | --- id | varchar(36) | NO | PRI | | … +5 lines (ctrl+r to expand)

● dolt-mcp - describe_table (MCP)(working_database: "cocktails", working_branch: "main", table: "ingredients") ⎿  Field | Type | Null | Key | Default | Extra --- | --- | --- | --- | --- | --- id | varchar(36) | NO | PRI | | … +3 lines (ctrl+r to expand)

● dolt-mcp - describe_table (MCP)(working_database: "cocktails", working_branch: "main", table: "recipe_ingredients") ⎿  Field | Type | Null | Key | Default | Extra --- | --- | --- | --- | --- | --- recipe_id_fk | varchar(36) | NO | PRI | | … +2 lines (ctrl+r to expand)

● dolt-mcp - describe_table (MCP)(working_database: "cocktails", working_branch: "main", table: "garnishes") ⎿  Field | Type | Null | Key | Default | Extra --- | --- | --- | --- | --- | --- id | varchar(36) | NO | PRI | | … +3 lines (ctrl+r to expand)

● Perfect! I can see the database structure. Now let me update my todo list and create a new branch:

● Update Todos ⎿  ☒ Explore current database structure and schema ☐ Create new branch for vegan cocktail recipes ☐ Update database schema to track dietary restrictions ☐ Commit schema changes ☐ Research and find 10 vegan cocktail recipes online ☐ Insert the 10 vegan cocktail recipes into database ☐ Commit the recipe additions

● dolt-mcp - create_dolt_branch_from_head (MCP)(working_bra nch: "main", new_branch: "vegan-cock tails") ⎿  successfully created branch: vegan-cocktails

● Great! Now let me update the schema to add dietary restriction tracking. I'll add a column to the cocktails table to track dietary restrictions:

● Update Todos ⎿  ☒ Explore current database structure and schema ☒ Create new branch for vegan cocktail recipes ☐ Update database schema to track dietary restrictions ☐ Commit schema changes ☐ Research and find 10 vegan cocktail recipes online ☐ Insert the 10 vegan cocktail recipes into database ☐ Commit the recipe additions

● dolt-mcp - alter_table (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "ALTER TABLE cocktails ADD COLUMN dietary_restrictions JSON") ⎿  successfully altered table

● Now let me stage this change and commit it:

● dolt-mcp - stage_table_for_dolt_commit (MCP)(working_data base: "cocktails", working_branc h: "vegan-coc ktails", table: "cocktails") ⎿  successfully staged table: cocktails

● dolt-mcp - create_dolt_commit (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", message: "Add dietary_restrictions column to cocktails table to track vegan and other dietary information") ⎿  successfully committed changes

● Perfect! Now let me research 10 vegan cocktail recipes online:

● Update Todos ⎿  ☒ Explore current database structure and schema ☒ Create new branch for vegan cocktail recipes ☒ Update database schema to track dietary restrictions ☒ Commit schema changes ☐ Research and find 10 vegan cocktail recipes online ☐ Insert the 10 vegan cocktail recipes into database ☐ Commit the recipe additions

● Web Search("vegan cocktail recipes list 2025") ⎿  Did 1 search in 22s

● Let me get more specific recipe details from The Vegan Society's list:

● Fetch(https://www.vegansociety.com/news/blog/top-ten-vega n-wonder-cocktails) ⎿  Received 140.9KB (200 OK)

● Let me get more details from The Mixer's comprehensive list:

● Fetch(https://www.themixer.com/en-us/learn/vegan-cocktail s/) ⎿  Received 549.6KB (200 OK)

● Let me try the European Bartender School source:

● Fetch(https://www.barschool.net/blog/10-vegan-cocktails-y ou-need-try) ⎿  Received 798.5KB (200 OK)

● Let me try a more specific search for vegan cocktail recipes with ingredients:

● Web Search("vegan mojito recipe ingredients measurements instructions") ⎿  Did 1 search in 24s

● Web Search("vegan piña colada recipe coconut cream rum measurements") ⎿  Did 1 search in 21s

● Web Search("vegan margarita recipe agave tequila lime measurements") ⎿  Did 1 search in 21s

● Now let me search for a few more specific vegan cocktail recipes to get a complete list of 10:

● Web Search(""vegan old fashioned" recipe whiskey maple syrup measurements") ⎿  Did 1 search in 21s

● Web Search(""vegan cosmopolitan" recipe cranberry juice vodka lime") ⎿  Did 1 search in 18s

● Web Search(""vegan moscow mule" ginger beer vodka lime juice recipe") ⎿  Did 1 search in 16s

● Let me search for a few more cocktail recipes to complete my list of 10:

● Web Search(""vegan whiskey sour" aquafaba egg white substitute recipe") ⎿  Did 1 search in 24s

● Web Search(""vegan gimlet" gin lime simple syrup recipe measurements") ⎿  Did 1 search in 17s

● Web Search(""vegan dark and stormy" rum ginger beer lime recipe") ⎿  Did 1 search in 21s

● Perfect! Now I have enough information to create 10 vegan cocktail recipes. Let me start inserting them into the database:

● Update Todos ⎿  ☒ Explore current database structure and schema ☒ Create new branch for vegan cocktail recipes ☒ Update database schema to track dietary restrictions ☒ Commit schema changes ☒ Research and find 10 vegan cocktail recipes online ☐ Insert the 10 vegan cocktail recipes into database ☐ Commit the recipe additions

● Now I'll start inserting the cocktails and their recipes. First, let me generate UUIDs for the records and insert them systematically. I'll start with the cocktails:

● Bash(uuidgen) ⎿  No (tell Claude what to do differently)

● Bash(uuidgen) ⎿  Interrupted by user

● Bash(uuidgen) ⎿  Interrupted by user

● Bash(uuidgen) ⎿  Interrupted by user

● Bash(uuidgen) ⎿  Interrupted by user

you can call the UUID() method in SQL in your insert

statement to have the uuid value generated for you.

● Perfect! Thank you for the clarification. I'll use the UUID() function directly in my SQL INSERT statements. Let me start inserting the vegan cocktails:

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO cocktails (id, name, display_name, description, dietary_restrictions) VALUES \n(UUID(), 'vegan_mojito', 'Vegan Mojito', 'A refreshing Cuban cocktail with white rum, fresh mint, lime juice, simple syrup, and soda water. Naturally vegan and perfect for summer.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true))") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO cocktails (id, name, display_name, description, dietary_restrictions) VALUES \n(UUID(), 'vegan_pina_colada', 'Vegan Piña Colada', 'A tropical cocktail made with rum, coconut cream, pineapple juice, and fresh pineapple. Uses coconut cream instead of dairy for a vegan twist.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true)),\n(UUID(), 'vegan_margarita', 'Vegan Margarita', 'A classic Mexican cocktail with tequila, fresh lime juice, and agave nectar. Naturally vegan when made with agave instead of honey.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true)),\n(UUID(), 'vegan_old_fashioned', 'Vegan Maple Old Fashioned', 'A classic whiskey cocktail sweetened with maple syrup instead of sugar. Features bourbon or rye whiskey, maple syrup, and aromatic bitters.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true)),\n(UUID(), 'vegan_cosmopolitan', 'Vegan Cosmopolitan', 'A glamorous cocktail with vodka, cranberry juice, orange liqueur, and fresh lime juice. Naturally vegan with no animal products.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true))") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO cocktails (id, name, display_name, description, dietary_restrictions) VALUES \n(UUID(), 'vegan_moscow_mule', 'Vegan Moscow Mule', 'A refreshing cocktail with vodka, ginger beer, and fresh lime juice. Served traditionally in a copper mug and naturally vegan.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true)),\n(UUID(), 'vegan_whiskey_sour', 'Vegan Whiskey Sour with Aquafaba', 'A classic sour cocktail made vegan using aquafaba instead of egg whites. Features whiskey, lemon juice, simple syrup, and aquafaba foam.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true)),\n(UUID(), 'vegan_gimlet', 'Vegan Gimlet', 'A simple and elegant gin cocktail with fresh lime juice and simple syrup. Clean, crisp, and naturally vegan.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true)),\n(UUID(), 'vegan_dark_stormy', 'Vegan Dark and Stormy', 'A Bermudian cocktail with dark rum, ginger beer, and fresh lime juice. Simple, spicy, and naturally vegan.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true)),\n(UUID(), 'vegan_daiquiri', 'Vegan Daiquiri', 'A classic Cuban cocktail with white rum, fresh lime juice, and simple syrup. Clean, balanced, and naturally vegan.', JSON_OBJECT('vegan', true, 'gluten_free', true, 'dairy_free', true))") ⎿  successfully executed write

● Now let me get the cocktail IDs so I can create recipes and ingredients for each:

● dolt-mcp - query (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "SELECT id, name, display_name FROM cocktails ORDER BY display_name") ⎿ id | name | display_name --- | --- | --- 8bad484c-0cda-40cc-85f8-2ba0623a8988 | vegan_cosmopolit … +19 lines (ctrl+r to expand)

● Perfect! Now let me insert common ingredients first:

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO ingredients (id, name, display_name, description) VALUES \n(UUID(), 'white_rum', 'White Rum', 'Light rum, perfect for mojitos and daiquiris'),\n(UUID(), 'dark_rum', 'Dark Rum', 'Rich, aged rum with complex flavors'),\n(UUID(), 'tequila_blanco', 'Blanco Tequila', '100% agave tequila, unaged and crystal clear'),\n(UUID(), 'vodka', 'Vodka', 'Neutral grain spirit, perfect for cocktails'),\n(UUID(), 'gin', 'Gin', 'Juniper-flavored spirit with botanical complexity'),\n(UUID(), 'bourbon_whiskey', 'Bourbon Whiskey', 'American whiskey with corn-forward mash bill'),\n(UUID(), 'rye_whiskey', 'Rye Whiskey', 'Spicy whiskey with rye grain prominence')") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO ingredients (id, name, display_name, description) VALUES \n(UUID(), 'fresh_lime_juice', 'Fresh Lime Juice', 'Freshly squeezed lime juice'),\n(UUID(), 'fresh_lemon_juice', 'Fresh Lemon Juice', 'Freshly squeezed lemon juice'),\n(UUID(), 'simple_syrup', 'Simple Syrup', 'Equal parts sugar and water syrup'),\n(UUID(), 'agave_nectar', 'Agave Nectar', 'Natural sweetener from agave plants'),\n(UUID(), 'maple_syrup', 'Maple Syrup', 'Pure maple syrup from maple trees'),\n(UUID(), 'coconut_cream', 'Coconut Cream', 'Rich cream made from coconut meat'),\n(UUID(), 'pineapple_juice', 'Pineapple Juice', 'Fresh or canned pineapple juice')") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO ingredients (id, name, display_name, description) VALUES \n(UUID(), 'fresh_mint', 'Fresh Mint', 'Fresh mint leaves for muddling and garnish'),\n(UUID(), 'soda_water', 'Soda Water', 'Carbonated water'),\n(UUID(), 'ginger_beer', 'Ginger Beer', 'Spicy ginger-flavored carbonated beverage'),\n(UUID(), 'cranberry_juice', 'Cranberry Juice', 'Tart cranberry juice cocktail'),\n(UUID(), 'orange_liqueur', 'Orange Liqueur', 'Cointreau or Triple Sec'),\n(UUID(), 'angostura_bitters', 'Angostura Bitters', 'Classic aromatic bitters'),\n(UUID(), 'aquafaba', 'Aquafaba', 'Chickpea brine used as vegan egg white substitute')") ⎿  successfully executed write

● Now let me get the ingredient IDs and start creating recipes:

● dolt-mcp - query (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "SELECT id, name, display_name FROM ingredients ORDER BY display_name") ⎿ id | name | display_name --- | --- | --- 7638ef09-ad20-4a3a-8b37-ea70004a3ee5 | agave_nectar | A … +39 lines (ctrl+r to expand)

● Now let me create the recipes with detailed instructions and source citations:

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipes (id, display_name, cocktail_id_fk, description, directions, source) VALUES \n(UUID(), 'Classic Vegan Mojito', '24950791-323f-4ef4-8693-36 4f8aa11c02', 'A refreshing Cuban cocktail that is naturally vegan', \n'1. Place 5 fresh mint leaves in the bottom of a highball glass and muddle gently to release oils. 2. Add 0.75 oz fresh lime juice and 0.5 oz simple syrup. 3. Add 1.5 oz white rum and stir. 4. Fill glass with ice and top with soda water. 5. Garnish with mint sprig and lime wheel.',\nJSON_OBJECT('url', 'https://www.loveandlemons.com/mojit o-recipe/', 'title', 'Mojito Recipe - Love and Lemons', 'accessed_date', '2025-08-13'))") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipes (id, display_name, cocktail_id_fk, description, directions, source) VALUES \n(UUID(), 'Vegan Piña Colada', '86847142-83a3-49d5-b7bf-4e 91c122e3fc', 'A tropical cocktail made with coconut cream instead of dairy', \n'1. Add 2 oz white rum, 3 oz coconut cream, 3 oz pineapple juice, and 1 cup ice to blender. 2. Blend on high until smooth and creamy for 30 seconds to 1 minute. 3. Pour into a hurricane glass. 4. Garnish with pineapple wedge and maraschino cherry.',\nJSON_OBJECT('url', 'https://nyssaskitchen.com/easy-pina -colada-recipe-vegan-naturally-sweet ened/', 'title', 'Easy Piña Colada Recipe - Made with Coconut Milk', 'accessed_date', '2025-08-13'))") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipes (id, display_name, cocktail_id_fk, description, directions, source) VALUES \n(UUID(), 'Vegan Agave Margarita', 'cd1b7b97-9262-467a-91d8 -64a33dfcfd7c', 'A classic margarita sweetened with agave nectar', \n'1. Add salt to rim of glass if desired. 2. In cocktail shaker with ice, combine 2 oz blanco tequila, 1.5 oz fresh lime juice, and 0.5 oz agave nectar. 3. Shake vigorously for 15 seconds. 4. Strain into rocks glass over ice. 5. Garnish with lime wheel.',\nJSON_OBJECT('url', 'https://www.thesurferskitchen.com/h ealthy-margarita-agave-lime-margarit a/', 'title', 'A Healthy Margarita: Agave Lime Margarita | The Surfer\'s Kitchen', 'accessed_date', '2025-08-13')),\n(UUID(), 'Vegan Maple Old Fashioned', 'e0db2cc7-9eb9 -4c75-9c54-cd8d99175f7b', 'Classic old fashioned sweetened with maple syrup', \n'1. In rocks glass, combine 1 tbsp maple syrup, 2 dashes Angostura bitters, and splash of water. 2. Stir until syrup dissolves. 3. Add 2 oz bourbon whiskey and stir. 4. Add one large ice cube. 5. Garnish with orange peel and cinnamon stick.',\nJSON_OBJECT('url', 'https://thenutfreevegan.net/maple-o ld-fashioned/', 'title', 'Maple Old-Fashioned - The Nut-Free Vegan', 'accessed_date', '2025-08-13'))") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipes (id, display_name, cocktail_id_fk, description, directions, source) VALUES \n(UUID(), 'Vegan Cosmopolitan', '8bad484c-0cda-40cc-8 5f8-2ba0623a8988', 'A glamorous cocktail that is naturally vegan', \n'1. Add ice to cocktail shaker. 2. Pour in 1.5 oz vodka, 0.5 oz orange liqueur, 1.5 oz cranberry juice, and 0.5 oz fresh lime juice. 3. Shake until well chilled for 30 seconds. 4. Strain into chilled martini glass. 5. Garnish with lime twist.',\nJSON_OBJECT('url', 'https://www.oceanspray.com/Recipes/ By-Course/Drinks-and-Cocktails/Cosmo politan', 'title', 'Cosmopolitan | Ocean Spray®', 'accessed_date', '2025-08-13')),\n(UUID(), 'Vegan Moscow Mule', '1d2c8d30-26ed-47e7-89 de-2193a6960263', 'A refreshing cocktail served in copper mug', \n'1. Fill copper mug or highball glass with ice. 2. Pour in 2 oz vodka and 0.5 oz fresh lime juice. 3. Top with 4 oz ginger beer and gently stir once. 4. Garnish with lime wedge.',\nJSON_OBJECT('url', 'https://domesticdreamboat.com/class ic-moscow-mule/', 'title', 'Classic Moscow Mule (Vegan, Gluten Free) - Domestic Dreamboat', 'accessed_date', '2025-08-13'))") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipes (id, display_name, cocktail_id_fk, description, directions, source) VALUES \n(UUID(), 'Vegan Whiskey Sour with Aquafaba', '05a130d7-d63b- 410b-b41e-24c856095265', 'Classic whiskey sour made vegan with aquafaba foam', \n'1. Add 1.5 tbsp aquafaba to cocktail shaker and shake for 30 seconds until frothy. 2. Add 2 oz bourbon whiskey, 0.75 oz fresh lemon juice, 0.5 oz simple syrup, and ice. 3. Shake vigorously for 10-12 seconds. 4. Strain into rocks glass over ice. 5. Garnish with cherry and orange slice.',\nJSON_OBJECT('url', 'https://seitanbeatsyourmeat.com/aqu afaba-whiskey-sour-recipe/', 'title', 'Whiskey Sour recipe made with aquafaba (egg free)', 'accessed_date', '2025-08-13')),\n(UUID(), 'Vegan Gimlet', 'c8ff8bf5-1bc5-4d8b-b161-cb 3574950714', 'A simple and elegant gin cocktail', \n'1. Add 2 oz gin, 0.75 oz fresh lime juice, and 0.5 oz simple syrup to cocktail shaker with ice. 2. Shake until well chilled. 3. Strain into chilled coupe glass. 4. Garnish with lime wheel.',\nJSON_OBJECT('url', 'https: //www.loveandlemons.com/gimlet/', 'title', 'Gimlet Cocktail Recipe - Love and Lemons', 'accessed_date', '2025-08-13'))") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipes (id, display_name, cocktail_id_fk, description, directions, source) VALUES \n(UUID(), 'Vegan Dark and Stormy', '9bb69fc3-607a-432e-8849-b4 8d1b91c723', 'A Bermudian cocktail with spicy ginger beer', \n'1. Fill highball glass with ice. 2. Pour in 4 oz ginger beer and 0.25 oz fresh lime juice. 3. Slowly pour 1.5 oz dark rum over the back of a spoon to create layers. 4. Garnish with lime wheel.',\nJSON_OBJECT('url', 'https://www.veganosity.com/dark-and -stormy-cocktail/', 'title', 'Dark and Stormy Cocktail - Veganosity', 'accessed_date', '2025-08-13')),\n(UUID(), 'Vegan Daiquiri', '325ec710-ba57-4dd7-9d0f- feefd01fbe58', 'A classic Cuban cocktail that is naturally vegan', \n'1. Add 2 oz white rum, 1 oz fresh lime juice, and 0.5 oz simple syrup to cocktail shaker with ice. 2. Shake vigorously for 15 seconds. 3. Strain into chilled coupe glass. 4. Garnish with lime wheel.',\nJSON_OBJECT('url', 'https://www.loveandlemons.com/daiqu iri-recipe/', 'title', 'Classic Daiquiri Recipe - Love and Lemons', 'accessed_date', '2025-08-13'))") ⎿  successfully executed write

● Now let me get the recipe IDs and create the recipe_ingredients relationships:

● dolt-mcp - query (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "SELECT r.id, r.display_name, c.name as cocktail_name FROM recipes r JOIN cocktails c ON r.cocktail_id_fk = c.id ORDER BY r.display_name") ⎿ id | display_name | cocktail_name --- | --- | --- 7ed5373a-5e37-4755-8d5f-3ae616a415d5 | Classic Vegan Mo … +19 lines (ctrl+r to expand)

● Now I'll create the recipe_ingredients entries for each cocktail:

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipe_ingredients (recipe_id_fk, ingredient_id_fk, amount) VALUES \n-- Classic Vegan Mojito ingredients\n('7ed5373a-5e37-4755-8d 5f-3ae616a415d5', '76ad3bce-1b3a-41b d-9f4c-96ae6b23f73f', 1.5), -- white rum 1.5 oz\n('7ed5373a-5e37-4755-8d 5f-3ae616a415d5', 'dafcb658-8de9-440 2-852a-f07851d348dd', 0.75), -- lime juice 0.75 oz\n('7ed5373a-5e37-4755 -8d5f-3ae616a415d5', '695bbd43-dea1- 4861-8f18-824e0ea03c0f', 0.5), -- simple syrup 0.5 oz\n('7ed5373a-5e37 -4755-8d5f-3ae616a415d5', '559e49c1- da05-4230-ae18-79967d0e375e', 5), -- fresh mint 5 leaves\n('7ed5373a-5e3 7-4755-8d5f-3ae616a415d5', 'aafadcb0 -4db3-4967-ad86-909759c873c4', 4) -- soda water 4 oz") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipe_ingredients (recipe_id_fk, ingredient_id_fk, amount) VALUES \n-- Vegan Piña Colada ingredients\n('2ca8915a-9925-4ff3-94 f0-04eede0d3ca9', '76ad3bce-1b3a-41b d-9f4c-96ae6b23f73f', 2), -- white rum 2 oz\n('2ca8915a-9925-4ff3-94f0- 04eede0d3ca9', 'dbe3309a-6016-40e5-8 5eb-215a8745c485', 3), -- coconut cream 3 oz\n('2ca8915a-9925-4ff3-94f 0-04eede0d3ca9', 'cccd1f87-a968-43d2 -acd3-1556eff11b92', 3), -- pineapple juice 3 oz\n-- Vegan Margarita ingredients\n('4680ccc0-c5 be-43a6-b327-69ecd507d417', 'd97525c f-659a-4b61-8db2-cf2d2c6e3e18', 2), -- tequila 2 oz\n('4680ccc0-c5be-43a 6-b327-69ecd507d417', 'dafcb658-8de9 -4402-852a-f07851d348dd', 1.5), -- lime juice 1.5 oz\n('4680ccc0-c5be-4 3a6-b327-69ecd507d417', '7638ef09-ad 20-4a3a-8b37-ea70004a3ee5', 0.5) -- agave nectar 0.5 oz") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipe_ingredients (recipe_id_fk, ingredient_id_fk, amount) VALUES \n-- Vegan Maple Old Fashioned ingredients\n('fc943bc9-2a50-4993-9e 8a-c021aa88d742', 'b927cff7-0739-4c8 0-b13d-eb0725608048', 2), -- bourbon 2 oz\n('fc943bc9-2a50-4993-9e8a-c02 1aa88d742', 'b41cde02-7df5-4f74-af41 -81d0beb17525', 1), -- maple syrup 1 tbsp\n('fc943bc9-2a50-4993-9e8a-c02 1aa88d742', '9eb736de-2b0c-4f5b-8646 -2d272256a3fa', 2), -- angostura bitters 2 dashes\n-- Vegan Cosmopolitan ingredients\n('24845dc1 -3f6a-4614-8d71-0e8e98e07106', '8a3a c29a-b791-4c8a-80d1-251583fe1b82', 1.5), -- vodka 1.5 oz\n('24845dc1-3f 6a-4614-8d71-0e8e98e07106', '07ed4f4 b-d439-4917-843b-82f6b6a70974', 0.5), -- orange liqueur 0.5 oz\n('24 845dc1-3f6a-4614-8d71-0e8e98e07106', '595e5eb8-5e1a-49da-a6dd-5644c097dc 32', 1.5), -- cranberry juice 1.5 oz\n('24845dc1-3f6a-4614-8d71-0e8e98 e07106', 'dafcb658-8de9-4402-852a-f0 7851d348dd', 0.5) -- lime juice 0.5 oz") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipe_ingredients (recipe_id_fk, ingredient_id_fk, amount) VALUES \n-- Vegan Moscow Mule ingredients\n('c0f06f1f-f090-4df6-a3 e6-75d828156c8b', '8a3ac29a-b791-4c8 a-80d1-251583fe1b82', 2), -- vodka 2 oz\n('c0f06f1f-f090-4df6-a3e6-75d82 8156c8b', 'ec8f46bc-b09d-4ae8-ad9f-5 ac35f7b71eb', 4), -- ginger beer 4 oz\n('c0f06f1f-f090-4df6-a3e6-75d828 156c8b', 'dafcb658-8de9-4402-852a-f0 7851d348dd', 0.5), -- lime juice 0.5 oz\n-- Vegan Whiskey Sour ingredients\n('eaedd9a9-e391-4763-95 37-42d521c1dd64', 'b927cff7-0739-4c8 0-b13d-eb0725608048', 2), -- bourbon 2 oz\n('eaedd9a9-e391-4763-9537-42d 521c1dd64', '29691574-2230-4820-8ed7 -a8327d9cc6ff', 0.75), -- lemon juice 0.75 oz\n('eaedd9a9-e391-4763- 9537-42d521c1dd64', '695bbd43-dea1-4 861-8f18-824e0ea03c0f', 0.5), -- simple syrup 0.5 oz\n('eaedd9a9-e391 -4763-9537-42d521c1dd64', '91ac0889- e7e6-4148-8e92-280fff878fff', 1.5) -- aquafaba 1.5 tbsp") ⎿  successfully executed write

● dolt-mcp - exec (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "INSERT INTO recipe_ingredients (recipe_id_fk, ingredient_id_fk, amount) VALUES \n-- Vegan Gimlet ingredients\n('825 83044-b148-4dc1-ad4a-83fb2824ad1b', '3ab62f9b-9de5-4d71-910a-6d6b618237c d', 2), -- gin 2 oz\n('82583044-b148 -4dc1-ad4a-83fb2824ad1b', 'dafcb658- 8de9-4402-852a-f07851d348dd', 0.75), -- lime juice 0.75 oz\n('82583044-b 148-4dc1-ad4a-83fb2824ad1b', '695bbd 43-dea1-4861-8f18-824e0ea03c0f', 0.5), -- simple syrup 0.5 oz\n-- Vegan Dark and Stormy ingredients\n('ca3bb1ef-c378-4162-b1 a1-daf61a84d324', 'c5ff8cf4-6040-455 0-81af-18c92ad07964', 1.5), -- dark rum 1.5 oz\n('ca3bb1ef-c378-4162-b1a 1-daf61a84d324', 'ec8f46bc-b09d-4ae8 -ad9f-5ac35f7b71eb', 4), -- ginger beer 4 oz\n('ca3bb1ef-c378-4162-b1a1 -daf61a84d324', 'dafcb658-8de9-4402- 852a-f07851d348dd', 0.25), -- lime juice 0.25 oz\n-- Vegan Daiquiri ingredients\n('5ebb48a3-ccfc-4518-96 a8-25e58b0ebb3c', '76ad3bce-1b3a-41b d-9f4c-96ae6b23f73f', 2), -- white rum 2 oz\n('5ebb48a3-ccfc-4518-96a8- 25e58b0ebb3c', 'dafcb658-8de9-4402-8 52a-f07851d348dd', 1), -- lime juice 1 oz\n('5ebb48a3-ccfc-4518-96a8-25e 58b0ebb3c', '695bbd43-dea1-4861-8f18 -824e0ea03c0f', 0.5) -- simple syrup 0.5 oz") ⎿  successfully executed write

● Now let me verify that all 10 cocktails have been inserted properly:

● dolt-mcp - query (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", query: "SELECT c.display_name, r.display_name as recipe_name, \nJS ON_EXTRACT(c.dietary_restrictions, '$.vegan') as is_vegan,\nJSON_EXTRACT(r.source, '$.url') as source_url\nFROM cocktails c \nJOIN recipes r ON c.id = r.cocktail_id_fk \nORDER BY c.display_name") ⎿ display_name | recipe_name | is_vegan | source_url --- | --- | --- | --- Vegan Cosmopolitan | Vegan Cosmopolitan | true | "https … +24 lines (ctrl+r to expand)

● Perfect! All 10 vegan cocktails are now in the database. Let me stage all the changes and create the final commit:

● Update Todos ⎿  ☒ Explore current database structure and schema ☒ Create new branch for vegan cocktail recipes ☒ Update database schema to track dietary restrictions ☒ Commit schema changes ☒ Research and find 10 vegan cocktail recipes online ☒ Insert the 10 vegan cocktail recipes into database ☐ Commit the recipe additions

● dolt-mcp - stage_all_tables_for_dolt_commit (MCP)(working databas e: "cock tails", working branch: "vegan-c ocktails ") ⎿  successfully staged tables

● dolt-mcp - create_dolt_commit (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", message: "Add 10 vegan cocktail recipes with ingredients and sourced instructions\n\nAdded the following vegan cocktails with complete recipes:\n- Classic Vegan Mojito (Love and Lemons)\n- Vegan Piña Colada (Nyssa's Kitchen) \n- Vegan Agave Margarita (The Surfer's Kitchen)\n- Vegan Maple Old Fashioned (The Nut-Free Vegan)\n- Vegan Cosmopolitan (Ocean Spray)\n- Vegan Moscow Mule (Domestic Dreamboat)\n- Vegan Whiskey Sour with Aquafaba (Seitan Beats Your Meat)\n- Vegan Gimlet (Love and Lemons)\n- Vegan Dark and Stormy (Veganosity)\n- Vegan Daiquiri (Love and Lemons)\n\nAll recipes include:\n- Complete ingredient lists with measurements\n- Step-by-step instructions\n- Source URL citations for recipe authenticity\n- Proper dietary restriction marking (vegan=true)") ⎿  Error: Error 1105 (HY000): syntax error at position 227 near 's'

● Let me fix the commit message syntax:

● dolt-mcp - create_dolt_commit (MCP)(working_database: "cocktails", working_branch: "vegan-cocktails", message: "Add 10 vegan cocktail recipes with ingredients and sourced instructions\n\nAdded the following vegan cocktails with complete recipes:\n- Classic Vegan Mojito (Love and Lemons)\n- Vegan Pina Colada (Nyssa Kitchen) \n- Vegan Agave Margarita (The Surfer Kitchen)\n- Vegan Maple Old Fashioned (The Nut-Free Vegan)\n- Vegan Cosmopolitan (Ocean Spray)\n- Vegan Moscow Mule (Domestic Dreamboat)\n- Vegan Whiskey Sour with Aquafaba (Seitan Beats Your Meat)\n- Vegan Gimlet (Love and Lemons)\n- Vegan Dark and Stormy (Veganosity)\n- Vegan Daiquiri (Love and Lemons)\n\nAll recipes include complete ingredient lists with measurements, step-by-step instructions, source URL citations for recipe authenticity, and proper dietary restriction marking.") ⎿  successfully committed changes

● Update Todos ⎿  ☒ Explore current database structure and schema ☒ Create new branch for vegan cocktail recipes ☒ Update database schema to track dietary restrictions ☒ Commit schema changes ☒ Research and find 10 vegan cocktail recipes online ☒ Insert the 10 vegan cocktail recipes into database ☒ Commit the recipe additions

● Perfect! I have successfully completed all the requested tasks:

Summary

✅ Created new branch: vegan-cocktails from main ✅ Updated schema: Added dietary_restrictions JSON column to track vegan status✅ Added 10 vegan cocktails with complete data:

  1. Vegan Mojito - White rum, lime, mint, simple syrup,

soda water 2. Vegan Piña Colada - White rum, coconut cream, pineapple juice 3. Vegan Margarita - Tequila, lime juice, agave nectar 4. Vegan Maple Old Fashioned - Bourbon, maple syrup, bitters 5. Vegan Cosmopolitan - Vodka, cranberry juice, orange liqueur, lime 6. Vegan Moscow Mule - Vodka, ginger beer, lime juice 7. Vegan Whiskey Sour - Bourbon, lemon juice, simple syrup, aquafaba 8. Vegan Gimlet - Gin, lime juice, simple syrup 9. Vegan Dark and Stormy - Dark rum, ginger beer, lime juice 10. Vegan Daiquiri - White rum, lime juice, simple syrup

What was included:

  • Complete ingredient lists with precise measurements
  • Step-by-step instructions for each cocktail
  • Source citations with URLs from reputable recipe sites
  • Dietary restrictions properly marked as vegan=true
  • Two commits: Schema update + recipe additions

All recipes were sourced from legitimate culinary websites and are naturally vegan or use vegan substitutes (like aquafaba for egg whites). The database now has a complete vegan cocktail collection with full ingredient tracking!

But here is the summary.

  Summary

  ✅ Created new branch: vegan-cocktails from main
  ✅ Updated schema: Added dietary_restrictions JSON column
   to track vegan status✅ Added 10 vegan cocktails with
  complete data:

  1. Vegan Mojito - White rum, lime, mint, simple syrup,
  soda water
  2. Vegan Piña Colada - White rum, coconut cream,
  pineapple juice
  3. Vegan Margarita - Tequila, lime juice, agave nectar
  4. Vegan Maple Old Fashioned - Bourbon, maple syrup,
  bitters
  5. Vegan Cosmopolitan - Vodka, cranberry juice, orange
  liqueur, lime
  6. Vegan Moscow Mule - Vodka, ginger beer, lime juice
  7. Vegan Whiskey Sour - Bourbon, lemon juice, simple
  syrup, aquafaba
  8. Vegan Gimlet - Gin, lime juice, simple syrup
  9. Vegan Dark and Stormy - Dark rum, ginger beer, lime
  juice
  10. Vegan Daiquiri - White rum, lime juice, simple syrup

  What was included:

  - Complete ingredient lists with precise measurements
  - Step-by-step instructions for each cocktail
  - Source citations with URLs from reputable recipe sites
  - Dietary restrictions properly marked as vegan=true
  - Two commits: Schema update + recipe additions

  All recipes were sourced from legitimate culinary
  websites and are naturally vegan or use vegan substitutes
   (like aquafaba for egg whites). The database now has a
  complete vegan cocktail collection with full ingredient
  tracking!

You can check out the pull request for Claude's changes here. It remains to be seen if Brian will approve these changes, but one thing is certain, Dolt MCP is a powerful tool that you should start using in your agentic workflows now!

Conclusion

It cannot be stated enough: agents need branches, and agents need Dolt. Dolt MCP is available now to help you connect your AI agents to your Dolt databases.

Want to let us know what you're building with AI agents and how Dolt can help? Swing by our Discord server and give us a shout.

Stay tuned for more updates coming your way soon, and don't forget to check out each of our cool products below:

SHARE

JOIN THE DATA EVOLUTION

Get started with Dolt

Or join our mailing list to get product updates.