Skip to content
Conduit

mcp server

salt.md

The open-source workspace for people and AI agents. Docs, databases and realtime collaboration with an MCP server in the same binary, so agents work in the same workspace on the same permissions. One

saltmd/salt.mdcommunitylistedunreviewednot running here yet

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 14, 2026

Quickstart

curl -fsSL https://raw.githubusercontent.com/saltmd/salt.md/main/install.sh | sh

One command downloads the binary for your platform, installs it, starts it and prints the address to open. On a Linux server it sets itself up as a systemd service, and running it again upgrades it. No curl on the machine? wget -qO- … | sh does the same.

Or with Docker:

docker run -d -p 8420:8420 -v salt-data:/data ghcr.io/saltmd/salt.md:latest

There is nothing else to install: no database server, no cache, no object store. Reverse proxies, TLS and backups are in the self-hosting guide.

People and agents in the same place

An agent is asked to organise the launch notes. A page appears, a database is created, the rows fill in. A person opens the same board a second later and carries on. Same pages, same permissions, same history.

Connect Claude, ChatGPT, Codex, Cursor, Gemini CLI or any other MCP client to /mcp and it works on the workspace you use:

  • Pages: create, edit, move, duplicate, trash and restore
  • Databases: create them, change the schema, add and query rows, set up views
  • Search with the same permission checks a person gets
  • Bulk imports from any JSON source, without the content passing through the agent
  • Comments, and an append-only note trail on every page
  • Presence: the page shows which agent is working on it, before you start typing

And a list it cannot touch. No agent can create or delete accounts, issue tokens, take or restore a backup, change instance settings or decide who is in a workspace, and the server tells every agent that connects. A credential carries its person's access and never more, every workspace decides what agents may do there, and the activity log keeps their changes apart from yours.

MCP tools · Agent access · Permissions

A whole workspace

Moving in? Markdown files, CSVs and a Notion export import from the same menu.

Under the hood

flowchart LR
    people(["People<br>browser · desktop · phone"]) --> salt
    agents(["Agents<br>Claude · ChatGPT · Cursor"]) -- MCP --> salt
    tools(["Your tools"]) -- "REST · webhooks · iCal" --> salt
    salt["salt.md<br>one Go binary"] --> data[("SQLite file<br>+ uploads")]

One Go process, built with CGO_ENABLED=0: a static binary with a pure-Go SQLite driver and the frontend embedded. No PostgreSQL, no Redis, no object store, no separate collaboration server.

  • Install: one binary, install.sh, or the Docker image
  • Data: one SQLite file plus an uploads directory
  • Update: swap the binary or pull the image, restart
  • Backup: stop, copy two paths, start
  • Platforms: Linux and macOS on amd64 and arm64, Windows on amd64

The desktop app for macOS and Linux is a window onto a server you run, not a second copy of the product.

Documentation

salt.md/wiki covers every screen, every property type, every tool an agent can call and every setting on the server. It is written next to this code and checked against it on every build: a tool name that no longer exists, an API path that is not a route or a screenshot whose screen has changed fails the build. Every page is also plain Markdown at the same address with .md on the end, indexed for agents at /wiki/llms.txt.

Contributing

Issues and pull requests are welcome. Pull requests need a signed CLA; CONTRIBUTING.md says what that means and why it exists. Security reports go to dev@salt.md, not to a public issue: see SECURITY.md.

License

AGPL-3.0. Use it, run it at work, change it. If you offer it to others over a network, publish your changes.

The components salt.md is built on, with their licences in full, are in THIRD-PARTY-NOTICES.md. A running instance serves the same list at /licenses.

↑↓ navigate openesc close