Skip to main content
Glama

1MCP Server

update-version.cjs3.89 kB
#!/usr/bin/env node const fs = require('fs'); const path = require('path'); const { execSync } = require('child_process'); /** * Robust version update script for 1MCP * Updates version in both package.json and src/constants/mcp.ts * * Usage: node scripts/update-version.cjs <version> * Example: node scripts/update-version.cjs 1.2.3 */ function updateVersion(version) { // Validate version format (semver-like) const versionRegex = /^\d+\.\d+\.\d+(-[\w.]+)?$/; if (!versionRegex.test(version)) { throw new Error(`Invalid version format: ${version}. Expected format: X.Y.Z or X.Y.Z-suffix`); } console.log(`\n🔄 Updating version to ${version}...`); // Check current package.json version const packageJsonPath = path.join(__dirname, '..', 'package.json'); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')); const currentPackageVersion = packageJson.version; // 1. Update package.json using pnpm console.log('\n📦 Updating package.json...'); console.log(` Current version: ${currentPackageVersion}`); console.log(` New version: ${version}`); if (currentPackageVersion === version) { console.log('⚠️ Version is already correct, no changes needed'); } else { try { execSync(`pnpm version ${version} --no-git-tag-version`, { stdio: 'inherit' }); console.log('✅ package.json updated successfully'); } catch (error) { throw new Error(`Failed to update package.json: ${error.message}`); } } // 2. Update src/constants/mcp.ts console.log('\n📝 Updating src/constants/mcp.ts...'); const constantsPath = path.join(__dirname, '..', 'src', 'constants', 'mcp.ts'); if (!fs.existsSync(constantsPath)) { throw new Error(`Constants file not found: ${constantsPath}`); } let content = fs.readFileSync(constantsPath, 'utf-8'); // Robust regex that handles single/double quotes and varying whitespace const regex = /export const MCP_SERVER_VERSION\s*=\s*['"]([^'"]+)['"]/; const match = content.match(regex); if (!match) { throw new Error('MCP_SERVER_VERSION constant not found in mcp.ts'); } const oldVersion = match[1]; console.log(` Current version: ${oldVersion}`); console.log(` New version: ${version}`); // Replace the version const updatedContent = content.replace(regex, `export const MCP_SERVER_VERSION = '${version}'`); // Check if content changed if (updatedContent === content) { if (oldVersion === version) { console.log(`⚠️ Version is already ${version}, no changes needed`); } else { throw new Error('Version replacement failed - content unchanged'); } } else { // Write back the file only if content changed fs.writeFileSync(constantsPath, updatedContent, 'utf-8'); // Final verification const verifyContent = fs.readFileSync(constantsPath, 'utf-8'); const verifyMatch = verifyContent.match(regex); if (!verifyMatch || verifyMatch[1] !== version) { throw new Error( `Version verification failed. Expected ${version}, got ${verifyMatch ? verifyMatch[1] : 'nothing'}`, ); } console.log('✅ mcp.ts updated and verified successfully'); } // 3. Summary console.log('\n✨ Version update complete!'); console.log(` package.json: ${version}`); console.log(` mcp.ts: ${version}`); console.log(''); } // Main execution if (require.main === module) { const version = process.argv[2]; if (!version) { console.error('❌ Error: Version argument required'); console.error('Usage: node scripts/update-version.cjs <version>'); console.error('Example: node scripts/update-version.cjs 1.2.3'); process.exit(1); } try { updateVersion(version); process.exit(0); } catch (error) { console.error(`\n❌ Error: ${error.message}`); process.exit(1); } } module.exports = { updateVersion };

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/1mcp-app/agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server