open-index/open-npm huggingface dataset:
npm package: @shoppercontextprotocol/local-mcp-server
Description: Local MCP server for Shopper Context Protocol
Author: SCP Contributors
Latest version: 0.1.0

# SCP Local MCP Server

Local MCP server for Shopper Context Protocol (SCP).

## Installation

```bash
npm install
npm run build
```

## Usage

### With Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "scp": {
      "command": "node",
      "args": ["/path/to/local_mcp/dist/index.js"]
    }
  }
}
```

### Direct Usage

```bash
npm start
```

## Development

```bash
npm run dev    # Watch mode
npm run build  # Production build
npm test       # Run tests
```

## Configuration

Configuration file: `~/.scp/config.json`

```json
{
  "dns_resolver": "1.1.1.1",
  "dns_cache_ttl": 86400,
  "poll_interval": 2,
  "max_poll_attempts": 150,
  "token_refresh_threshold": 300,
  "request_timeout": 30000,
  "demo_mode": true,
  "demo_endpoint": "http://localhost:8787/v1"
}
```

### Demo Mode

By default, demo mode is enabled and all SCP requests will be directed to `http://localhost:8787/v1`. This is useful for local testing and demos without needing to set up DNS records or configure domain discovery.

To disable demo mode and use real DNS-based discovery:

1. Edit `~/.scp/config.json` and set `"demo_mode": false`
2. Or delete the config file - it will regenerate with demo mode enabled by default

### Environment Variable Override

You can also override the endpoint for all requests using an environment variable:

```bash
SCP_TEST_ENDPOINT=http://localhost:8787/v1 node dist/index.js
```

This takes precedence over both demo mode and DNS discovery.

## Data Storage

- Tokens: `~/.scp/tokens.db` (SQLite, encrypted)
- Config: `~/.scp/config.json`

## MCP Tools

- `scp_authorize` - Authorize access to a merchant
- `scp_check_authorization` - Check authorization status
- `scp_revoke_authorization` - Revoke access to a merchant
- `scp_discover` - Discover SCP endpoint for a domain

## MCP Resources

- `scp://{domain}/orders` - Order history
- `scp://{domain}/loyalty` - Loyalty status
- `scp://{domain}/offers` - Active offers
- `scp://{domain}/preferences` - Customer preferences
- `scp://{domain}/intents` - Shopping intents
npm package: @shopperlabs/shopper-types
Description: TypeScript types for Shopper
Author: Arthur Monney
Latest version: 2.7.2

<p align="center">
  <img src="https://github.com/shopperlabs/art/blob/main/logomark.svg" alt="Shopper Logo" height="150" />
</p>

# Shopper Types definitions

TypeScript types derived from the OpenAPI Spec (OAS) to be used in API clients for Shopper.

## Install

```bash
npm install @shopper/types
# or
yarn add @shopper/types
```

## Usage

```typescript
import type { Product, Order, Customer } from '@shopper/types'

const product: Product = {
  id: 1,
  name: 'My Product',
  slug: 'my-product',
  // ...
}
```

## Available Types

### Models
- `Product`
- `ProductVariant`
- `Category`
- `Brand`
- `Collection`
- `Order`
- `OrderItem`
- `Customer`
- `Address`
- `Inventory`
- `Discount`
- `Review`
- `Channel`
- `Currency`
- `PaymentMethod`
- `Attribute`
- `AttributeValue`
- `Media`

### Enums
- `ProductType`
- `CollectionType`
- `CollectionCondition`
- `AddressType`
- `GenderType`
- `Weight`
- `Length`
- `Volume`

### Common Interfaces
- `Entity`
- `DateEntity`
- `Price`
- `ShippingFields`
- `SEOFields`
npm package: @shoppersshop/api-js
Description: Javascript Library for interacting with the SHOP API
Author: SHOP team
Latest version: 1.0.4

# SHOP API.js

## Overview

API.js is a JavaScript library that helps SHOP Protocol developers create
powerful, customized storefronts on top of the SHOP Protocol API. It does
this by creating an easy abstraction of available API operations and by 
providing convenient helper methods.

This API layer is framework agnostic as we don't to impose a framework decision
such as React or Angular on customers.

API.js will be build in ES6 and transpiled to ES5. It won't use ES7 features.

[API documentation](https://shoppersshop.github.io/api-js/)

# Installation

```
$ yarn add @shoppersshop/api-js
```

# Usage

```
import ShopAPI from `@shoppersshop/api-js`
// args could include API domain & path data, public_key, etc
const api = new ShopAPI({ args })
```

# Contributing

Thanks for considering to help out with our source code! We operate on an open 
contributor model where anyone across the Internet can help in the form of peer
preview, testing, and patches.

For more details about how to get involved, see our
[Contribution Guide](https://github.com/ShoppersShop/shop-token/blob/master/CONTRIBUTING.md)

# License

MIT
npm package: @shoppersshop/shop-wallet
Description: ![CircleCI](https://circleci.com/gh/ShoppersShop/shop-wallet.svg?style=svg&circle-token=bd691ed71802193befdaae620fb7b767df9684af)
Latest version: 0.2.16

# SHOP Wallet

![CircleCI](https://circleci.com/gh/ShoppersShop/shop-wallet.svg?style=svg&circle-token=bd691ed71802193befdaae620fb7b767df9684af)

This project represents the first iteration of the web version of the SHOP
Wallet. This version is a React component that can be embedded in any React web
application. It currently lives in two places:

- [SHOP Web Wallet](https://wallet.shoppers.shop)
- [Kanga](https://www.kangashop.com)

The SHOP Wallet currently interacts with off-chain SHOP Protocol services through
a REST API. After the [token release](https://shoppers.shop) this wallet will
also manage keys and manage data on Ethereum.

## Installing

The wallet can be installed through npm or yarn:

```
$ npm install -s @shoppersshop/shop-wallet
```

## Usage

The wallet can be directly embedded into any existing React project. It is
responsible for managing credit card payments for SHOP membership, which
requires the use of a Stripe publishable key that is compatible with the current
SHOP protocol.

If you are interested in integrating with SHOP, contact [Jeff Mataya](mailto:jeff@shoppers.shop)
for more details.

```ES6
import Wallet from '@shoppersshop/shop-wallet';

const WalletContainer = () => (
  <div>
    <Wallet
      params={{
        stripeKey: STRIPE_PUBLISHABLE_KEY
      }}
    />
  </div>
);
```

## Contributing

Thanks for considering to help out with our source code! We operate on an open
contributor model where anyone across the Internet can help in the form of peer
review, testing, and patches.

For more details about how to get involved, see our [Contribution Guide](CONTRIBUTING.md).

## License

MIT