Palinode
Git-versioned markdown memory for AI agents: save, search, compact, lint, and audit.
The record the registry holds
There is no address to call. This one is a package you install and run yourself, wherever your assistant runs.
{
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.phasespace-labs/palinode",
"description": "Git-versioned markdown memory for AI agents: save, search, compact, lint, and audit.",
"title": "Palinode",
"repository": {
"url": "https://github.com/phasespace-labs/palinode",
"source": "github"
},
"version": "0.13.0",
"websiteUrl": "https://github.com/phasespace-labs/palinode",
"packages": [
{
"registryType": "pypi",
"registryBaseUrl": "https://pypi.org",
"identifier": "palinode",
"version": "0.13.0",
"runtimeHint": "uvx",
"transport": {
"type": "stdio"
},
"packageArguments": [
{
"description": "Select the palinode distribution from PyPI",
"value": "palinode",
"type": "named",
"name": "--from"
},
{
"description": "Console script for the stdio MCP server",
"value": "palinode-mcp",
"type": "positional",
"valueHint": "stdio entry point"
}
],
"environmentVariables": [
{
"description": "Path to the markdown-memory directory (e.g. ~/.palinode). Created if missing.",
"isRequired": true,
"name": "PALINODE_DIR"
},
{
"description": "Host where the back-end palinode-api process is reachable",
"default": "127.0.0.1",
"name": "PALINODE_API_HOST"
},
{
"description": "Port for palinode-api",
"default": "6340",
"name": "PALINODE_API_PORT"
},
{
"description": "Optional bearer token enforced on every palinode-api request other than /health. Required when PALINODE_API_BIND_INTENT=public. Generate with: python -c 'import secrets; print(secrets.token_urlsafe(32))'.",
"isSecret": true,
"name": "PALINODE_API_TOKEN"
},
{
"description": "Path to a file containing the bearer token (alternative to PALINODE_API_TOKEN; for docker-secrets style deployments)",
"isSecret": true,
"name": "PALINODE_API_TOKEN_FILE"
}
]
},
{
"registryType": "pypi",
"registryBaseUrl": "https://pypi.org",
"identifier": "palinode",
"version": "0.13.0",
"runtimeHint": "uvx",
"transport": {
"type": "streamable-http",
"url": "http://127.0.0.1:6341/mcp/"
},
"packageArguments": [
{
"description": "Select the palinode distribution from PyPI",
"value": "palinode",
"type": "named",
"name": "--from"
},
{
"description": "Console script for the long-running streamable-HTTP MCP server",
"value": "palinode-mcp-sse",
"type": "positional",
"valueHint": "streamable-http entry point"
}
],
"environmentVariables": [
{
"description": "Path to the markdown-memory directory",
"isRequired": true,
"name": "PALINODE_DIR"
},
{
"description": "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).",
"default": "127.0.0.1",
"name": "PALINODE_MCP_HTTP_HOST"
},
{
"description": "Port for the MCP HTTP server",
"default": "6341",
"name": "PALINODE_MCP_HTTP_PORT"
},
{
"description": "Host where the back-end palinode-api is reachable",
"default": "127.0.0.1",
"name": "PALINODE_API_HOST"
},
{
"description": "Port for palinode-api",
"default": "6340",
"name": "PALINODE_API_PORT"
},
{
"description": "Bearer token enforced by palinode-api. Required when binding non-loopback. Generate with: python -c 'import secrets; print(secrets.token_urlsafe(32))'.",
"isSecret": true,
"name": "PALINODE_API_TOKEN"
},
{
"description": "Path to a file containing the bearer token (alternative to PALINODE_API_TOKEN)",
"isSecret": true,
"name": "PALINODE_API_TOKEN_FILE"
}
]
}
],
"_meta": {
"io.modelcontextprotocol.registry/publisher-provided": {
"release": "v0.13.0",
"release_notes_url": "https://github.com/phasespace-labs/palinode/releases/tag/v0.13.0",
"tool": "mcp-publisher"
}
}
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"statusChangedAt": "2026-08-14T20:39:22.986996Z",
"publishedAt": "2026-08-14T20:39:22.986996Z",
"updatedAt": "2026-08-14T20:39:22.986996Z",
"isLatest": true
}
}
}
Draft an Agent Plugin from this
An MCP server is raw capability: some tools, wired to something. An Agent Plugin is the packaging that says what job it does, what it leaves behind and where it stops. The prompt below carries this record and asks for the packaging; your own assistant writes it, and nothing here is sent anywhere.
MCP server
These are the publisher's own words, filed by them with the official MCP registry and mirrored here. This catalog did not read them from the publisher and has not run, called or installed anything.
The publisher's own address
https://github.com/phasespace-labs/palinode
The address the publisher put in their registry record, printed as they wrote it. Nobody here has opened it.