MCP Chat Logger is a small Model Context Protocol server that lets an AI client save a conversation as a readable Markdown file.
- Exposes a
save_chat_historyMCP tool - Writes messages, roles, and timestamps to Markdown
- Uses an optional conversation ID in the filename and document header
- Stores logs locally in the
chat_logs/directory
- Python 3.10 or newer
- uv
- An MCP-compatible client
Clone the repository and install the locked dependencies:
git clone https://github.com/AlexiFeng/MCP_Chat_Logger.git
cd MCP_Chat_Logger
uv syncStart the server over stdio:
uv run chat_logger.pyUse an absolute path to your clone. A typical MCP client configuration looks like this:
{
"mcpServers": {
"chat_logger": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/MCP_Chat_Logger",
"run",
"chat_logger.py"
]
}
}
}The outer configuration shape can differ between clients; the command and args values remain the same.
save_chat_history accepts:
| Field | Type | Required | Description |
|---|---|---|---|
messages |
array | Yes | Chat messages containing role and content fields |
conversation_id |
string | No | Identifier added to the output filename and document header |
Example message list:
[
{"role": "user", "content": "Summarize this experiment."},
{"role": "assistant", "content": "Here are the main findings..."}
]Generated files are written to chat_logs/chat_<timestamp>.md, or chat_logs/chat_<conversation_id>_<timestamp>.md when an ID is supplied.
For clients supported by Smithery:
npx -y @smithery/cli install @AlexiFeng/MCP_Chat_Logger --client claudeConversation logs are written to the machine running this server. Review the content before sharing or committing generated files. The chat_logs/ directory is excluded from Git by default.
uv sync
uv run python -m compileall chat_logger.pyIssues and pull requests are welcome.