Skip to main content
Glama
takezone

Journal Mandala MCP

by takezone

Journal Mandala MCP

Dies ist ein MCP-Server, um Tagebucheinträge direkt von Claude in Journal Mandala zu schreiben.

Verwenden Sie dies, wenn Sie während eines Gesprächs einen „Gedankenfluss“ in Ihrem Mandala festhalten möchten.

Voraussetzungen

  • Node.js 20+

  • Claude Desktop (oder Claude Code)

  • API-Schlüssel für Journal Mandala (Informationen zur Erstellung finden Sie unter „API-Schlüssel abrufen“)

Related MCP server: Obsidian Nexus

Installation

Installieren Sie es global mit npm.

npm install -g --install-links github:takezone/journal-mandala-mcp

--install-links ist erforderlich (ohne dies wird ein Symlink in ein temporäres Verzeichnis erstellt, was den Start verhindert).

Führen Sie denselben Befehl erneut aus, um Updates durchzuführen. Falls Sie es in der Vergangenheit ohne --install-links installiert haben und es nicht funktioniert:

npm uninstall -g journal-mandala-mcp
# 残骸掃除 (npm prefix は `npm prefix -g` で確認)
rm -rf $(npm prefix -g)/lib/node_modules/journal-mandala-mcp
rm -rf $(npm prefix -g)/lib/node_modules/.journal-mandala-mcp-*
npm install -g --install-links github:takezone/journal-mandala-mcp

Konfiguration von Claude Desktop

Bearbeiten Sie ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

Betrieb mit einem Konto

{
  "mcpServers": {
    "journal-mandala": {
      "command": "journal-mandala-mcp",
      "env": {
        "JOURNAL_MANDALA_API_KEY": "jm_XXXXXXXXXXXXXXXXXXXXXXXX"
      }
    }
  }
}

Wenn Sie zwischen zwei Konten (privat / beruflich) wechseln möchten

{
  "mcpServers": {
    "journal-mandala-personal": {
      "command": "journal-mandala-mcp",
      "env": {
        "JOURNAL_MANDALA_API_KEY": "jm_PERSONAL_KEY"
      }
    },
    "journal-mandala-work": {
      "command": "journal-mandala-mcp",
      "env": {
        "JOURNAL_MANDALA_API_KEY": "jm_WORK_KEY"
      }
    }
  }
}

Beide werden in Claude als separate Tools angezeigt. Sie können in natürlicher Sprache zwischen ihnen wechseln, z. B. mit „In Arbeit aufzeichnen“.

Starten Sie nach der Konfiguration Claude Desktop neu.

API-Schlüssel abrufen

Derzeit müssen Sie den Journal Mandala-Administrator (@takezone) kontaktieren und ihm Folgendes mitteilen, um einen Schlüssel zu erhalten:

  1. Die E-Mail-Adresse Ihres Google-Kontos

  2. Einen Label-Namen (z. B. alice-personal)

Sobald der Administrator Ihnen den API-Schlüssel gesendet hat, kopieren Sie ihn in die oben genannte Einstellung JOURNAL_MANDALA_API_KEY.

Hinweis: In Zukunft wird eine automatische Ausstellung über den Browser möglich sein.

Verwendung

Wenn Sie Claude während eines Gesprächs bitten, z. B. „Zeichne die heutigen Ereignisse im Tagebuch auf“, wird das Tool add_journal_entry aufgerufen und der Eintrag zu Journal Mandala hinzugefügt.

Verfügbare Tools:

add_journal_entry — Tagebucheintrag hinzufügen

  • title Titel (optional)

  • event Ereignis (was ist passiert)

  • thought Gedanken (wie haben Sie sich gefühlt)

  • entry_date Datum YYYY-MM-DD (falls weggelassen, wird das heutige Datum in JST verwendet)

  • entry_time Uhrzeit HH:MM

  • tags Tag-Array — muss als Array von Strings übergeben werden

    • ✅ Richtig: ["Arbeit", "Sport"]

    • ❌ Falsch: ["[\"Arbeit\",\"Sport\"]"] (kein JSON-stringifiziertes Array als einzelnes Element)

  • star_rating Bewertung von 1-5

find_entries — Liste der letzten Einträge

Wird verwendet, um IDs abzurufen. Gibt die Einträge in der Reihenfolge der letzten Aktualisierung zurück.

  • limit Anzahl der abzurufenden Einträge (Standard 20, Maximum 100)

update_entry — Bestehenden Eintrag aktualisieren

Teilweise Aktualisierung durch Angabe der ID. Nur die angegebenen Felder werden überschrieben, weggelassene Felder bleiben erhalten.

  • id erforderlich

  • Alle anderen Felder sind optional und entsprechen denen von add_journal_entry / add_todo

Verwendung: ID mit find_entries suchen → mit update_entry aktualisieren

