Synalinks Memory is the knowledge and context layer for AI agents. It lets your agents always have the right context at the right time. Unlike retrieval systems that compound LLM errors at every step, Synalinks uses logical rules to derive knowledge from your raw data. Every claim can be traced back to evidence, from raw data to insight, no more lies or hallucinations.
This CLI lets you interact with your Synalinks Memory directly from the terminal — add data, ask questions, and query your knowledge base. It also ships with a built-in MCP server so any AI assistant that speaks the Model Context Protocol can use your knowledge base as tools.
pip install synalinks-memory-cliOr with uv:
uv add synalinks-memory-cliOr run directly without installing using uvx:
uvx synalinks-memory-cli list
uvx synalinks-memory-cli execute Users --format csv -o users.csvA Synalinks API key is required to authenticate with your knowledge base.
When you create a knowledge base on app.synalinks.com, a default API key is generated automatically with read/write access and no predicate restrictions — you can use it right away.
To create a key with granular access, go to Profile icon (in the header) > API Keys > Create API Key.
Then set it in your environment:
export SYNALINKS_API_KEY="synalinks_..."To make it persistent, add it to your shell profile:
# bash
echo 'export SYNALINKS_API_KEY="synalinks_..."' >> ~/.bashrc
# zsh
echo 'export SYNALINKS_API_KEY="synalinks_..."' >> ~/.zshrcsynalinks-memory-cli add data/sales.csv
synalinks-memory-cli add data/events.parquet --name Events --description "Event log" --overwritesynalinks-memory-cli "What were the top 5 products by revenue last month?"
synalinks-memory-cli How are sales doing this quartersynalinks-memory-cli listsynalinks-memory-cli execute Users
synalinks-memory-cli execute Users --limit 50 --offset 10synalinks-memory-cli search Users "alice"synalinks-memory-cli insert Users '{"name": "Alice", "email": "alice@example.com"}'synalinks-memory-cli update Users '{"name": "Alice"}' '{"email": "alice@new.com"}'synalinks-memory-cli execute Users --format csv
synalinks-memory-cli execute Users --format parquet -o users.parquet
synalinks-memory-cli execute Users -f json --limit 500--api-key TEXT API key (or set SYNALINKS_API_KEY)
--base-url TEXT Override API base URL
--help Show help message
The CLI includes a built-in Model Context Protocol (MCP) server. This lets AI assistants — Claude, Cursor, Windsurf, and others — use your Synalinks Memory knowledge base as tools.
# stdio (default) — for Claude Desktop, Claude Code, Cursor, Kiro, etc.
synalinks-memory-cli serve
# SSE over HTTP — for Mistral Le Chat and other remote-only clients
synalinks-memory-cli serve --transport sse --port 8000
# Streamable HTTP
synalinks-memory-cli serve --transport streamable-http --port 8000On startup the server sends a health check to wake up the backend (handles cold starts), then exposes the following tools:
| Tool | Description |
|---|---|
list_predicates() |
List all tables, concepts, and rules |
execute(predicate, limit, offset) |
Fetch rows from a table, concept, or rule |
search(predicate, keywords, limit, offset) |
Search rows by keywords (fuzzy matching) |
upload(file_path, name, description, overwrite) |
Upload a CSV or Parquet file as a new table |
insert_row(predicate, row_json) |
Insert a single row into a table |
update_rows(predicate, filter_json, values_json) |
Update rows matching a filter with new values |
chat(question) |
Chat with the Synalinks agent (multi-turn, context preserved across calls). Send "/clear" to reset conversation history. |
Below are copy-paste configurations for every major AI tool that supports MCP. Replace your-api-key with your actual Synalinks API key.
Edit your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"synalinks-memory": {
"type": "stdio",
"command": "uvx",
"args": ["synalinks-memory-cli", "serve"],
"env": {
"SYNALINKS_API_KEY": "your-api-key"
}
}
}
}Run this command in your project directory:
claude mcp add synalinks-memory \
--transport stdio \
--env SYNALINKS_API_KEY=your-api-key \
-- uvx synalinks-memory-cli serveOr add a .mcp.json file at the root of your project:
{
"mcpServers": {
"synalinks-memory": {
"type": "stdio",
"command": "uvx",
"args": ["synalinks-memory-cli", "serve"],
"env": {
"SYNALINKS_API_KEY": "your-api-key"
}
}
}
}Edit your config file:
- Global:
~/.cursor/mcp.json - Project:
.cursor/mcp.json
{
"mcpServers": {
"synalinks-memory": {
"command": "uvx",
"args": ["synalinks-memory-cli", "serve"],
"env": {
"SYNALINKS_API_KEY": "your-api-key"
}
}
}
}Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"synalinks-memory": {
"command": "uvx",
"args": ["synalinks-memory-cli", "serve"],
"env": {
"SYNALINKS_API_KEY": "your-api-key"
}
}
}
}Edit your config file:
- Global:
~/.kiro/settings/mcp.json - Project:
.kiro/settings/mcp.json
{
"mcpServers": {
"synalinks-memory": {
"command": "uvx",
"args": ["synalinks-memory-cli", "serve"],
"env": {
"SYNALINKS_API_KEY": "${SYNALINKS_API_KEY}"
}
}
}
}Kiro supports
${VAR}references — setSYNALINKS_API_KEYin your system environment and it will be injected automatically.
Le Chat supports remote MCP connectors only. Start the server in SSE mode:
SYNALINKS_API_KEY=your-api-key uvx synalinks-memory-cli serve --transport sse --port 8000Then in Le Chat:
- Open the Intelligence menu and click Connectors
- Click + Add Connector and switch to the Custom MCP Connector tab
- Set:
- Name:
synalinks-memory - Server URL:
http://localhost:8000/sse
- Name:
- Click Connect
Open Cline's MCP settings panel, then edit cline_mcp_settings.json:
{
"mcpServers": {
"synalinks-memory": {
"command": "uvx",
"args": ["synalinks-memory-cli", "serve"],
"env": {
"SYNALINKS_API_KEY": "your-api-key"
}
}
}
}The server uses the standard stdio transport. Point your client at:
command: uvx synalinks-memory-cli serve
env: SYNALINKS_API_KEY=your-api-key
Licensed under Apache 2.0. See the LICENSE file for full details.