falkordb-mcpserver
Version:
Model Context Protocol server for FalkorDB graph databases - enables AI assistants to query and manage graph data using natural language
72 lines (71 loc) • 2.06 kB
JavaScript
/**
* Utility to parse FalkorDB connection strings
*/
/**
* Parse a FalkorDB connection string
* Format: falkordb://[username:password@]host:port
*
* @param connectionString The connection string to parse
* @returns Parsed connection options
*/
export function parseFalkorDBConnectionString(connectionString) {
try {
// Default values
const defaultOptions = {
host: 'localhost',
port: 6379
};
// Handle empty or undefined input
if (!connectionString) {
return defaultOptions;
}
// Remove protocol prefix if present
let cleanString = connectionString;
if (cleanString.startsWith('falkordb://')) {
cleanString = cleanString.substring('falkordb://'.length);
}
// Parse authentication if present
let auth = '';
let hostPort = cleanString;
if (cleanString.includes('@')) {
const parts = cleanString.split('@');
auth = parts[0];
hostPort = parts[1];
}
// Parse host and port
let host = 'localhost';
let port = 6379;
if (hostPort.includes(':')) {
const parts = hostPort.split(':');
host = parts[0] || 'localhost';
port = parseInt(parts[1], 10) || 6379;
}
else {
host = hostPort || 'localhost';
}
// Parse username and password
let username = undefined;
let password = undefined;
if (auth && auth.includes(':')) {
const parts = auth.split(':');
username = parts[0] || undefined;
password = parts[1] || undefined;
}
else if (auth) {
password = auth;
}
return {
host,
port,
username,
password
};
}
catch (error) {
console.error('Error parsing connection string:', error);
return {
host: 'localhost',
port: 6379
};
}
}