# validar-semver [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/encodi/validar-semver  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/validar-semver

## Description
Resuelve satisfaccion real de rangos semver (^1.2.3, ~2.0) contra una version. Pago x402/USDC.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "validar-semver": {
    "command": "npx",
    "args": ["-y","validar-semver"]
  }
}
```

## Documentation & README

# validar-semver

[![validar-semver MCP server](https://glama.ai/mcp/servers/encodi/validar-semver/badges/score.svg)](https://glama.ai/mcp/servers/encodi/validar-semver)

Remote MCP server (Cloudflare Workers) with one tool that resolves real semver range satisfaction:

- **`validate_semver`** — evaluates a version (e.g. `1.2.3`) against a list of ranges (`^1.2.3`, `~2.0`, `2.x`, `>=1.0.0 <2.0.0`, ...) using the same semver engine npm uses ([`semver`](https://www.npmjs.com/package/semver)), not a model guess about what should match.

No database, no persistent state: each call builds a fresh `McpServer` (see `createServer()` in `src/index.ts`) and is self-contained.

## Billing (x402)

Charges per call via [x402](https://x402.org) — real USDC payment on **Base mainnet**, against the Coinbase Developer Platform (CDP) facilitator. The payment travels inside the MCP JSON-RPC itself (`_meta`), not as an HTTP header; see `src/payments.ts`.

| Tool | Price |
|---|---|
| `validate_semver` | $0.01 USDC |

An unpaid `tools/call` returns `isError: true` with the `accepts` (network, amount, `payTo`) the client needs to pay and retry — not an unexplained exception.

## Structure

```
src/
  index.ts        # registers the tool in the McpServer and exposes the MCP HTTP handler
  payments.ts     # x402 billing on Base mainnet via the CDP facilitator
  tools/
    semver.ts       # pure logic for validate_semver (testable without Workers)
    semver.test.ts
scripts/
  dev-node.ts     # dev server that runs the handler in plain Node, no wrangler
```

## Running it locally

⚠️ **Note on `wrangler dev`**: the real Cloudflare Workers runtime (`workerd`) requires **macOS 13.5+**. If your Mac has an older version, `wrangler dev` (and `npm run dev`) will fail. This project includes a plain-Node shim that runs the exact same `fetch()` handler without needing `workerd`.

### 1. Install dependencies

```bash
npm install
```

### 2. Run the unit tests

```bash
npm test
```

### 3a. If your wrangler dev works (macOS 13.5+, Linux, Windows)

```bash
npm run dev
```

### 3b. If `wrangler dev` fails because of the macOS version

```bash
npm run dev:node
```

Starts at `http://localhost:8787/mcp`, reading CDP credentials from `~/.mcp-tools-factory-credentials.env` (shared across all tools in this factory).

### 4. Test with curl

```bash
# 1) initialize
curl -s -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl-test","version":"0.0.1"}}}'

# 2) tools/list
curl -s -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

# 3) tools/call — validate_semver
curl -s -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"validate_semver","arguments":{"version":"1.2.3","ranges":["^1.2.3","^1.3.0","~1.2.0","2.x"]}}}'
```

Responses come as Server-Sent Events (`event: message` + `data: {...}`); the `data:` line is the usual JSON-RPC response.

## Deploy and listings

Deployed at `https://validar-semver.encodari.workers.dev/mcp` (Cloudflare Workers). Published on the [official MCP registry](https://registry.modelcontextprotocol.io), [Smithery](https://smithery.ai), [mcp.so](https://mcp.so), and with an open PR to [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers).

## What it doesn't do (yet)

- Charges on Base mainnet with real money. To switch back to testnet (Base Sepolia, `eip155:84532`) during development, change `NETWORK` in `src/payments.ts`.
- No database or persistent state between calls (beyond the billing config, cached in memory per isolate — see `src/payments.ts`).