add_todo — Todo hinzufügen

  • title Aufgabenname (erforderlich)

  • thought Notiz zur Aufgabe (optional)

  • entry_date Erstellungsdatum (falls weggelassen, JST heute)

  • due_date Fälligkeitsdatum YYYY-MM-DD (optional)

  • todo_status pending | in_progress | completed | cancelled (Standard: pending)

  • todo_points Schätzpunkte (optional)

  • is_today Flag für die „Heute erledigen“-Liste (optional)

  • tags Tag-Array

    • 1: Suboptimales/negatives Ereignis

    • 2: Normaler Tag (Standard)

    • 3: Tag mit einigen guten Ereignissen

    • 4: Tag mit sehr guten Ereignissen

    • 5: Großes Lebensereignis

    • Vergeben Sie die 5 nicht leichtfertig. Standard ist 2, bei guten Ereignissen 3 oder 4

Mindestens eines der Felder title / event / thought ist erforderlich.

Optionale Umgebungsvariablen

  • JOURNAL_MANDALA_API_URL — API-Endpunkt (Standard: https://journal-mandala.vercel.app)

Fehlerbehebung

  • Tool wird in Claude nicht angezeigt → Möglicher JSON-Syntaxfehler in der Konfigurationsdatei. Überprüfen Sie die MCP-Protokolle im Entwicklermenü von Claude Desktop.

  • API-Fehler 401 → JOURNAL_MANDALA_API_KEY ist ungültig. Bitten Sie den Administrator um eine Neuausstellung.

  • Netzwerkfehler → Überprüfen Sie den Betriebsstatus von Vercel.

Für Administratoren: Verwaltung und Wiederherstellung von API-Schlüsseln

Referenz für den Fall, dass ein Benutzer seinen Schlüssel verliert. Da dieses MCP auf das Original verweist, das auf Vercel gespeichert ist, kann es wiederhergestellt werden, selbst wenn die Kopie in ~/.claude.json verloren geht.

3-Schichten-Struktur

Schicht

Ort

Rolle

Server env var

Vercel JM_API_ACCOUNTS Umgebungsvariable

Statisches Array der Anfangskonten (Original)

Server KV

Vercel KV (Upstash Redis)

Über /api/enroll hinzugefügte Konten (Original)

Client

~/.claude.json etc.

Kopie des Schlüssels zur Authentifizierung (kann bei Verlust neu abgerufen werden)

Bei der API-Authentifizierung wird die Prüfung in der Reihenfolge KV → env var durchgeführt.

Wiederherstellungsschritte (Projektinhaber)

Im Projektverzeichnis (Hauptverzeichnis journal-mandala):

# Vercel プロジェクトと連携(初回のみ)
vercel link --yes --project journal-mandala

# サーバー環境変数をローカルに取得
vercel env pull .env.vercel

# env var 内のキー確認
grep JM_API_ACCOUNTS .env.vercel

# KV 内のキー一覧スキャン
source .env.vercel
curl -s "${KV_REST_API_URL}/scan/0/match/jm:account:*/count/100" \
  -H "Authorization: Bearer ${KV_REST_API_TOKEN}"

# 特定アカウントの中身を見る
curl -s "${KV_REST_API_URL}/get/jm:account:jm_XXXXX" \
  -H "Authorization: Bearer ${KV_REST_API_TOKEN}"

# 終わったら機密情報を必ず削除
rm -f .env.vercel .vercel/project.json && rmdir .vercel 2>/dev/null

Neuen Schlüssel ausstellen

  1. In Chrome mit dem entsprechenden Google-Konto anmelden.

  2. https://journal-mandala.vercel.app/api/enroll?label=<beliebiges Label> öffnen.

  3. OAuth-Genehmigung → Der API-Schlüssel wird nur einmal auf dem Bildschirm angezeigt, bitte kopieren.

  4. In ~/.claude.json unter mcpServers.*.env.JOURNAL_MANDALA_API_KEY eintragen.

Wenn Sie sich mit demselben Google-Konto erneut registrieren, wird der alte Schlüssel automatisch ungültig und durch den neuen ersetzt.

Einrichtung auf einem anderen Mac (ab dem 2. Gerät)

Da der API-Schlüssel mit dem Google-Konto verknüpft ist, kann derselbe Schlüssel auch auf einem anderen Gerät verwendet werden (keine erneute Registrierung erforderlich).

# 1. (未インストールなら) Node.js をインストール
brew install node

# 2. MCPサーバーをグローバルインストール
npm install -g --install-links github:takezone/journal-mandala-mcp

# 3. ~/.claude.json に mcpServers を追記(既存設定を壊さないよう python でマージ推奨)
python3 - <<'PY'
import json, os
p = os.path.expanduser('~/.claude.json')
with open(p) as f: c = json.load(f)
c.setdefault('mcpServers', {})
c['mcpServers'].update({
    'journal-mandala-personal': {
        'command': 'journal-mandala-mcp',
        'env': {'JOURNAL_MANDALA_API_KEY': 'jm_XXXXX'}  # ←実キー
    },
    'journal-mandala-work': {
        'command': 'journal-mandala-mcp',
        'env': {'JOURNAL_MANDALA_API_KEY': 'jm_YYYYY'}  # ←実キー
    },
})
with open(p, 'w') as f: json.dump(c, f, indent=2, ensure_ascii=False)
print('updated')
PY

# 4. Claude Code を再起動(/exit → claude 再実行)

Falls der vorhandene Schlüssel nicht zur Hand ist: Kopieren Sie ihn von ~/.claude.json Ihres Haupt-Macs oder rufen Sie ihn über die oben genannten „Wiederherstellungsschritte“ von Vercel ab.

Empfehlung für verteilte Nutzung: Wenn Sie für den Heim-Mac und den Firmen-Mac separate Schlüssel verwenden (z. B. ?label=personal-home / ?label=personal-work), hat ein Leck auf einem Gerät keine Auswirkungen auf das andere, und die Rotation kann separat erfolgen. Die Verwendung desselben Schlüssels ist zwar bequemer, aber die Wahl bleibt Ihnen überlassen.

Lizenz

MIT

Available Tools

1 tool
add_journal_entryAdd Journal Mandala entryB

Journal Mandala に新しい日記エントリを作成する。event (出来事: 何があったか) と thought (思考: それについてどう感じたか) は両方とも任意だが、少なくとも title/event/thought のいずれかは必須。日付を省略すると日本時間での今日の日付になる。

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoエントリのタイトル(任意。省略時は先頭20文字から自動生成)
eventNo出来事: 何があったかを事実ベースで記述
thoughtNo思考: それについてどう感じたか・何を考えたか
entry_dateNoYYYY-MM-DD 形式。省略時は日本時間での今日
entry_timeNoHH:MM 形式(任意)
tagsNoタグの配列(任意)
star_ratingNo1-5 の評価(任意)

TDQS

B3.4/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 key behaviors: the tool creates a new entry (implying a write/mutation operation), specifies default values for title (auto-generated from first 20 characters) and date (today's Japan time), and mentions the requirement for at least one of title/event/thought. However, it lacks details on permissions, error handling, or response format, leaving gaps 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 concise with two sentences that efficiently convey the tool's purpose and key constraints. It is front-loaded with the main action and avoids unnecessary details, though it could be slightly more structured by separating usage rules into bullet points for clarity.

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 (7 parameters, mutation operation) and lack of annotations and output schema, the description is moderately complete. It covers the creation action, parameter requirements, and defaults, but misses details on permissions, error cases, and what the tool returns, which are important for a write tool with no structured output information.

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

Parameters3/5

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

The schema description coverage is 100%, providing detailed descriptions for all 7 parameters. The description adds minimal value beyond the schema by mentioning that event and thought are optional but at least one of title/event/thought is required, and that the date defaults to today's Japan time if omitted. This aligns with the baseline of 3 when the schema does most of the work.

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: 'Journal Mandala に新しい日記エントリを作成する' (creates a new journal entry in Journal Mandala). It specifies the verb (create/作成する) and resource (journal entry/日記エントリ). However, since there are no sibling tools mentioned, it cannot demonstrate differentiation from alternatives, preventing a score of 5.

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 provides implied usage guidance by stating that at least one of title/event/thought is required, and that the date defaults to today's date in Japan time if omitted. However, it lacks explicit guidance on when to use this tool versus alternatives (none mentioned) or any prerequisites or exclusions, keeping it at a basic level.

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. 1 tool updatev0.1.0
    • First observedadd_journal_entry

TDQS

B3.4/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined as adding journal entries, and no other tools exist to cause confusion.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The name 'add_journal_entry' follows a clear verb_noun pattern (add + journal_entry).

Tool Count2/5

A single tool for a journaling server is too few for the apparent scope. Journaling typically involves operations like viewing, updating, deleting, or searching entries, but this server only supports adding entries, which severely limits functionality.

Completeness1/5

The tool surface is severely incomplete for a journaling domain. It only allows adding entries, with no tools for retrieving, updating, deleting, or searching entries. This creates dead ends for agents, as they cannot perform basic CRUD operations beyond creation.

Maintenance

ActivityStale
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables structured note-taking with markdown support, dynamic tagging system, advanced search capabilities, and markdown export functionality through natural language conversations in Claude Desktop.
    3
    GPL 3.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Connects Claude Desktop to Obsidian vaults to enable reading, writing, searching, and intelligent organization of markdown notes. It features pre-configured structures for personal and family data management through natural conversation.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to access and manage a persistent, human-readable knowledge graph of neurons, with semantic search, memory consolidation, and local ownership.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables personal knowledge management through Claude Desktop, allowing users to capture thoughts, connect ideas, and reflect on thinking changes via natural conversation.
    7
    23
    MIT