Skip to main content
Glama
vielhuber
by vielhuber

build status GitHub Tag Code Style License Last Commit PHP Version Support Packagist Downloads

🔐keepassmcp🔐

keepassmcp ist ein PHP-Helfer und MCP-Server, der eine lokale KeePass-Datenbank liest – Einträge, Notizen, benutzerdefinierte Eigenschaften und Passwörter.

Es ist von Natur aus schreibgeschützt: In der Datenbank wird nie etwas geschrieben oder geändert.

keepassmcp erfordert PHP 8.5 oder neuer und Python 3 mit pykeepass. Die Entschlüsselung selbst wird an pykeepass delegiert, da keine PHP-Bibliothek KDBX 4.x zuverlässig liest; daher wird jede KDBX-Variante, einschließlich Argon2-Schlüsselableitung, unterstützt.

Installation

composer require vielhuber/keepassmcp
pip install pykeepass

Related MCP server: vault-kv-mcp

Konfiguration

Kopieren Sie .env.example nach .env oder stellen Sie dieselben Variablen über die Prozessumgebung bereit:

KEEPASS_DATABASE=/path/to/passwords.kdbx
KEEPASS_PASSWORD_FILE=/dev/shm/keepass.pass
MCP_TOKEN=

Das Master-Passwort kann entweder direkt als KEEPASS_PASSWORD oder vorzugsweise über eine Datei angegeben werden, die in KEEPASS_PASSWORD_FILE benannt ist. Eine Datei hält das Passwort aus der Prozessumgebung heraus, wo es sonst von jedem Kindprozess geerbt und in /proc/<pid>/environ lesbar bleiben würde. Welcher Kanal auch immer verwendet wird, der Wert wird aus der Umgebung entfernt, sobald er gelesen wurde, und wird dem Leser über stdin übergeben, sodass er nie in einem Prozessargument erscheint.

KEEPASS_PYTHON zeigt optional auf einen bestimmten Interpreter, zum Beispiel einen in einer virtualenv.

PHP

use vielhuber\keepassmcp\keepassmcp;
$vault = new keepassmcp();
$vault->listEntries();
$vault->searchEntries('api-key');
$vault->getEntry('7f9c…');

MCP-Server

vendor/bin/mcp-server.php

Verfügbare Tools:

  • list_entries

  • search_entries

  • get_entry

list_entries und search_entries geben niemals ein Passwort oder einen Notiztext zurück; sie melden Titel, Gruppenpfade, Benutzernamen, URLs und die Flags has_password und has_notes. search_entries sucht jedoch innerhalb von Notizen und benutzerdefinierten Eigenschaftsnamen, sodass in einem Eintrag gespeicherte Langdokumentation auffindbar bleibt. Nur get_entry gibt die vertraulichen Werte eines einzelnen Eintrags zurück.

Tests

composer install
vendor/bin/phpunit

Die Testsuite verwendet einen Fake-Reader und öffnet niemals eine echte Datenbank.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    A read-only MCP server that provides tools to read, list, and inspect secrets from HashiCorp Vault's KV secrets engine (versions 1 and 2) using a Vault token.
    5
    -
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for the Nextcloud Passwords app, enabling reading and managing password entries (list, search, create, update, delete) with strong security guarantees.
    14
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Read-only MCP server that connects to multiple IMAP accounts, enabling cross-account email listing, search, and retrieval without modifying mailboxes.
    4
    MIT