npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

w3ship-mcp-server

v1.5.0

Published

W3Ship Commerce MCP Server — AI-powered shopping cart, orders, shipment tracking & VR booking via Model Context Protocol. Passwordless commerce using cryptographic identity (SLH-DSA / ECDSA).

Readme

W3Ship Commerce MCP Server

Let AI shop for you — with no passwords, no logins, just cryptographic identity.

W3Ship is the first MCP (Model Context Protocol) server for AI-powered commerce. It gives AI agents like Claude, Cursor, and VS Code Copilot the ability to create shopping carts, place orders, track shipments, book sessions, swap tokens via Uniswap, and sell items P2P — all using cryptographic identity (SLH-DSA / ECDSA) instead of passwords.

Built on TMF Open API standards (TMF663, TMF622, TMF621) for interoperability.


⚡ Quick Start

Install via npx (recommended)

No installation required — just configure your AI client:

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "w3ship": {
      "command": "npx",
      "args": ["-y", "w3ship-mcp-server"],
      "env": {
        "VALKEY_HOST": "localhost",
        "VALKEY_PORT": "6379"
      }
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "w3ship": {
      "command": "npx",
      "args": ["-y", "w3ship-mcp-server"],
      "env": {
        "VALKEY_HOST": "localhost",
        "VALKEY_PORT": "6379"
      }
    }
  }
}

VS Code (.vscode/mcp.json):

{
  "servers": {
    "w3ship": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "w3ship-mcp-server"],
      "env": {
        "VALKEY_HOST": "localhost",
        "VALKEY_PORT": "6379"
      }
    }
  }
}

Prerequisites

  • Node.js 18+
  • Redis / Valkey instance (for cart, order, and shipment storage)
    • Local: docker run -p 6379:6379 redis:latest
    • Or any Redis-compatible service (AWS ElastiCache, Upstash, etc.)

🛠️ Tools (22 total)

🛒 Shopping Cart (TMF663)

| Tool | Description | |:---|:---| | create_cart | Create a shopping cart. Uses W3SHIP_PUBLIC_KEY automatically if configured | | get_cart | Retrieve a cart by its public key ID | | add_item | Add an item (product offering + quantity) to a cart | | delete_cart | Delete a shopping cart |

📦 Orders (TMF622)

| Tool | Description | |:---|:---| | create_order | Convert a cart into a confirmed order and initiate fulfillment | | get_order | Retrieve order details by order ID |

🚚 Shipment Tracking (TMF621)

| Tool | Description | |:---|:---| | track_shipment | Track delivery status with simulated real-time updates |

📅 Session Booking

| Tool | Description | |:---|:---| | get_available_slots | Get available session time slots by location and date (VR, fitness, dining, salon, etc.) | | hold_slot | Reserve a session slot (held for 10 minutes pending payment) | | list_bookings | List confirmed bookings, optionally filtered by location/date |

🔐 Identity Lookup

| Tool | Description | |:---|:---| | ship_address | Retrieve a physical shipping address using a public key + timed signature |

Identity lookups are forwarded to the centralized W3Ship API (w3ship.com/api/identity). Signature verification and database access happen server-side — no AWS credentials needed on your end.

🧪 Setup & Demo

| Tool | Description | |:---|:---| | generate_demo_key | Generate a demo ECDSA key pair for testing — try the commerce flow without a wallet | | get_identity | Show the currently configured identity or instructions on how to set one up |

🔄 Uniswap Swap (NEW in v1.3.0)

| Tool | Description | |:---|:---| | get_swap_quote | Get a swap quote from Uniswap — returns output amount, gas estimate, price impact, and routing path. Supports V2, V3, V4, and UniswapX. Default chain: Base (8453). | | check_token_approval | Check if a token is approved for swapping on Uniswap. Returns approval transaction data if needed. |

Requires UNISWAP_API_KEY — get yours free at developers.uniswap.org. Built-in token addresses for Base chain: ETH, USDC, USDT, DAI, WETH. Pass any ERC-20 contract address for other tokens.

🏪 P2P Marketplace (NEW in v1.4.0)

| Tool | Description | |:---|:---| | create_listing | Sell anything — no merchant onboarding needed. Set title, price, currency, and your wallet address for payment. Listings expire after 30 days by default. | | search_listings | Browse active listings by category (electronics, gifts, clothing, etc.) or keyword search. | | get_listing | Get full details of a listing: description, price, seller, payment address, shipping regions. | | remove_listing | Remove your own listing. Seller address must match. |

Categories: electronics, clothing, collectibles, home, sports, gifts, books, other. Anyone with a wallet address is a merchant.

💳 Payment & Fulfillment (NEW in v1.4.0)

