An open API service indexing awesome lists of open source software.

https://github.com/sammcj/mcp-package-version

An MCP server that provides LLMs with the latest stable package versions when coding
https://github.com/sammcj/mcp-package-version

ai javascript llm mcp node package python security tool typescript versioning versions

Last synced: 7 days ago
JSON representation

An MCP server that provides LLMs with the latest stable package versions when coding

Awesome Lists containing this project

README

        

# Package Version MCP Server

[![smithery badge](https://smithery.ai/badge/mcp-package-version)](https://smithery.ai/server/mcp-package-version)

An MCP server that provides tools for checking latest stable package versions from multiple package registries:

- npm (Node.js/JavaScript)
- PyPI (Python)
- Maven Central (Java)
- Go Proxy (Go)
- Swift Packages (Swift)
- AWS Bedrock (AI Models)
- Docker Hub (Container Images)
- GitHub Container Registry (Container Images)
- GitHub Actions

This server helps LLMs ensure they're recommending up-to-date package versions when writing code.

**IMPORTANT: As of version 2.0.0, mcp-package-version has been rewritten in Go, as such the configuration needs to be updated in your client - see the [Installation](#installation) section for more details.**

https://github.com/sammcj/mcp-package-version MCP server

## Screenshot

![tooling with and without mcp-package-version](images/with-without.jpg)

## Installation

Requirements:

- A modern go version installed (See [Go Installation](https://go.dev/doc/install))

Using `go install` (Recommended for MCP Client Setup):

```bash
go install github.com/sammcj/mcp-package-version/v2@HEAD
```

Then setup your client to use the MCP server. Assuming you've installed the binary with `go install github.com/sammcj/mcp-package-version/v2@HEAD` and your `$GOPATH` is `/Users/sammcj/go/bin`, you can provide the full path to the binary:

```json
{
"mcpServers": {
"package-version": {
"command": "/Users/sammcj/go/bin/mcp-package-version"
}
}
}
```

- For the Cline VSCode Extension this will be `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
- For Claude Desktop `~/Library/Application\ Support/Claude/claude_desktop_config.json`
- For GoMCP `~/.config/gomcp/config.yaml`

### Other Installation Methods

Or clone the repository and build it:

```bash
git clone https://github.com/sammcj/mcp-package-version.git
cd mcp-package-version
make
```

You can also run the server in a container:

```bash
docker run -p 18080:18080 ghcr.io/sammcj/mcp-package-version:latest
```

Note: If running in a container, you'll need to configure the client to use the URL instead of command, e.g.:

```json
{
"mcpServers": {
"package-version": {
"url": "http://localhost:18080",
}
}
}
```

#### Tip: Go Path

If `$GOPATH/bin` is not in your `PATH`, you'll need to provide the full path to the binary when configuring your MCP client (e.g. `/Users/sammcj/go/bin/mcp-package-version`).

If you haven't used go applications before and have only just installed go, you may not have a `$GOPATH` set up in your environment. This is important for any `go install` command to work correctly.

> **Understanding `$GOPATH`**
>
> The `go install` command downloads and compiles Go packages, placing the resulting binary executable in the `bin` subdirectory of your `$GOPATH`. By default, `$GOPATH` is > usually located at `$HOME/go` on Unix-like systems (including macOS). If you haven't configured `$GOPATH` explicitly, Go uses this default.
>
> The location `$GOPATH/bin` (e.g., `/Users/your_username/go/bin`) needs to be included in your system's `PATH` environment variable if you want to run installed Go binaries directly by name from any terminal location.
>
> You can add the following line to your shell configuration file (e.g., `~/.zshrc`, `~/.bashrc`) to set `$GOPATH` to the default if it's not already set, and ensure `$GOPATH/bin` is in your `PATH`:
>
> ```bash
> [ -z "$GOPATH" ] && export GOPATH="$HOME/go"; echo "$PATH" | grep -q ":$GOPATH/bin" || export PATH="$PATH:$GOPATH/bin"
> ```
>
> After adding this line, restart your terminal or MCP client.

## Usage

The server supports two transport modes: stdio (default) and SSE (Server-Sent Events).

### STDIO Transport (Default)

```bash
mcp-package-version
```

Or if you built it locally:

```bash
./bin/mcp-package-version
```

### SSE Transport

```bash
mcp-package-version --transport sse --port 18080 --base-url http://localhost
```

Or if you built it locally:

```bash
./bin/mcp-package-version --transport sse --port 18080 --base-url http://localhost
```

#### Command-line Options

- `--transport`, `-t`: Transport type (stdio or sse). Default: stdio
- `--port`: Port to use for SSE transport. Default: 18080
- `--base-url`: Base URL for SSE transport. Default: http://localhost

## Tools

### NPM Packages

Check the latest versions of NPM packages:

```json
{
"name": "check_npm_versions",
"arguments": {
"dependencies": {
"react": "^17.0.2",
"react-dom": "^17.0.2",
"lodash": "4.17.21"
},
"constraints": {
"react": {
"majorVersion": 17
}
}
}
}
```

### Python Packages (requirements.txt)

Check the latest versions of Python packages from requirements.txt:

```json
{
"name": "check_python_versions",
"arguments": {
"requirements": [
"requests==2.28.1",
"flask>=2.0.0",
"numpy"
]
}
}
```

### Python Packages (pyproject.toml)

Check the latest versions of Python packages from pyproject.toml:

```json
{
"name": "check_pyproject_versions",
"arguments": {
"dependencies": {
"dependencies": {
"requests": "^2.28.1",
"flask": ">=2.0.0"
},
"optional-dependencies": {
"dev": {
"pytest": "^7.0.0"
}
},
"dev-dependencies": {
"black": "^22.6.0"
}
}
}
}
```

### Java Packages (Maven)

Check the latest versions of Java packages from Maven:

```json
{
"name": "check_maven_versions",
"arguments": {
"dependencies": [
{
"groupId": "org.springframework.boot",
"artifactId": "spring-boot-starter-web",
"version": "2.7.0"
},
{
"groupId": "com.google.guava",
"artifactId": "guava",
"version": "31.1-jre"
}
]
}
}
```

### Java Packages (Gradle)

Check the latest versions of Java packages from Gradle:

```json
{
"name": "check_gradle_versions",
"arguments": {
"dependencies": [
{
"configuration": "implementation",
"group": "org.springframework.boot",
"name": "spring-boot-starter-web",
"version": "2.7.0"
},
{
"configuration": "testImplementation",
"group": "junit",
"name": "junit",
"version": "4.13.2"
}
]
}
}
```

### Go Packages

Check the latest versions of Go packages from go.mod:

```json
{
"name": "check_go_versions",
"arguments": {
"dependencies": {
"module": "github.com/example/mymodule",
"require": [
{
"path": "github.com/gorilla/mux",
"version": "v1.8.0"
},
{
"path": "github.com/spf13/cobra",
"version": "v1.5.0"
}
]
}
}
}
```

### Docker Images

Check available tags for Docker images:

```json
{
"name": "check_docker_tags",
"arguments": {
"image": "nginx",
"registry": "dockerhub",
"limit": 5,
"filterTags": ["^1\\."],
"includeDigest": true
}
}
```

### AWS Bedrock Models

List all AWS Bedrock models:

```json
{
"name": "check_bedrock_models",
"arguments": {
"action": "list"
}
}
```

Search for specific AWS Bedrock models:

```json
{
"name": "check_bedrock_models",
"arguments": {
"action": "search",
"query": "claude",
"provider": "anthropic"
}
}
```

Get the latest Claude Sonnet model:

```json
{
"name": "get_latest_bedrock_model",
"arguments": {}
}
```

### Swift Packages

Check the latest versions of Swift packages:

```json
{
"name": "check_swift_versions",
"arguments": {
"dependencies": [
{
"url": "https://github.com/apple/swift-argument-parser",
"version": "1.1.4"
},
{
"url": "https://github.com/vapor/vapor",
"version": "4.65.1"
}
],
"constraints": {
"https://github.com/apple/swift-argument-parser": {
"majorVersion": 1
}
}
}
}
```

### GitHub Actions

Check the latest versions of GitHub Actions:

```json
{
"name": "check_github_actions",
"arguments": {
"actions": [
{
"owner": "actions",
"repo": "checkout",
"currentVersion": "v3"
},
{
"owner": "actions",
"repo": "setup-node",
"currentVersion": "v3"
}
],
"includeDetails": true
}
}
```

## Releases and CI/CD

This project uses GitHub Actions for continuous integration and deployment. The workflow automatically:

1. Builds and tests the application on every push to the main branch and pull requests
2. Creates a release when a tag with the format `v*` (e.g., `v1.0.0`) is pushed
3. Builds and pushes Docker images to GitHub Container Registry

### Docker Images

Docker images are available from GitHub Container Registry:

```bash
docker pull ghcr.io/sammcj/mcp-package-version:latest
```

Or with a specific version:

```bash
docker pull ghcr.io/sammcj/mcp-package-version:v2.0.0
```

## License

[MIT](LICENSE)