MCP-Contracts Installation
Setup, Konfiguration und Registrierung des MCP-Contracts Servers.
Voraussetzungen
- Python 3.10+
- MariaDB/MySQL mit ki_protokoll Datenbank
- Claude Code CLI
Installation
1. Verzeichnis erstellen
mkdir -p /opt/mcp-servers/mcp-contracts
cd /opt/mcp-servers/mcp-contracts
2. Virtual Environment
python3 -m venv venv
source venv/bin/activate
pip install mcp pymysql python-dotenv pyyaml
3. Environment-Datei
# .env
DB_HOST=localhost
DB_PORT=3306
DB_NAME=ki_protokoll
DB_USER=claude_code
DB_PASSWORD=geheim
LOG_DB_HOST=localhost
LOG_DB_NAME=ki_protokoll
LOG_DB_USER=mcp_logger
LOG_DB_PASSWORD=geheim
4. Datenbank-Tabellen
-- In ki_protokoll ausführen
CREATE TABLE IF NOT EXISTS contracts (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
yaml_content TEXT NOT NULL,
version VARCHAR(50) DEFAULT '1.0',
status ENUM('draft','active','deprecated') DEFAULT 'active',
scope_description TEXT,
created_by VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY (name, version)
);
CREATE TABLE IF NOT EXISTS contract_history (
id INT AUTO_INCREMENT PRIMARY KEY,
contract_id INT NOT NULL,
old_version VARCHAR(50),
new_version VARCHAR(50),
old_yaml_content TEXT,
change_description TEXT,
changed_by VARCHAR(100),
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (contract_id) REFERENCES contracts(id)
);
CREATE TABLE IF NOT EXISTS contract_validations (
id INT AUTO_INCREMENT PRIMARY KEY,
contract_id INT NOT NULL,
passed BOOLEAN DEFAULT FALSE,
violations_count INT DEFAULT 0,
violations_json TEXT,
triggered_by VARCHAR(50),
validated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (contract_id) REFERENCES contracts(id)
);
Registrierung in Claude Code
# MCP-Server registrieren
claude mcp add mcp-contracts \
--transport stdio \
-- /opt/mcp-servers/mcp-contracts/venv/bin/python \
/opt/mcp-servers/mcp-contracts/server.py
# Registrierung prüfen
claude mcp list
Test
# In Claude Code Session
contracts_list(compact=True)
contracts_statistics()
Fehlerbehebung
Server startet nicht
# Manuell testen
/opt/mcp-servers/mcp-contracts/venv/bin/python \
/opt/mcp-servers/mcp-contracts/server.py
# Logs prüfen
tail -f ~/.claude/logs/mcp-*.log
Datenbankverbindung fehlgeschlagen
- .env Credentials prüfen
- DB-User Berechtigungen prüfen
- MariaDB-Service Status:
systemctl status mariadb
Tool nicht gefunden
# MCP-Server neu registrieren
claude mcp remove mcp-contracts
claude mcp add mcp-contracts ...
Berechtigungen
| DB-User | Datenbank | Rechte |
|---|---|---|
claude_code | ki_protokoll | SELECT, INSERT, UPDATE, DELETE auf contracts* |
mcp_logger | ki_protokoll | INSERT auf mcp_log |