MCP server for Cursor IDE offering tools for Human Design chart analysis, partner matching, n8n workflow management, and utility functions like UUID generation and calculation.
SaferSkills independently audited Connection-Key MCP Server (MCP Server) and scored it 45/100 (orange). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 4 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 5 flagged
A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Ein MCP (Model Context Protocol) Server mit verschiedenen nützlichen Tools für Cursor IDE.
Der Server stellt folgende Tools zur Verfügung:
Test-Tool zur Überprüfung der Server-Verbindung.
Gibt den eingegebenen Text zurück. Nützlich zum Testen von Parametern.
text (string): Der Text, der zurückgegeben werden sollGibt das aktuelle Datum und die aktuelle Uhrzeit zurück.
timezone (string, optional): Zeitzone (z.B. 'Europe/Berlin'), Standard: UTCdateTime: Formatierte Datum/Zeit-Stringtimestamp: Unix-Timestamptimezone: Verwendete ZeitzoneFührt mathematische Berechnungen durch.
expression (string): Mathematischer Ausdruck (z.B. '2 + 2', '10 5', '2 * 3')result: Berechnungsergebnisexpression: Ursprünglicher AusdruckGeneriert eine eindeutige UUID (Universally Unique Identifier).
version (enum, optional): UUID Version - "v4" (zufällig, Standard) oder "v1" (zeitbasiert)uuid: Generierte UUIDversion: Verwendete VersionRuft die n8n REST API auf. Kann Workflows starten, Daten senden oder abrufen.
endpoint (string): API-Endpoint (z.B. '/api/v1/workflows' oder '/webhook/reading')method (enum): HTTP-Methode - GET, POST, PUT, DELETE, PATCH (Standard: POST)body (object, optional): Request Body als JSON-Objektheaders (object, optional): Zusätzliche HTTP-Headerstatus: HTTP-Status-Codedata: Antwort-Datensuccess: ErfolgsstatusErstellt einen neuen n8n Workflow mit dem angegebenen Namen und Nodes.
name (string): Name des Workflowsnodes (array): Array von Workflow-Nodesactive (boolean, optional): Workflow aktivieren (Standard: false)tags (array, optional): Tags für den WorkflowworkflowId: ID des erstellten Workflowsname: Workflow-NamenodeCount: Anzahl der Nodesmessage: StatusmeldungLöst einen n8n Webhook-Workflow aus. Nützlich zum Starten von Automatisierungen.
webhookPath (string): Webhook-Pfad (z.B. 'reading', 'matching', 'chart-analysis')data (object): Daten, die an den Webhook gesendet werden sollensuccess: ErfolgsstatusexecutionId: ID der Ausführung (optional)message: StatusmeldungGeneriert ein Human Design Reading basierend auf Geburtsdaten. Ruft n8n Workflow auf.
birthDate (string): Geburtsdatum im Format YYYY-MM-DDbirthTime (string): Geburtszeit im Format HH:MMbirthPlace (string): GeburtsortuserId (string, optional): User-IDreadingType (enum, optional): Art des Readings - basic, detailed, business, relationship (Standard: basic)readingId: ID des generierten ReadingschartData: Chart-Datenreading: Reading-Textsuccess: ErfolgsstatusAnalysiert Human Design Chart-Daten und gibt detaillierte Informationen zurück.
chartData (object): Chart-Daten (Typ, Zentren, Channels, etc.)analysisType (enum, optional): Art der Analyse - type, centers, channels, gates, profile, full (Standard: full)analysis: Analyse-Ergebnissesummary: Zusammenfassungsuccess: ErfolgsstatusFührt Human Design Partner-Matching zwischen zwei Personen durch.
user1Chart (object): Chart-Daten der ersten Personuser2Chart (object): Chart-Daten der zweiten PersonmatchingType (enum, optional): Art des Matchings - compatibility, relationship, business, full (Standard: compatibility)userId1 (string, optional): User-ID der ersten PersonuserId2 (string, optional): User-ID der zweiten PersonmatchId: ID des MatchingscompatibilityScore: Kompatibilitäts-Score (0-100)analysis: Detaillierte Analyserecommendations: Empfehlungen als Arraysuccess: ErfolgsstatusSpeichert User-Daten über n8n Webhook. Nützlich für App-User-Login und Datenverarbeitung.
userId (string): User-IDdata (object): Zu speichernde DatendataType (enum, optional): Art der Daten - profile, chart, reading, preferences, custom (Standard: custom)success: ErfolgsstatusrecordId: ID des gespeicherten Records (optional)message: Statusmeldungnpm installconfig.jsn8n.baseUrl an Ihre n8n-Instanz anN8N_API_KEY als Umgebungsvariable, falls benötigtOder setzen Sie Umgebungsvariablen:
# Windows PowerShell
$env:N8N_BASE_URL="https://n8n.deinedomain.tld"
$env:N8N_API_KEY="your-api-key"
# Linux/Mac
export N8N_BASE_URL="https://n8n.deinedomain.tld"
export N8N_API_KEY="your-api-key"Für die Einrichtung auf einem Hetzner Server gibt es ein automatisches Setup-Script:
Schnellstart:
# Auf Hetzner Server
curl -o setup-hetzner.sh https://raw.githubusercontent.com/Heiko888/Connection-Key-MCP-Server/main/setup-hetzner.sh
chmod +x setup-hetzner.sh
sudo ./setup-hetzner.shWeitere Informationen:
Um den MCP-Server in Cursor IDE zu verwenden, müssen Sie ihn in den Cursor-Einstellungen konfigurieren:
{
"mcpServers": {
"mcp-server": {
"command": "node",
"args": [
"C:\\AppProgrammierung\\Projekte\\MCP_Connection_Key\\index.js"
],
"cwd": "C:\\AppProgrammierung\\Projekte\\MCP_Connection_Key"
}
}
}Wichtig: Passen Sie die Pfade an Ihren System an!
Die Datei mcp.json in diesem Projekt kann als Referenz dienen. Kopieren Sie den Inhalt in Ihre Cursor-Konfiguration.
Um den Server manuell zu testen:
npm startDer Server läuft dann über stdio und wartet auf Verbindungen von Cursor.
npm start ausnpm install ausgeführt wurdeUm ein neues Tool hinzuzufügen, verwenden Sie die registerTool-Methode:
server.registerTool(
"toolName",
{
title: "Tool Titel",
description: "Beschreibung des Tools",
inputSchema: z.object({
// Ihre Parameter hier
}),
outputSchema: z.object({
// Ihre Ausgabe hier
})
},
async (params) => {
// Ihre Tool-Logik hier
return {
content: [{ type: "text", text: "Ergebnis" }],
structuredContent: { /* strukturierte Daten */ }
};
}
);Der MCP-Server ist Teil einer größeren Architektur:
App
↓
Connection-Key Server ←→ MCP Server
↓ ↑
n8n ←———————————————————Komponenten:
Kommunikation:
// In Cursor können Sie jetzt sagen:
"Erstelle mir ein Human Design Reading für einen User, geboren am 1990-05-15 um 14:30 in Berlin"Der MCP-Server ruft dann automatisch den n8n Webhook auf und generiert das Reading.
"Erstelle einen n8n Workflow namens 'User Login Reading' mit 3 Nodes""Führe ein Partner-Matching zwischen User 123 und User 456 durch"config.js oder UmgebungsvariablenDieses Projekt ist für den persönlichen Gebrauch bestimmt.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.