Palinode runs on your own machine — the client starts it, so there is no endpoint to ping. 362 installs a week from pypi. Last commit 20 Oct 2026.
Inspectable, correctable project memory in git-versioned Markdown for AI agents.
We read the source, 3 d ago · rules 995398eba69f
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
CRON_D_DIR = Path("/etc/cron.d")
proc = subprocess.run( # nosec B603,B607 - argv form, no shell
raw = glob.glob(os.path.join(memory_dir, include), recursive=True)
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add palinode -e 'PALINODE_DIR=<PALINODE_DIR>' -- uvx palinode
{
"mcpServers": {
"palinode": {
"command": "uvx",
"args": [
"palinode"
],
"env": {
"PALINODE_DIR": "<PALINODE_DIR>"
}
}
}
}
[mcp_servers.palinode]
command = "uvx"
args = ["palinode"]
env = { PALINODE_DIR = "<PALINODE_DIR>" }
{
"mcpServers": {
"palinode": {
"command": "uvx",
"args": [
"palinode"
],
"env": {
"PALINODE_DIR": "<PALINODE_DIR>"
}
}
}
}
{
"servers": {
"palinode": {
"type": "stdio",
"command": "uvx",
"args": [
"palinode"
],
"env": {
"PALINODE_DIR": "<PALINODE_DIR>"
}
}
}
}
Put your own value in place of
<PALINODE_DIR> (Path to the markdown-memory directory).
The author’s registry entry marks it as required.
Optional settings from the registry entry, left out of the block above:
PALINODE_MCP_HTTP_HOST (Bind host for the MCP HTTP server. Defaults to loopback; set to 0.0.0.0 only with intentional network exposure (paired with PALINODE_API_BIND_INTENT=public on the back-end)), PALINODE_MCP_HTTP_PORT (Port for the MCP HTTP server), PALINODE_API_HOST (Host where the back-end palinode-api is reachable), PALINODE_API_PORT (Port for palinode-api), PALINODE_API_TOKEN (Bearer token enforced by palinode-api. Required when binding non-loopback. Generate with: python -c 'import secrets; print(secrets.token_urlsafe(32))'), PALINODE_API_TOKEN_FILE (Path to a file containing the bearer token (alternative to PALINODE_API_TOKEN)).
Persistent file-based memory for AI agents: inspectable, versionable, fully local.
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Git-native project memory for AI coding agents: Markdown source of truth, reviewable, secret-safe.
Open, Git-native memory protocol for MCP agents. Portable, versioned, human-editable.
Memory for AI coding agents — markdown in your own git, not a vendor database. Apache-2.0.
Keeps AI coding agents' plan and design markdown managed and versioned, for Claude Code and Codex.
Persistent memory for AI agents - save once, recall in every session, project and tool.
Project memory and a control plane for AI coding agents.
Answers built from our own checks of this server.