| Tool | Description | |:---|:---| | confirm_payment | Submit an on-chain transaction hash to verify payment. Supports Base (8453) and Tempo chains. Updates order to "paid". | | add_tracking | Seller provides real carrier tracking (UPS, FedEx, USPS, DHL, etc.) after shipping the item. |

P2P orders auto-detect listing items (LST-* prefix), fill in seller wallet address, and set payment status to awaiting_payment. After payment, sellers use add_tracking to provide shipping info.

🎁 Promotional Items (NEW in v1.4.0)

| Tool | Description | |:---|:---| | claim_promo | Claim a FREE promotional listing. One per address. Must have a registered W3Ship/Dah.mx identity. |

Create promos with create_listing(isPromo: true, shippingCost: 8.99, promoQuantity: 500). Price auto-sets to $0. Customers pay shipping only. Anti-spam: seller must be identity-verified, buyer must be registered, one claim per physical address.


🔐 Cryptographic Identity

W3Ship uses cryptographic identity — no usernames, no passwords, no accounts. Three identity types are supported:

| Scheme | Key Size | Use Case | |:---|:---|:---| | EVM Address | 20 bytes (40 hex chars) | MetaMask / any Ethereum wallet | | ECDSA (P-256) | 33 bytes (compressed) / 65 bytes (uncompressed) | Standard web3 wallets | | SLH-DSA | 32 bytes (64 hex chars) | Post-quantum secure identity (Dah.mx) |

Your wallet address or public key IS your cart ID. No sign-up required.


⚙️ Configuration

Environment Variables

| Variable | Required | Default | Description | |:---|:---|:---|:---| | W3SHIP_PUBLIC_KEY | No | — | Your wallet address or public key (hex). Set once and all tools use it automatically | | UNISWAP_API_KEY | No | — | Uniswap Trading API key for swap quotes. Get yours at developers.uniswap.org | | VALKEY_HOST | No | localhost | Redis/Valkey host | | VALKEY_PORT | No | 6379 | Redis/Valkey port | | VALKEY_PASSWORD | No | — | Redis/Valkey password (if auth enabled) | | W3SHIP_API_URL | No | https://w3ship.com | Base URL for the W3Ship API (identity, session booking) |

Getting Your Key

  • MetaMask users: Just copy your Ethereum address (e.g. 0x1234...abcd) — it works directly
  • Dah.mx users: Settings → AI Assistant Setup → Copy key
  • Demo/Testing: Don't set a key — use generate_demo_key in your AI assistant instead

🏗️ Architecture

The MCP server is a thin client that combines local cart/order storage with centralized W3Ship services:

┌─────────────────────────────────────────────┐
│  AI Client (Claude / Cursor / VS Code)      │
│  "Create a cart and book a fitness session"  │
└──────────────────┬──────────────────────────┘
                   │ stdio (MCP Protocol)
┌──────────────────▼──────────────────────────┐
│  W3Ship MCP Server (your machine)           │
│                                              │
│  Local Storage (Redis/Valkey):               │
│  ┌──────────┐ ┌─────────┐ ┌──────────────┐  │
│  │ Cart     │ │ Orders  │ │ Shipment     │  │
│  │ (TMF663) │ │ (TMF622)│ │ (TMF621)     │  │
│  └──────────┘ └─────────┘ └──────────────┘  │
│                                              │
│  Centralized API (w3ship.com):               │
│  ┌──────────────┐  ┌─────────────────────┐  │
│  │ Booking      │  │ Identity Lookup     │  │
│  │ /api/slots   │  │ /api/identity       │  │
│  └──────────────┘  └─────────────────────┘  │
└──────────────────────────────────────────────┘
  • Commerce (cart, order, shipment) → stored locally in your Redis
  • Identity (address lookup) → forwarded to w3ship.com API
  • Session Booking → forwarded to w3ship.com API
  • No AWS credentials needed. No cloud config required.

💡 Example Conversation

You:    "I want to shop on W3Ship"
Claude: [calls get_identity — no key configured]
        [calls generate_demo_key — creates a test identity]
        [calls create_cart with the demo key]
        "You're all set! I've created a shopping cart for you.
         What would you like to buy?"

You:    "Book me a VR session for this afternoon"
Claude: [calls get_available_slots for today]
        "Here are today's sessions at Downtown VR:
         • 2:00 PM - $45 (3 spots left)
         • 4:00 PM - $45 (5 spots left)
         Which time works?"

You:    "4 PM"
Claude: [calls hold_slot → add_item]
        "Slot held for 10 minutes. Added to your cart."

You:    "Place the order"
Claude: [calls create_order]
        "Order confirmed! Tracking: TRK-8392751046"

Tip: For production use, set your real wallet key via W3SHIP_PUBLIC_KEY in your MCP config. See Getting Your Public Key above.


🔗 Links


📄 License

MIT — see LICENSE