Skip to main content
Glama

mcp-server-sample — Minimaler MCP-Server zum Speichern und Durchsuchen von Notizen

Ein minimaler MCP-Server, der nur Notizen speichert und durchsucht. Er verbindet sich mit keinem externen System. Der Speicherort ist nur eine Datei notes.json im selben Ordner.

Er enthält jeweils ein Beispiel für die drei MCP-Primitive.

Primitive

Wer entscheidet

Inhalt auf diesem Server

Tools

Das Modell entscheidet

add_note (Notiz hinzufügen) / search_notes (Notizen durchsuchen)

Resources

Die KI-App ruft sie ab und übergibt sie

notes://all (Alle gespeicherten Notizen)

Prompts

Der Benutzer wählt explizit aus

weekly_review (Rückblick auf die Woche)

Voraussetzungen

  • Node.js 24 oder höher (LTS. Überprüfen mit node --version)

  • git

Einrichtung

git clone https://github.com/utakatano/mcp-server-sample.git
cd mcp-server-sample
npm install

Wenn npm install erfolgreich war, ist die Einrichtung abgeschlossen. Zu diesem Zeitpunkt wird der Server nicht gestartet. Der MCP-Server wird von der KI-App gestartet, daher muss er nicht manuell über das Terminal ausgeführt werden.

Mit der KI-App verbinden

Claude Code

claude mcp add notes -- node /絶対パス/mcp-server-sample/index.js

Wenn claude mcp list ✔ Connected anzeigt, ist die Verbindung hergestellt.

Claude Desktop

Einstellungen → Developer → „Edit Config“ öffnet claude_desktop_config.json. Fügen Sie Folgendes hinzu:

{
  "mcpServers": {
    "notes": {
      "command": "node",
      "args": ["/絶対パス/mcp-server-sample/index.js"]
    }
  }
}

Nach dem Speichern Claude Desktop vollständig beenden und neu starten (nur das Schließen des Fensters reicht nicht).

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Funktionstest

「来週までにネットワーク構成を確認する」とメモして
「ネットワーク」を含むメモを探して

Es wird eine notes.json erstellt, deren Inhalt nach und nach wächst.

Speicherort ändern

Durch die Umgebungsvariable NOTES_FILE mit einem absoluten Pfad kann der Speicherort geändert werden.

{
  "mcpServers": {
    "notes": {
      "command": "node",
      "args": ["/絶対パス/mcp-server-sample/index.js"],
      "env": { "NOTES_FILE": "/絶対パス/my-notes.json" }
    }
  }
}

Wenn keine Verbindung zustande kommt

Zuerst das Log prüfen. Die Ursache steht meistens dort.

tail -20 ~/Library/Logs/Claude/mcp-server-notes.log   # macOS
# Windows: %APPDATA%\Claude\logs\mcp-server-notes.log

Achten Sie darauf, ob nach Server started and connected successfully ein Fehler auftritt.

Im Log angezeigt

Ursache

Lösung

Cannot find module '/.../index.js'

Der Pfad in args ist falsch

Führen Sie pwd im Repository-Stammverzeichnis aus und fügen Sie die Ausgabe + /index.js erneut ein

spawn node ENOENT

Die KI-App findet node nicht. Tritt auf, wenn der PATH nur in der Shell-Konfiguration (z.B. nvm/volta) gesetzt ist

Geben Sie die Ausgabe von which node (absoluter Pfad) direkt in command ein

Cannot find package '@modelcontextprotocol/server'

Abhängigkeiten nicht installiert

Führen Sie im Repository-Stammverzeichnis npm ci aus

Log ist leer oder wird nicht aktualisiert

Die Konfiguration wird nicht geladen

Überprüfen Sie die JSON-Syntax (Kommas, Klammern) und beenden Sie Claude Desktop vollständig (macOS: ⌘Q) und starten Sie es neu

Zur Unterscheidung, ob der Fehler serverseitig oder seitens der KI-App liegt, ist es am schnellsten, den Server lokal direkt aufzurufen.

printf '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28"}}}\n' \
  | node /絶対パス/mcp-server-sample/index.js

Wenn ein JSON mit add_note und search_notes zurückgegeben wird, funktioniert der Server korrekt. In diesem Fall prüfen Sie die Einstellungen der KI-App (Pfad, JSON-Format, Neustart).

Maßnahmen gegen Lieferkettenangriffe

In der .npmrc sind Einstellungen enthalten, die eine Übernahme von npm-Paketen verhindern sollen. Sie wirken bei jedem npm install / npm ci.

Einstellung

Wirkung

ignore-scripts=true

Führt bei der Installation keine Lebenszyklus-Skripte von Abhängigkeiten (z.B. postinstall) aus. Versperrt den häufigsten Ausführungspfad, den übernommene Pakete zuerst nutzen. npm start / npm run funktionieren wie gewohnt (nur Pre-/Post-Skripte werden nicht ausgeführt)

save-exact=true

npm install <pkg> schreibt in package.json ohne ^, also vollständig fixiert

min-release-age=7

Installiert nur Versionen, die älter als 7 Tage sind. npm wandelt dies in before=<Datum vor 7 Tagen> um, um die Abhängigkeiten aufzulösen

Die Abhängigkeiten sind in package.json vollständig fixiert (@modelcontextprotocol/server ist 2.0.0, zod ist 4.4.3), und in package-lock.json mit integrity-Hash protokolliert. Wenn Sie die Abhängigkeiten genau wie im Lockfile installieren möchten, verwenden Sie npm ci anstelle von npm install.

Wenn Sie Abhängigkeiten aktualisieren möchten, heben Sie sie bewusst einzeln an.

npm outdated
npm install @modelcontextprotocol/server@2.1.0   # save-exact により完全固定で書かれる
npm ls --all                                      # 増えた依存を目で確認する

Lizenz

MIT

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.

  • Cross-session, cross-device memory for your agent: remember and recall notes. No key to start.

  • Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/utakatano/mcp-server-sample'

If you have feedback or need assistance with the MCP directory API, please join our Discord server