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

b2bware-mcp

v1.0.0

Published

MCP server for the B2Bware Datahub API — exposes products, orders, customers and carts as MCP tools for Claude, Cursor, and any MCP-compatible AI client

Readme

B2Bware MCP Server

npm version smithery badge License: MIT

A Model Context Protocol (MCP) server that connects any MCP-compatible AI assistant directly to the B2Bware Datahub API. Search products, manage orders, look up customers — without leaving the chat.

Works with Claude Desktop, Cursor, Windsurf, Continue, claude.ai web, and any other MCP-compatible tool.


Quickstart (easiest — Smithery)

  1. Visit smithery.ai/server/b2bware-mcp
  2. Enter your B2Bware API key
  3. Click Add to Claude Desktop (or copy the config for your tool)

That's it — no terminal, no JSON editing.


Install via npx (Claude Desktop / Cursor)

No installation needed — npx downloads the latest version automatically.

Claude Desktop

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "b2bware": {
      "command": "npx",
      "args": ["-y", "b2bware-mcp@latest"],
      "env": {
        "B2BWARE_API_KEY": "your-api-key-here",
        "B2BWARE_LANGUAGE": "en"
      }
    }
  }
}

Cursor

Config file: ~/.cursor/mcp.json (or Cursor Settings → MCP)

{
  "mcpServers": {
    "b2bware": {
      "command": "npx",
      "args": ["-y", "b2bware-mcp@latest"],
      "env": {
        "B2BWARE_API_KEY": "your-api-key-here",
        "B2BWARE_LANGUAGE": "en"
      }
    }
  }
}

Windsurf / Continue / Other MCP clients

Same pattern — use command: "npx" with args: ["-y", "b2bware-mcp@latest"].


Remote (Hosted) — claude.ai Web & Non-Technical Users

If your AI client supports remote MCP servers (e.g. claude.ai web), point it to the hosted instance:

SSE URL:  https://mcp.b2bware.com/sse
Auth:     Authorization: Bearer YOUR_API_KEY

No Node.js required on the client machine.

In Claude Desktop (remote mode):

{
  "mcpServers": {
    "b2bware": {
      "url": "https://mcp.b2bware.com/sse",
      "headers": {
        "Authorization": "Bearer your-api-key-here"
      }
    }
  }
}

Features

| Hub | Tools | |---|---| | Product Hub | search_products, list_products, get_product, list_categories, get_category | | Order Hub | list_orders, get_order, upsert_cart, get_cart, checkout, list_shipping_methods, list_billing_methods | | Customer Hub | search_customers, get_customer, create_customer, list_customer_addresses, create_shipping_address, create_billing_address | | Auth Hub | login, register |

Example prompts

  • "Show me all orders from this week with status 'processing'"
  • "Find the product with SKU ABC-123 and its current price"
  • "List all customers from Vienna"
  • "Add 3 units of product 456 to a cart for customer 789 and check out"

Configuration

| Variable | Required | Description | |---|---|---| | B2BWARE_API_KEY | ✅ | Your B2Bware API key (Settings › API Keys) | | B2BWARE_BASE_URL | optional | API base URL (default: https://api.datahub.syncspider.com) | | B2BWARE_LANGUAGE | optional | Content language, e.g. de (default: en) |


Self-Hosting the HTTP Server

The HTTP/SSE server lets you host B2Bware MCP centrally so users don't need Node.js locally.

Railway (recommended)

Deploy on Railway

railway login
railway new
railway up

Set environment variables in Railway dashboard:

  • B2BWARE_LANGUAGE (optional default language)
  • PORT is set automatically by Railway

Each customer connects with their own API key — the server validates it per connection.

Docker

docker build -t b2bware-mcp .
docker run -p 3000:3000 b2bware-mcp

The /health endpoint returns 200 OK for load-balancer checks.

Fly.io

fly launch
fly deploy

Architecture

src/
├── index.ts           # stdio entry point (Claude Desktop / Cursor)
├── http-server.ts     # HTTP/SSE entry point (remote hosting)
├── create-server.ts   # MCP server factory (shared by both transports)
├── client.ts          # HTTP client (fetch-based)
├── config.ts          # Environment variable loading
├── types.ts           # Shared TypeScript types
└── hubs/
    ├── product-hub.ts
    ├── order-hub.ts
    ├── customer-hub.ts
    └── auth-hub.ts

Both transports use the same createB2BwareServer(config) factory — the stdio version reads the API key from environment variables once, while the HTTP version creates a fresh server instance per connection so each customer can use their own key.


Development

git clone https://github.com/syncspider/b2bware-mcp.git
cd b2bware-mcp
npm install
npm run build

# Run stdio server locally
B2BWARE_API_KEY=your-key node dist/index.js

# Run HTTP server locally
PORT=3000 node dist/http-server.js

License

MIT © SyncSpider GmbH