W3Ship MCP Server

W3Ship MCP Server

Primary purpose is to link public key identity to physical address anonymously. But from there TMF forum implementation of cart and ordering and more.

Category
Visit Server

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, sell items P2P, and distribute promotional items with in-store pickup โ€” 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 & Pickup (Updated in v1.6.0)

Tool Description
claim_promo Claim a FREE promotional listing. Supports shipping or in-store pickup. One per wallet.

New in v1.6.0: In-Store Pickup

Promo listings now support three fulfillment modes:

Mode How It Works
ship Customer pays shipping, item mailed (original flow)
pickup Customer picks up at a physical location โ€” zero cost
both Customer chooses shipping or pickup

Create a pickup promo:

create_listing(
  isPromo: true,
  fulfillmentType: "pickup",
  pickupLocations: [{
    id: "qbm",
    name: "Quaker Bridge Mall",
    address: "3320 Brunswick Pike, Lawrenceville NJ",
    hours: "Mon-Sat 10am-9pm",
    instructions: "Visit the kiosk near the food court. Show your claim ID."
  }]
)

Claim with pickup:

claim_promo(listingId: "...", fulfillmentChoice: "pickup", pickupLocationId: "qbm")

The AI returns the pickup location, hours, and instructions. No address registration needed for pickup claims โ€” only wallet identity is required.


๐Ÿ” 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 Conversations

Shopping & Booking

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"

Claiming a Promo with Pickup (NEW in v1.6.0)

You:    "Any free promos I can grab?"
Claude: [calls search_listings with category: promotional]
        "There's a free VR Experience Card available!
         You can pick it up at Quaker Bridge Mall."

You:    "I'll take it"
Claude: [calls claim_promo with fulfillmentChoice: pickup]
        "Claimed! Here's your pickup info:
         ๐Ÿ“ Quaker Bridge Mall, Lawrenceville NJ
         ๐Ÿ• Mon-Sat 10am-9pm
         ๐ŸŽŸ๏ธ Claim ID: CLM-MMB1ZW3W-W98I
         Show your claim ID at the VR kiosk near the food court."

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


๐Ÿ“ฐ Press


๐Ÿ”— Links


๐Ÿ“„ License

MIT โ€” see LICENSE

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured