Don't add task-master-mcp to mcp.json if it already exists (#169)

This commit is contained in:
Joe Danziger
2025-04-11 12:07:58 -04:00
committed by GitHub
parent 140bd3d265
commit 30e6d47577
5 changed files with 27 additions and 7 deletions

View File

@@ -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'];