@codervisor/devlog-mcp
Version:
MCP server for managing development logs and working notes
60 lines (59 loc) • 2.03 kB
JavaScript
/**
* Configuration for MCP server
* Uses HTTP API client for secure and isolated access to devlog operations
*/
/**
* Load MCP server configuration from environment variables
*/
export function loadMCPConfig() {
const defaultProjectId = process.env.MCP_DEFAULT_PROJECT || 'default';
const baseUrl = process.env.MCP_WEB_API_URL || 'http://localhost:3200';
const timeout = process.env.MCP_WEB_API_TIMEOUT
? parseInt(process.env.MCP_WEB_API_TIMEOUT, 10)
: 30000;
const retries = process.env.MCP_WEB_API_RETRIES
? parseInt(process.env.MCP_WEB_API_RETRIES, 10)
: 3;
const autoDiscover = process.env.MCP_WEB_API_AUTO_DISCOVER !== 'false'; // Default to true
return {
defaultProjectId,
webApi: {
baseUrl,
timeout,
retries,
autoDiscover,
},
};
}
/**
* Validate MCP configuration
*/
export function validateMCPConfig(config) {
if (!config.webApi?.baseUrl) {
throw new Error('Web API base URL is required');
}
try {
new URL(config.webApi.baseUrl);
}
catch {
throw new Error(`Invalid web API base URL: ${config.webApi.baseUrl}`);
}
if (config.webApi?.timeout && config.webApi.timeout < 1000) {
throw new Error('Web API timeout must be at least 1000ms');
}
if (config.webApi?.retries && (config.webApi.retries < 0 || config.webApi.retries > 10)) {
throw new Error('Web API retries must be between 0 and 10');
}
}
/**
* Print configuration summary for debugging
*/
export function printConfigSummary(config) {
console.log('\n=== MCP Server Configuration ===');
console.log(`Default Project: ${config.defaultProjectId}`);
console.log(`Web API URL: ${config.webApi.baseUrl}`);
console.log(`Timeout: ${config.webApi.timeout}ms`);
console.log(`Retries: ${config.webApi.retries}`);
console.log(`Auto-discover: ${config.webApi.autoDiscover}`);
console.log('================================\n');
}