streamable-httpMITupdated 28d ago
Remote MCP server (Cloudflare Workers) with one tool that resolves real semver range satisfaction:
validar semver 能做什么?
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), 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 — 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
npm install
2. Run the unit tests
npm test
3a. If your wrangler dev works (macOS 13.5+, Linux, Windows)
npm run dev
3b. If wrangler dev fails because of the macOS version
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
# 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, Smithery, mcp.so, and with an open PR to 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, changeNETWORKinsrc/payments.ts. - No database or persistent state between calls (beyond the billing config, cached in memory per isolate — see
src/payments.ts).
安装
把 validar semver 添加到你的客户端。选择你正在使用的那个。
claude mcp add --transport http validar-semver https://validar-semver.encodari.workers.dev/mcpcodex mcp add validar-semver --url https://validar-semver.encodari.workers.dev/mcp{
"mcpServers": {
"validar-semver": {
"url": "https://validar-semver.encodari.workers.dev/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"validar-semver": {
"type": "http",
"url": "https://validar-semver.encodari.workers.dev/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"validar-semver": {
"url": "https://validar-semver.encodari.workers.dev/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"validar-semver": {
"serverUrl": "https://validar-semver.encodari.workers.dev/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
评分
39 / 100
不完整
- 文档21/25
- 维护19/25
- 可信度13/20
- 能力0/15
- 安装体验12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 20 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
版本历史
| 版本 | 发布于 |
|---|---|
| 1.0.1最新 | 2026年8月11日 |
| 1.0.0 | 2026年8月11日 |