Skip to main content
Glama

maven-mcp-server

#!/usr/bin/env node import axios from 'axios'; // Test configuration const testDependencies = [ { name: 'kafka-clients', dependency: 'org.apache.kafka:kafka-clients', description: 'Should return the most recently updated version' }, { name: 'google-api-services-drive', dependency: 'com.google.apis:google-api-services-drive', description: 'Complex version format test' }, { name: 'spring-core', dependency: 'org.springframework:spring-core', description: 'Standard version format test' } ]; async function testMavenAPI() { console.log('Testing Maven Central API directly...\n'); for (const test of testDependencies) { console.log(`\nTesting ${test.name}:`); console.log(`Dependency: ${test.dependency}`); console.log(`Description: ${test.description}`); try { // Parse dependency const [groupId, artifactId] = test.dependency.split(':'); // Test getting the most recently updated version const response = await axios.get('https://search.maven.org/solrsearch/select', { params: { q: `g:"${groupId}" AND a:"${artifactId}"`, core: 'gav', rows: 5, wt: 'json', sort: 'timestamp desc' } }); if (response.data.response.docs.length > 0) { const mostRecent = response.data.response.docs[0]; console.log(`\nMost recently updated version: ${mostRecent.v}`); console.log(`Last updated: ${new Date(mostRecent.timestamp).toISOString()}`); console.log('\nTop 5 versions by last updated date:'); response.data.response.docs.forEach((doc, index) => { console.log(`${index + 1}. ${doc.v} - ${new Date(doc.timestamp).toISOString().split('T')[0]}`); }); } else { console.log('No versions found!'); } } catch (error) { console.error(`Error testing ${test.name}:`, error.message); } } console.log('\n\nSummary:'); console.log('The server now returns the most recently updated version, not necessarily the highest semantic version.'); console.log('Users who need specific versions can use list_maven_versions to see all versions sorted by update date.'); } // Test the pre-release filtering functionality async function testPreReleaseFiltering() { console.log('\n\n=== Testing Pre-release Filtering ===\n'); // Function to test if version is pre-release (same as in server) const isPreReleaseVersion = (version) => { const preReleasePattern = /-(alpha|a|beta|b|milestone|m|rc|cr|snapshot)/i; return preReleasePattern.test(version); }; // Test with Spring Core (has M6 milestone versions) console.log('Testing Spring Core pre-release filtering:'); try { const response = await axios.get('https://search.maven.org/solrsearch/select', { params: { q: 'g:"org.springframework" AND a:"spring-core"', core: 'gav', rows: 10, wt: 'json', sort: 'timestamp desc', } }); if (response.data.response.docs.length > 0) { console.log('\nAll versions (top 5):'); response.data.response.docs.slice(0, 5).forEach((doc, i) => { const badge = isPreReleaseVersion(doc.v) ? ' [PRE-RELEASE]' : ' [STABLE]'; console.log(`${i + 1}. ${doc.v} (${new Date(doc.timestamp).toISOString().split('T')[0]})${badge}`); }); // Filter stable versions const stableVersions = response.data.response.docs.filter(doc => !isPreReleaseVersion(doc.v)); console.log(`\n✅ Latest stable release (filtered): ${stableVersions[0]?.v || 'None found'}`); console.log(`⚠️ Latest overall (unfiltered): ${response.data.response.docs[0].v}`); } } catch (error) { console.error('Error testing Spring Core:', error.message); } // Test regex pattern console.log('\n=== Pre-release Pattern Tests ==='); const versionTests = [ { version: '7.0.0-M6', expected: true }, { version: '6.2.8', expected: false }, { version: '3.1.0-SNAPSHOT', expected: true }, { version: '2.5.0-RC1', expected: true }, { version: '1.0.0-alpha', expected: true }, { version: '4.0.0', expected: false } ]; versionTests.forEach(test => { const result = isPreReleaseVersion(test.version); const status = result === test.expected ? '✅' : '❌'; console.log(`${status} ${test.version} -> ${result}`); }); } // Run both test suites async function runAllTests() { await testMavenAPI(); await testPreReleaseFiltering(); } runAllTests().catch(console.error);

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/Bigsy/maven-mcp-server'

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