# Smaregi MCP by usefulapi (remote · smaregi.usefulapi.io)

Read Smaregi stores, products, customers, stock and transactions; manage customers, products, stock.

- Trust score: 18/100 (low)
- Change this week: −45
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `smaregi.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-smaregi/smaregi.md), [page](https://verifymcp.io/servers/io-usefulapi-smaregi/smaregi)

## Channel facts

- Endpoint: `https://smaregi.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.12.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Smaregi MCP by usefulapi server?

Smaregi MCP by usefulapi is a hosted endpoint at https://smaregi.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-smaregi 'https://smaregi.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-smaregi": {
      "url": "https://smaregi.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-smaregi": {
      "type": "http",
      "url": "https://smaregi.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-smaregi]
url = "https://smaregi.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-smaregi": {
      "type": "remote",
      "url": "https://smaregi.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-smaregi --url 'https://smaregi.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-smaregi:
    url: "https://smaregi.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-smaregi": {
      "Transport": "http",
      "Url": "https://smaregi.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-smaregi -t streamable-http -u 'https://smaregi.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-smaregi": {
      "type": "http",
      "url": "https://smaregi.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-01 (score 18, −49)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.20 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-10-31 (score 67, +4)

- [security improvement] Authorization: partial → pass
- [functional improvement] MCP protocol: fail → pass
- [functional] New prompt “add_a_product_or_update_its_details”
- [functional] New prompt “add_or_update_a_customer_member”
- [functional] New prompt “check_the_stock_history_of_a_product”
- [functional] New prompt “find_products_that_are_low_on_stock”
- [functional] New prompt “review_a_store_s_sales_transactions_for_a_day”
- [functional] New prompt “set_or_adjust_the_stock_of_a_product_in_a_store”
- [functional] MCP protocol version: 2025-06-18 → 2025-11-25
- [functional] Server version: 1.8.0 → 1.10.0
- [functional] Server version: 1.7.0 → 1.8.0
- [functional] Server version: 1.6.2 → 1.7.0

### 2026-10-30 (score 63, 0)

- [functional] Server version: 1.6.1 → 1.6.2
- [functional] Server version: 1.6.0 → 1.6.1

### 2026-10-29 (score 63, 0)

- [functional] Server version: 1.5.0 → 1.6.0
- [functional] Server version: 1.4.0 → 1.5.0

### 2026-10-28 (score 63, +1)

- [functional] Server version: 1.2.0 → 1.4.0

### 2026-10-27 (score 62, 0)

- [functional] Server version: 1.1.0 → 1.2.0

### 2026-10-26 (score 62, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-25 (score 61)

First indexed and scored.

## MCP tools (20)

### `smaregi_list_stores` (~152 tokens)

List stores

List the stores (shops) of the Smaregi contract: id, code, name, address, phone. Use the ids to filter stock and transactions. GET /stores.

Input parameters:

- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `limit` (integer): Results per page, 1-500 (default 50).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `sort` (string): Sort order: comma-separated field names, ':desc' for descending (e.g. updDateTime:desc).

### `smaregi_get_store` (~69 tokens)

Get store

One store by id. GET /stores/{store_id}.

Input parameters:

- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `store_id` (required): Numeric Smaregi id (string or number).

### `smaregi_list_staffs` (~142 tokens)

List staff

List staff members: id, code, name, role, e-mail. Passwords are never returned. GET /staffs.

Input parameters:

- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `limit` (integer): Results per page, 1-500 (default 50).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `sort` (string): Sort order: comma-separated field names, ':desc' for descending (e.g. updDateTime:desc).

### `smaregi_get_staff` (~71 tokens)

Get staff member

One staff member by id. GET /staffs/{staff_id}.

Input parameters:

- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `staff_id` (required): Numeric Smaregi id (string or number).

### `smaregi_list_categories` (~145 tokens)

List categories

List product categories (departments): id, code, name, parent, level. Use the ids when creating or filtering products. GET /categories.

Input parameters:

- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `limit` (integer): Results per page, 1-500 (default 50).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `sort` (string): Sort order: comma-separated field names, ':desc' for descending (e.g. updDateTime:desc).

### `smaregi_get_category` (~70 tokens)

Get category

One product category by id. GET /categories/{category_id}.

Input parameters:

- `category_id` (required): Numeric Smaregi id (string or number).
- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.

### `smaregi_list_products` (~288 tokens)

List products

List products with id, category, code, name, price, cost and update time. Filter by category, code, group code, display flag or update time (a 31-day maximum range). GET /products.

Input parameters:

- `category_id`: Only products of this category id.
- `display_flag` (string): 1 = shown on the register, 0 = hidden.
- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `group_code` (string): Only products with this group code.
- `limit` (integer): Results per page, 1-500 (default 50).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `product_code` (string): Only the product with this exact product code.
- `sort` (string): Sort order: comma-separated field names, ':desc' for descending (e.g. updDateTime:desc).
- `supplier_product_no` (string): Only products with this supplier product number.
- `updated_from` (string): Only products changed at or after this date-time (ISO 8601 with timezone).
- `updated_to` (string): Only products changed at or before this date-time (the range may span 31 days at most).

### `smaregi_get_product` (~143 tokens)

Get product

One product by id, optionally with store prices, bundled items, store assignments, reserved stock, attribute items and order settings. GET /products/{product_id}.

Input parameters:

- `product_id` (required): Numeric Smaregi id (string or number).
- `with_attribute_items` (boolean): Add the attribute items.
- `with_inventory_reservations` (boolean): Add the inventory reservations.
- `with_order_setting` (boolean): Add the ordering settings.
- `with_prices` (boolean): Add the store/period-specific prices.
- `with_reserve_items` (boolean): Add the free-form reserve items.
- `with_stores` (boolean): Add the store assignments.

### `smaregi_list_customers` (~286 tokens)

List customers

List customers (members): id, code, number, name, phone, e-mail, address. Smaregi cannot search by name, phone or e-mail: filter by customer code, member number, id range or update time, or page through. Contains shoppers' personal data. GET /customers.

Input parameters:

- `customer_code` (string): Only the customer with this exact customer code.
- `customer_id_from`: Only customers with an id at or above this.
- `customer_id_to`: Only customers with an id at or below this.
- `customer_no` (string): Only the customer with this member number.
- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `limit` (integer): Results per page, 1-500 (default 50).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `sort` (string): Sort order: comma-separated field names, ':desc' for descending (e.g. updDateTime:desc).
- `updated_from` (string): Only customers changed at or after this date-time (ISO 8601 with timezone).
- `updated_to` (string): Only customers changed at or before this date-time (31 days at most).

### `smaregi_get_customer` (~95 tokens)

Get customer

One customer by id, optionally with the contract's custom fields. Contains personal data. GET /customers/{customer_id}.

Input parameters:

- `customer_id` (required): Numeric Smaregi id (string or number).
- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `with_custom_fields` (boolean): Add the custom field values.

### `smaregi_list_stock` (~234 tokens)

List stock levels

List stock levels per store and product (stockAmount, reserved amount). Filter by store or product. Smaregi only lists a product once its quantity has changed at least once. An update-time filter needs both bounds (31 days at most). GET /stock.

Input parameters:

- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `limit` (integer): Results per page, 1-500 (default 50).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `product_id`: Only this product id.
- `sort` (string): Sort order: comma-separated field names, ':desc' for descending (e.g. updDateTime:desc).
- `store_id`: Only this store id.
- `updated_from` (string): Only stock changed at or after this date-time (give updated_to as well).
- `updated_to` (string): Only stock changed at or before this date-time (give updated_from as well).

### `smaregi_list_stock_changes` (~224 tokens)

List stock history

The stock change history of one product in one store: date, amount, division (sale, purchase, transfer, adjustment...). GET /stock/changes/{product_id}/{store_id}.

Input parameters:

- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `limit` (integer): Results per page, 1-500 (default 50).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `product_id` (required): Numeric Smaregi id (string or number).
- `sort` (string): Sort order: comma-separated field names, ':desc' for descending (e.g. updDateTime:desc).
- `stock_division` (string): Only changes of this stock division code.
- `store_id` (required): Numeric Smaregi id (string or number).
- `target_date` (string): Only changes of this target date, as Smaregi formats it (yyyy-mm-dd).

### `smaregi_list_transactions` (~380 tokens)

List transactions

List sales transactions (receipts) in a time window of at most 31 days: id, date-time, division (1 = normal sale, 2 = deposit, 3 = withdrawal...), store, terminal, customer, totals. Optionally with the line items (limit 100 then). Contains shoppers' personal data. GET /transactions.

Input parameters:

- `customer_code` (string): Only this customer code.
- `fields` (string): Comma-separated top-level field names to return (e.g. productId,productName); fewer fields = smaller replies.
- `from` (string, required): Start of the window: transaction date-time (when Smaregi received it), ISO 8601 with timezone.
- `limit` (integer): Results per page, 1-500 (default 50).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `sort` (string): Sort order: comma-separated field names, ':desc' for descending (e.g. updDateTime:desc).
- `store_id`: Only this store id.
- `to` (string, required): End of the window (at most 31 days after from).
- `transaction_head_division` (string): Transaction division: 1 normal sale, 2 deposit, 3 withdrawal, 4 advance payment, 5 advance refund, 6 points added, 7 points deducted, 8 points expired, 9 coupon ticket, 11 tip, 13 miles added, 14 mil…
- `transaction_uuid` (string): Only the transaction with this receipt number.
- `with_details` (string): Add the line items: none (default), summary or all. Any other value than none caps limit at 100.

### `smaregi_get_transaction` (~91 tokens)

Get transaction

One transaction (receipt) by its transaction id (transactionHeadId), optionally with line items, discounts and payments. Contains personal data. GET /transactions/{transaction_id}.

Input parameters:

- `transaction_id` (required): The transactionHeadId.
- `with_details` (boolean): Add the line items.
- `with_discounts` (boolean): Add the discounts.
- `with_payments` (boolean): Add the payments.

### `smaregi_create_customer` (~353 tokens)

Create customer

WRITE: create a customer (member). customerCode, firstName and lastName are required; the contract's own required-column settings may demand more. Not idempotent: calling twice with a different code creates two customers. POST /customers.

Input parameters:

- `address`: Address.
- `birthDate`: Birth date, yyyy-mm-dd.
- `companyName`: Company name.
- `customerCode` (required): Customer code (unique per contract).
- `customerNo`: Customer / member number.
- `departmentName`: Department name.
- `entryDate`: Enrollment (membership start) date, yyyy-mm-dd; some contracts require it when creating a customer.
- `faxNumber`: Fax number.
- `firstKana`: First name, kana.
- `firstName` (required): First name.
- `lastKana`: Last name, kana.
- `lastName` (required): Last name.
- `mailAddress`: E-mail address.
- `mailReceiveFlag`: Whether the customer accepts guidance mail: 0 = refuse, 1 = allow (default).
- `mobileNumber`: Mobile number.
- `note`: Note.
- `note2`: Second note.
- `phoneNumber`: Phone number.
- `pointExpireDate`: Point expiry date, yyyy-mm-dd; some contracts require it when creating a customer.
- `postCode`: Postal code.
- `rank`: Member rank.
- `sex`: Sex: 0 = unknown, 1 = male, 2 = female.
- `status`: Member status: 0 = active, 1 = suspended, 2 = card lost, 3 = withdrawn, 4 = merged.
- `storeId`: Store id the customer belongs to.

### `smaregi_update_customer` (~348 tokens)

Update customer

WRITE: change fields of one customer (only the fields you pass are changed). Overwrites the old values. PATCH /customers/{customer_id}.

Input parameters:

- `address`: Address.
- `birthDate`: Birth date, yyyy-mm-dd.
- `companyName`: Company name.
- `customerCode`: Customer code (unique per contract).
- `customerNo`: Customer / member number.
- `customer_id` (required): Numeric Smaregi id (string or number).
- `departmentName`: Department name.
- `entryDate`: Enrollment (membership start) date, yyyy-mm-dd; some contracts require it when creating a customer.
- `faxNumber`: Fax number.
- `firstKana`: First name, kana.
- `firstName`: First name.
- `lastKana`: Last name, kana.
- `lastName`: Last name.
- `mailAddress`: E-mail address.
- `mailReceiveFlag`: Whether the customer accepts guidance mail: 0 = refuse, 1 = allow (default).
- `mobileNumber`: Mobile number.
- `note`: Note.
- `note2`: Second note.
- `phoneNumber`: Phone number.
- `pointExpireDate`: Point expiry date, yyyy-mm-dd; some contracts require it when creating a customer.
- `postCode`: Postal code.
- `rank`: Member rank.
- `sex`: Sex: 0 = unknown, 1 = male, 2 = female.
- `status`: Member status: 0 = active, 1 = suspended, 2 = card lost, 3 = withdrawn, 4 = merged.
- `storeId`: Store id the customer belongs to.

### `smaregi_create_product` (~333 tokens)

Create product

WRITE: create a product. categoryId, productName and price are required. Not idempotent. POST /products.

Input parameters:

- `catchCopy`: Catch copy.
- `categoryId` (required): Category id (smaregi_list_categories).
- `color`: Color.
- `cost`: Unit cost.
- `customerPrice`: Member price.
- `description`: Description.
- `displayFlag`: Show on the register (0 = hidden, 1 = shown).
- `division`: Product division: 0 = normal (default), 1 = prepaid multi-use ticket (only contracts with that feature), 2 = option product.
- `groupCode`: Group code.
- `price` (required): Selling price.
- `productCode`: Product code (unique per contract).
- `productKana`: Product name, kana.
- `productName` (required): Product name.
- `productPriceDivision`: Price division: 1 = standard price (default), 2 = open price.
- `salesDivision`: Sales accounting: 0 = counted in sales (default), 1 = excluded from sales totals. Does not control whether the product can be sold; use displayFlag to hide it from the register.
- `size`: Size.
- `stockControlDivision`: Stock control: 0 = stock is managed (default), 1 = stock is not managed.
- `supplierProductNo`: Supplier's product number.
- `tag`: Tag.
- `taxDivision`: Tax division code (0 = tax included, 1 = tax excluded, 2 = tax free).
- `url`: Product URL.

### `smaregi_update_product` (~363 tokens)

Update product

WRITE: change fields of one product (only the fields you pass are changed), for example its price or name. Overwrites the old values. PATCH /products/{product_id}.

Input parameters:

- `catchCopy`: Catch copy.
- `categoryId`: Category (department) id, see smaregi_list_categories.
- `color`: Color.
- `cost`: Unit cost.
- `customerPrice`: Member price.
- `description`: Description.
- `displayFlag`: Show on the register (0 = hidden, 1 = shown).
- `division`: Product division: 0 = normal (default), 1 = prepaid multi-use ticket (only contracts with that feature), 2 = option product.
- `groupCode`: Group code.
- `price`: Selling price.
- `productCode`: Product code (unique per contract).
- `productKana`: Product name, kana.
- `productName`: Product name.
- `productPriceDivision`: Price division: 1 = standard price (default), 2 = open price.
- `product_id` (required): Numeric Smaregi id (string or number).
- `salesDivision`: Sales accounting: 0 = counted in sales (default), 1 = excluded from sales totals. Does not control whether the product can be sold; use displayFlag to hide it from the register.
- `size`: Size.
- `stockControlDivision`: Stock control: 0 = stock is managed (default), 1 = stock is not managed.
- `supplierProductNo`: Supplier's product number.
- `tag`: Tag.
- `taxDivision`: Tax division code (0 = tax included, 1 = tax excluded, 2 = tax free).
- `url`: Product URL.

### `smaregi_set_stock` (~102 tokens)

Set stock level

WRITE: set the absolute stock quantity of one product in one store, replacing the current quantity. Use smaregi_adjust_stock for a relative change. PATCH /stock/{product_id}.

Input parameters:

- `memo` (string): Note stored in the stock history.
- `product_id` (required): Numeric Smaregi id (string or number).
- `stock_amount` (integer, required): The new quantity.
- `store_id` (required): Numeric Smaregi id (string or number).

### `smaregi_adjust_stock` (~118 tokens)

Adjust stock level

WRITE: add (positive) or subtract (negative) a quantity to the stock of one product in one store. Not idempotent: a repeat applies the change again. POST /stock/{product_id}/add.

Input parameters:

- `memo` (string): Note stored in the stock history.
- `product_id` (required): Numeric Smaregi id (string or number).
- `stock_amount` (integer, required): The change: +5 adds five, -3 removes three.
- `store_id` (required): Numeric Smaregi id (string or number).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-smaregi/smaregi#diagnostics

## Score history

- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 18
- 2026-10-31: 67
- 2026-10-30: 63
- 2026-10-29: 63
- 2026-10-28: 63
- 2026-10-27: 62
- 2026-10-26: 62
- 2026-10-25: 61

## Common questions

### What is the Smaregi MCP by usefulapi server?

Smaregi MCP by usefulapi is listed in the public MCP registry as io.usefulapi/smaregi. Read Smaregi stores, products, customers, stock and transactions; manage customers, products, stock. This page covers its hosted endpoint (https://smaregi.usefulapi.io/mcp).

### Is the Smaregi MCP by usefulapi server safe to use?

Smaregi MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Smaregi MCP by usefulapi server expose?

Smaregi MCP by usefulapi exposes 20 tools: smaregi_list_stores, smaregi_get_store, smaregi_list_staffs, smaregi_get_staff, smaregi_list_categories, and 15 more. Their descriptions and schemas cost roughly 4,007 tokens of context every time the server is loaded.

### Does the Smaregi MCP by usefulapi server require authentication?

Its publisher declares no required credentials for Smaregi MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Smaregi MCP by usefulapi server still maintained?

Smaregi MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://smaregi.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/smaregi/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-smaregi/smaregi.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-smaregi/smaregi.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-smaregi/smaregi
