MCP-Contracts Installation

Setup, Konfiguration und Registrierung des MCP-Contracts Servers.

Voraussetzungen

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

Tool nicht gefunden

# MCP-Server neu registrieren
claude mcp remove mcp-contracts
claude mcp add mcp-contracts ...

Berechtigungen

DB-UserDatenbankRechte
claude_codeki_protokollSELECT, INSERT, UPDATE, DELETE auf contracts*
mcp_loggerki_protokollINSERT auf mcp_log