Don't add task-master-mcp to mcp.json if it already exists (#169)
This commit is contained in:
@@ -909,7 +909,7 @@ function setupMCPConfiguration(targetDir, projectName) {
|
||||
const newMCPServer = {
|
||||
'task-master-ai': {
|
||||
command: 'npx',
|
||||
args: ['-y', '--package', 'task-master-ai', 'task-master-mcp'],
|
||||
args: ['-y', 'task-master-mcp'],
|
||||
env: {
|
||||
ANTHROPIC_API_KEY: '%ANTHROPIC_API_KEY%',
|
||||
PERPLEXITY_API_KEY: '%PERPLEXITY_API_KEY%',
|
||||
@@ -925,7 +925,10 @@ function setupMCPConfiguration(targetDir, projectName) {
|
||||
|
||||
// Check if mcp.json already exists
|
||||
if (fs.existsSync(mcpJsonPath)) {
|
||||
log('info', 'MCP configuration file already exists, updating...');
|
||||
log(
|
||||
'info',
|
||||
'MCP configuration file already exists, checking for existing task-master-mcp...'
|
||||
);
|
||||
try {
|
||||
// Read existing config
|
||||
const mcpConfig = JSON.parse(fs.readFileSync(mcpJsonPath, 'utf8'));
|
||||
@@ -935,6 +938,23 @@ function setupMCPConfiguration(targetDir, projectName) {
|
||||
mcpConfig.mcpServers = {};
|
||||
}
|
||||
|
||||
// Check if any existing server configuration already has task-master-mcp in its args
|
||||
const hasMCPString = Object.values(mcpConfig.mcpServers).some(
|
||||
(server) =>
|
||||
server.args &&
|
||||
server.args.some(
|
||||
(arg) => typeof arg === 'string' && arg.includes('task-master-mcp')
|
||||
)
|
||||
);
|
||||
|
||||
if (hasMCPString) {
|
||||
log(
|
||||
'info',
|
||||
'Found existing task-master-mcp configuration in mcp.json, leaving untouched'
|
||||
);
|
||||
return; // Exit early, don't modify the existing configuration
|
||||
}
|
||||
|
||||
// Add the task-master-ai server if it doesn't exist
|
||||
if (!mcpConfig.mcpServers['task-master-ai']) {
|
||||
mcpConfig.mcpServers['task-master-ai'] = newMCPServer['task-master-ai'];
|
||||
|
||||
Reference in New Issue
Block a user