Skip to main content
Glama
mtct

MCP Journaling Server

by mtct

MCP 日志服务器

MCP(消息控制协议)服务器旨在处理交互式日志会话,支持情感分析和自动对话保存。

特征

  • 自动日志会话管理

  • 以 Markdown 格式保存对话

  • 带有时间戳的对话时间分析

  • 支持阅读最近的日记条目

  • 日记条目按时间顺序组织

Related MCP server: Claude Conversation Memory System

安装

依赖于您的 MCP 客户端,在 Claude Desktop 上:

    "mcpServers": {
        "journaling": {
            "command": "uv",
            "args": [
                "--directory",
                <REPOSITORY PATH>,
                "run",
                "server.py"
            ]
        }
    }

配置

可以使用 .env 文件中的环境变量来配置服务器:

  • JOURNAL_DIR :保存日志文件的目录(默认值:~/Documents/journal)

  • FILENAME_PREFIX :文件名前缀(默认值:“journal”)

  • FILE_EXTENSION :日志文件扩展名(默认值:“.md”)

如果未指定,则将使用默认值。

文件结构

日记帐分录按以下结构保存:

[JOURNAL_DIR]/
├── journal_2025-01-27.md
├── journal_2025-01-26.md
└── ...

条目格式

每个日记条目包括:

  1. 带日期的标题

  2. 带有时间戳的对话记录

  3. 情感分析

  4. 反思和反复出现的主题

API

工具

  • start_new_session() :开始新的日志会话

  • record_interaction(user_message, assistant_message) :记录消息交换

  • generate_session_summary(summary) :生成并保存会话摘要

  • get_recent_journals() :检索最近的 5 条条目

资源

  • journals://recent :访问最近日记条目的端点

提示

  • start_journaling :初始提示

Available Tools

3 tools
generate_session_summaryC

Generate a markdown summary of the journaling session.

Args: summary: The llm generated summay of the conversation

Returns: str: Confirmation message

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool generates a markdown summary but doesn't explain what happens to the summary (e.g., saved, displayed, sent), whether it modifies session state, or any side effects like permissions or rate limits. This is inadequate for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the main purpose, but includes redundant sections like 'Args:' and 'Returns:' that repeat schema information without adding value. It could be more streamlined by focusing only on clarifying aspects not covered elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and low parameter coverage, the description is incomplete. It doesn't explain the return value beyond 'Confirmation message', leaving the agent uncertain about what to expect. For a tool with this complexity, more context on behavior and output is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, and the description adds minimal parameter semantics. It mentions 'summary: The llm generated summary of the conversation' but doesn't clarify format, length, or content expectations beyond what's implied by the name. With one undocumented parameter, this doesn't compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate a markdown summary of the journaling session.' This specifies the verb (generate), resource (markdown summary), and context (journaling session). However, it doesn't explicitly differentiate from sibling tools like 'record_interaction' or 'start_new_session', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as whether a session must be active, or how it relates to siblings like 'start_new_session' for initiating sessions. This leaves the agent without context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_interactionB

Record both the user's message and assistant's response.

Args: user_message: The user's message assistant_message: The assistant's response

Returns: str: Confirmation message

ParametersJSON Schema
NameRequiredDescriptionDefault
user_messageYes
assistant_messageYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool records messages but doesn't explain where or how (e.g., in a database, log file, or session context), whether it requires permissions, or if it has side effects like overwriting data. This leaves critical behavioral traits unspecified for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the core purpose stated first in a clear sentence. The Args and Returns sections are structured efficiently, though the 'Returns' part could be more specific than 'Confirmation message.' Overall, it avoids unnecessary verbosity while conveying essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a mutation with 2 parameters), lack of annotations, and no output schema, the description is minimally adequate. It covers the basic action and parameters but misses details like behavioral context, usage relative to siblings, and return value specifics. This leaves gaps that could hinder an agent's understanding in a broader workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful semantics beyond the input schema, which has 0% coverage. It explicitly defines 'user_message' as 'The user's message' and 'assistant_message' as 'The assistant's response,' clarifying the purpose of each parameter. Since there are only 2 parameters and the schema lacks descriptions, this compensation is effective, though not exhaustive (e.g., no format constraints).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Record both the user's message and assistant's response.' It specifies the verb ('record') and resources ('user's message' and 'assistant's response'), making the action explicit. However, it doesn't differentiate from sibling tools like 'generate_session_summary' or 'start_new_session', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where recording interactions is appropriate, such as after a conversation or as part of session management. Without such guidance, agents may struggle to select this tool correctly in relation to others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_new_sessionA

Start a new journaling session by clearing previous conversation log.

Returns: str: Welcome message with current save location

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the action ('clearing previous conversation log') and the return value ('Welcome message with current save location'), which are useful. However, it lacks details on potential side effects (e.g., whether clearing is irreversible), authentication needs, or rate limits. It doesn't contradict annotations, but it's not fully transparent for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and well-structured: two sentences that clearly state the action and the return value, with zero wasted words. It's front-loaded with the primary purpose, making it easy for an agent to parse quickly. Every sentence earns its place by providing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple mutation with no parameters) and the absence of annotations and output schema, the description is somewhat complete but has gaps. It explains what the tool does and what it returns, but for a mutation tool that clears logs, it should ideally mention whether this action is destructive or reversible. Without annotations or output schema, the description could do more to cover behavioral aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100%, so there's no need for parameter details in the description. The description appropriately focuses on behavior and output without redundant parameter information. A baseline of 4 is applied since no parameters exist, and the description doesn't attempt to add unnecessary details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Start a new journaling session by clearing previous conversation log.' It specifies the verb ('Start') and resource ('journaling session') with the action of clearing previous logs. However, it doesn't explicitly differentiate from sibling tools like 'generate_session_summary' or 'record_interaction' in terms of when to use each, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by stating it 'clears previous conversation log,' suggesting it should be used when starting fresh rather than during ongoing sessions. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'record_interaction' or 'generate_session_summary,' nor does it mention any exclusions or prerequisites. This leaves some ambiguity for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • First observedgenerate_session_summary
    • First observedrecord_interaction
    • First observedstart_new_session

TDQS

B3.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: start_new_session initiates a session, record_interaction logs individual exchanges, and generate_session_summary creates a final summary. The actions (start, record, generate) and targets (session, interaction, summary) are unambiguous.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case: start_new_session, record_interaction, and generate_session_summary. The naming is predictable and readable across the set.

Tool Count4/5

Three tools are reasonable for a journaling server, covering core operations (start, record, summarize). It might feel slightly thin if advanced features like editing or searching past entries are needed, but it's well-scoped for basic functionality.

Completeness4/5

The tools cover the essential lifecycle of a journaling session: starting, recording interactions, and summarizing. Minor gaps exist, such as no tools for retrieving or managing past sessions, but agents can work around this with the provided operations.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that integrates with Claude Desktop for managing personal journal entries, providing both a web viewer for browsing journals and tools for adding, searching, and analyzing journal content.
    6
    13 npm
    2
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that provides searchable local storage for Claude conversation history, featuring automatic topic extraction and weekly insight summaries. It enables Claude to retrieve context from past sessions through full-text search and organized file storage.
    10
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that gives Claude persistent, locally-stored memory with verification-gated lessons and a Pattern Oracle to prevent unverified guesses from becoming ingrained facts.
    13
    73 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives Claude persistent memory by storing conversation context, entities, and enabling semantic search across sessions.
    12 npm
    1
    MIT