Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Bigsy/maven-mcp-server
An MCP (Model Context Protocol) server that provides tools for checking Maven dependency versions.
https://github.com/Bigsy/maven-mcp-server
Last synced: about 2 months ago
JSON representation
An MCP (Model Context Protocol) server that provides tools for checking Maven dependency versions.
- Host: GitHub
- URL: https://github.com/Bigsy/maven-mcp-server
- Owner: Bigsy
- License: mit
- Created: 2024-12-17T21:09:30.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-12-17T22:02:54.000Z (about 2 months ago)
- Last Synced: 2024-12-17T22:21:16.148Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 8.79 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcp-servers - Maven - Tools to query latest Maven dependency information (Community Servers)
README
# Maven Dependencies MCP Server
An MCP (Model Context Protocol) server that provides tools for checking Maven dependency versions. This server enables LLMs to verify Maven dependencies and retrieve their latest versions from Maven Central Repository.
## Features
- Query the latest version of any Maven dependency
- Verify if a Maven dependency exists
- Check if a specific version of a dependency exists
- Real-time access to Maven Central Repository data## Installation
1. Clone or download this repository
2. Install dependencies:
```bash
npm install
```
3. Build the server:
```bash
npm run build
```## Configuration
Add the server to your MCP settings configuration file:
```json
{
"mcpServers": {
"maven-deps-server": {
"command": "node",
"args": ["/path/to/maven-deps-server/build/index.js"]
}
}
}
```## Available Tools
### get_maven_latest_version
Retrieves the latest version of a Maven dependency.
**Input Schema:**
```json
{
"type": "object",
"properties": {
"dependency": {
"type": "string",
"description": "Maven dependency in format \"groupId:artifactId\" (e.g. \"org.springframework:spring-core\")"
}
},
"required": ["dependency"]
}
```**Example Usage:**
```typescript
const result = await mcpClient.callTool("maven-deps-server", "get_maven_latest_version", {
dependency: "org.springframework:spring-core"
});
// Returns: "6.2.1"
```### check_maven_version_exists
Checks if a specific version of a Maven dependency exists.
**Input Schema:**
```json
{
"type": "object",
"properties": {
"dependency": {
"type": "string",
"description": "Maven dependency in format \"groupId:artifactId\" (e.g. \"org.springframework:spring-core\")"
},
"version": {
"type": "string",
"description": "Version to check (e.g. \"5.3.20\")"
}
},
"required": ["dependency", "version"]
}
```**Example Usage:**
```typescript
const result = await mcpClient.callTool("maven-deps-server", "check_maven_version_exists", {
dependency: "org.springframework:spring-core",
version: "5.3.20"
});
// Returns: "true" or "false"
```## Example Responses
### Latest Version Check
```typescript
// Input: org.springframework:spring-core
"6.2.1"// Input: org.apache.kafka:kafka-clients
"3.7.2"// Input: nonexistent.group:fake-artifact
"No Maven dependency found for nonexistent.group:fake-artifact"
```### Version Existence Check
```typescript
// Input: { dependency: "org.springframework:spring-core", version: "5.3.20" }
"true"// Input: { dependency: "org.springframework:spring-core", version: "0.0.1" }
"false"
```## Implementation Details
- Uses Maven Central's REST API to fetch dependency information
- Sorts results by timestamp to ensure the latest version is returned
- Includes error handling for invalid dependencies and API issues
- Returns clean, parseable version strings for valid dependencies
- Provides boolean responses for version existence checks## Error Handling
The server handles various error cases:
- Invalid dependency format
- Invalid version format
- Non-existent dependencies
- API connection issues
- Malformed responses## Development
To modify or extend the server:
1. Make changes to `src/index.ts`
2. Rebuild using `npm run build`
3. Restart the MCP server to apply changes## License
MIT