# vintrace MCP by usefulapi (remote · vintrace.usefulapi.io)

Read vintrace vessels, batches, work orders, lab results, stock; assign work orders, add notes.

- Trust score: 62/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-25

## Components

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

## Channel facts

- Endpoint: `https://vintrace.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.3`

## 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-10-25.

- **Endpoint Security**: 78/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - 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.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 79/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 5228 tokens (~153/item across 34 items; 34 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 34 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 35 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

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

vintrace MCP by usefulapi is a hosted endpoint at https://vintrace.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-vintrace 'https://vintrace.usefulapi.io/mcp'
```

### Cursor

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

### VS Code

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

### Codex

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

### opencode

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

### OpenClaw

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

### Hermes

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

### Netclaw

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

### Vellum

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

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-vintrace": {
      "type": "http",
      "url": "https://vintrace.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-10-25 (score 62, 0)

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.0.0 → 1.0.3

### 2026-10-24 (score 62)

First indexed and scored.

## MCP tools (34)

### `vintrace_list_work_orders` (~199 tokens)

List work orders

List winery work orders (cellar jobs such as transfers, additions, bottling) with their jobs, assignee, status and scheduled time. Filter by scheduled time range, status and operation type. Reply: results plus next_offset. GET /v7/operation/work-orders.

Input parameters:

- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `operation_types` (string): Winery job type, or several separated by commas (for example TIRAGE,TRANSFER).
- `scheduled_before` (string): Only work orders scheduled at or before this time (inclusive).
- `scheduled_since` (string): Only work orders scheduled at or after this time (inclusive).
- `status` (string): Work order status, or several separated by commas (for example READY,IN_PROGRESS).

### `vintrace_list_wine_batches` (~144 tokens)

List wine batches

List wine batches (the named lots of wine) with volume, variety, vintage and owner. Use include=vessels,allocations to add where each batch sits. Reply: results plus next_offset. GET /v7/operation/wine-batches.

Input parameters:

- `id` (string): Comma-separated vintrace batch ids to fetch.
- `include` (string): Extra parts to include, comma-separated: vessels, allocations.
- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.

### `vintrace_get_vessel_details_report` (~310 tokens)

Vessel contents report

The bulk wine report: every vessel (tank, barrel, bin, press, tanker) with its contents, volume, batch, owner and winery as at a date. Use extra_fields=composition,allocations,liveMetrics to add them. Covers every winery the token's user may access unless wineryId/wineryName narrows it. GET /v7/report/vessel-details-report.

Input parameters:

- `as_at` (string): Run the report as at this time (default now).
- `batch` (string): Only vessels holding this wine batch.
- `business_unit` (string): Only this winery business unit.
- `extra_fields` (string): Extra fields, comma-separated: composition, allocations, liveMetrics.
- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `owner` (string): Only this owner.
- `product_id` (integer): Only this wine/product id.
- `vessel` (string): Only this vessel (by name/code).
- `vessel_id` (integer): Only this vessel id.
- `vessel_type` (string): Vessel types, comma-separated: TANK, BIN, BARREL, BARREL_GROUP, BIN_GROUP, PRESS, TANKER.
- `winery_id` (integer): Only this winery.
- `winery_name` (string): Only the winery with this exact name.

### `vintrace_get_vessel` (~86 tokens)

Get vessel

One vessel by id: a tank, barrel, barrel group, tanker or bin, with its details, dimensions and contents. GET /v7/vessel/<tanks|barrels|barrel-groups|tankers|bins>/{id}.

Input parameters:

- `vessel_id` (integer, required): vintrace vessel id.
- `vessel_type` (string, required): What kind of vessel.

### `vintrace_list_lab_requests` (~315 tokens)

List lab requests

The lab console: analysis tasks (samples to measure) with lab, template, vessel, batch, status and arrival. Completed tasks are left out unless status includes Completed. Reply: results plus next_offset. GET /v7/lab/lab-requests.

Input parameters:

- `analysis_template_name` (array): Only tasks using these analysis templates. Several values match any of them.
- `arrival_status` (string): Only samples with this arrival status.
- `batch` (array): Only tasks sampled from batches with these names. Several values match any of them.
- `date_after` (string): Only tasks requested at or after this time.
- `date_before` (string): Only tasks requested at or before this time.
- `lab_name` (array): Only tasks assigned to labs with these names. Several values match any of them.
- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `modified_since` (string): Only tasks modified at or after this time.
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `status` (array): Task statuses (for example Completed to include finished tasks). Several values match any of them.
- `vessel_name` (array): Only tasks sampled from vessels with these names. Several values match any of them.
- `work_order_number` (array): Only tasks requested by these work orders (TWL123 or 123). Several values match any of them.

### `vintrace_list_trial_blends` (~172 tokens)

List trial blends

List trial blends (planned blend trials) with status and composition. Use composition_summary_by=variety,vintage to summarise. Reply: results plus next_offset. GET /v7/operation/trial-blends.

Input parameters:

- `composition_summary_by` (string): Summarise composition by: variety, vintage, region, subRegion (comma-separated).
- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `modified_before` (string): Only records modified before this time.
- `modified_since` (string): Only records modified after this time.
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `status` (string): Trial blend status, or several separated by commas.

### `vintrace_search_transactions` (~117 tokens)

Search winemaking transactions

Winemaking operations completed in a date range (transfers, additions, blends, racking...) with the from/to vessels and before/after volumes. Defaults to today when no dates are given. GET /v6/transaction/search.

Input parameters:

- `batch_name` (string): Batch name.
- `date_from` (string): Operations completed on or after this date.
- `date_to` (string): Operations completed on or before this date.
- `owner_name` (string): Owner name.
- `winery_name` (string): Winery name.

### `vintrace_list_barrel_treatments` (~135 tokens)

List barrel treatments

Barrel move shipments / barrel treatments recorded in vintrace, with barrel states and treatment types. Reply: results plus next_offset. GET /v7/operation/barrel-treatments.

Input parameters:

- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `modified_before` (string): Only records modified before this time.
- `modified_since` (string): Only records modified after this time.
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `treatment` (string): Only this treatment.

### `vintrace_list_blocks` (~148 tokens)

List vineyard blocks

List vineyard blocks (grower, vineyard, region, variety). To see fruit placements for a vintage pass include=fruitPlacements together with vintage. Reply: results plus next_offset. GET /v7/harvest/blocks.

Input parameters:

- `id` (string): Comma-separated block ids.
- `include` (string): Extra parts to include, for example fruitPlacements (with vintage).
- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `vintage` (string): Vintage year (needed with include).

### `vintrace_list_block_assessments` (~189 tokens)

List block assessments

List vineyard block assessments (vine and fruit assessments by the viticulture team). Reply: results plus next_offset. GET /v7/harvest/assessments.

Input parameters:

- `assessed_by` (string): Filter by assessor: a vintrace user id (123), or ext:<external id>. Prefix ne: to exclude that user (ne:123); the default is an exact match (eq:).
- `created_before` (string): Only assessments created before this time.
- `created_since` (string): Only assessments created after this time.
- `extra_fields` (string): Extra fields to include, comma-separated (see the BlockAssessment fields).
- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.

### `vintrace_list_bookings` (~243 tokens)

List fruit bookings

List active fruit bookings (grape deliveries planned for a vintage) for one or more wineries: grower, block, variety, expected pick time and quantity. vintage and winery_ids are required. Reply: results plus next_offset. GET /v7/operation/bookings.

Input parameters:

- `arrival_after` (string): Arrival after this time.
- `arrival_before` (string): Arrival before this time.
- `block_name` (string): Only this block.
- `booking_number` (string): A vintrace booking number.
- `grower_name` (string): Only this grower.
- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `modified_since` (string): Added, changed or deactivated since this time.
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `vineyard_name` (string): Only this vineyard.
- `vintage` (integer, required): Vintage year, e.g. 2026.
- `winery_ids` (array, required): vintrace winery ids (see vintrace_get_vessel_details_report for winery names/ids).

### `vintrace_list_bulk_intakes` (~149 tokens)

List bulk intakes

List bulk wine/juice intakes (wine bought or received in bulk) with batch, volume, owner and cost. Reply: results plus next_offset. GET /v7/operation/bulk-intakes.

Input parameters:

- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `modified_before` (string): Only records modified before this time.
- `modified_since` (string): Only records modified after this time.
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `purchase_reference` (string): Exact purchase reference (sent to vintrace as eq:<reference>).

### `vintrace_search_fruit_intakes` (~238 tokens)

Search fruit intakes

Fruit intake operations (grape deliveries weighed in at the winery): weights, grower, block, vineyard, vintage, docket numbers and metrics. Filter by vintage, grower, vineyard, block or recorded time. Page with first_result and max_results. GET /v6/intake-operations/search.

Input parameters:

- `block_name` (string): Block name.
- `delivery_docket` (string): Delivery docket number.
- `first_result` (integer): Start index of the page (default 0; vintrace "first").
- `grower_name` (string): Grower name.
- `intake_docket` (string): Intake docket number.
- `max_results` (integer): Results per page, 1-200.
- `modified_since` (string): Modified since this time.
- `owner_name` (string): Fruit owner name.
- `recorded_after` (string): Recorded at or after this time.
- `recorded_before` (string): Recorded at or before this time.
- `vineyard_name` (string): Vineyard name.
- `vintage` (string): Vintage year.
- `winery_name` (string): Winery name.

### `vintrace_list_stock_dispatches` (~98 tokens)

List stock dispatches

List stock dispatch actions (bottled goods and dry goods sent out) with routes, items and shipping information. Reply: results plus next_offset. GET /v7/stock/dispatches.

Input parameters:

- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.

### `vintrace_list_shipments` (~175 tokens)

List bulk shipments

List shipments created by Bulk Dispatch and inter-winery dispatch operations, with destination and wine details. Reply: results plus next_offset. GET /v7/operation/shipments.

Input parameters:

- `dispatch_type` (string): Dispatch type name.
- `freight_code` (string): Freight code name.
- `include` (string): Extra wine details to include: allocations, metrics, composition, cost (comma-separated).
- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `modified_before` (string): Only records modified before this time.
- `modified_since` (string): Only records modified after this time.
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `type` (string): Operation type.

### `vintrace_list_cost_transactions` (~174 tokens)

List bulk wine cost movements

Bulk wine cost movements between two times (cost of wine moved between batches and wineries), optionally for one winery or business unit. Needs the vintrace permission to view costs. Reply: results plus next_offset. GET /v7/costs/business-unit-transactions.

Input parameters:

- `business_unit` (string): Only this business unit.
- `end` (string, required): End of the period (required).
- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `start` (string, required): Start of the period (required).
- `winery_id` (integer): Only this winery.
- `winery_name` (string): Only the winery with this exact name.

### `vintrace_list_brand_allocations` (~133 tokens)

List brand allocations

List brand allocations of bulk wine (how much of a wine is promised to which brand), by status and vintage. Reply: results plus next_offset. GET /v7/allocations/brand-allocations.

Input parameters:

- `limit` (integer): Results per page, 1-200 (vintrace default 10).
- `modified_since` (string): Only records modified after this time.
- `offset` (integer): Index of the first result (default 0). Pass the previous reply's offset + limit.
- `status` (string): Allocation status.
- `vintage` (integer): Vintage year.

### `vintrace_get_purchase_order` (~48 tokens)

Get purchase order

One purchase order with its lines, state and fulfilment. GET /v7/account/purchase-orders/{id}.

Input parameters:

- `purchase_order_id` (string, required): vintrace purchase order id.

### `vintrace_list_inventory` (~185 tokens)

List stock inventory

Stock on hand (bottled wine, dry goods, additives) up to a date: quantity, committed, on order and available per item, location, owner, tax class. breakout_costing needs the view-costs permission. GET /v6/inventory.

Input parameters:

- `breakout_costing` (boolean): Break out each item's costs by category (needs the permission).
- `date` (string): Report stock up to this date, excluding later changes.
- `first` (integer): Start index of the page (default 0; vintrace "first").
- `max` (integer): Results per page, 1-200 (sent as vintrace's "max").
- `owner_name` (string): Only this owner's stock.
- `stock_type` (string): Stock type, for example Wine batch, Additive, Closure, Glass/Container, Case x12.

### `vintrace_lookup_stock_item` (~82 tokens)

Look up stock item

Find one stock item by code (matched against the start of the code) or by id: type, unit, owner, accounts, tax class and sub-components. Give code or id. GET /v6/stock/lookup.

Input parameters:

- `code` (string): Stock item code (start of code).
- `id` (integer): Stock item id.

### `vintrace_get_stock_item` (~104 tokens)

Get stock item details

One stock item by id with optional detail parts: expand=fields,distributions,notes,historyItems,rawComponents,bulkInfo. GET /v6/mrp/stock/{id}.

Input parameters:

- `expand` (string): Comma-separated parts to expand: fields, distributions, notes, historyItems, rawComponents, bulkInfo.
- `stock_item_id` (integer, required): vintrace stock item id (from vintrace_lookup_stock_item or vintrace_list_inventory).

### `vintrace_list_stock_item_notes` (~85 tokens)

List stock item notes

The notes recorded on a stock item. GET /v6/mrp/stock/{id}/notes.

Input parameters:

- `first_result` (integer): Start index of the page (default 0; vintrace "first").
- `max_result` (integer): Notes per page, 1-200.
- `stock_item_id` (integer, required): vintrace stock item id.

### `vintrace_list_products` (~138 tokens)

List products (wines in vessels)

List wine products as they sit in vessels: batch code, vessel, volume, colour, state and the latest lab metrics (TSO2, pH, Brix...). skip_metrics=true makes it faster. barcode matches a vessel code or asset id. GET /v6/products/list.

Input parameters:

- `barcode` (string): A vessel code or asset id.
- `first` (integer): Start index of the page (default 0; vintrace "first").
- `max` (integer): Results per page, 1-200 (sent as vintrace's "max").
- `skip_metrics` (boolean): Leave out the metric measurements.

### `vintrace_get_product` (~62 tokens)

Get product

One wine product by id (or by vessel barcode) with its vessel, volume and metrics. GET /v6/products/{id}.

Input parameters:

- `barcode` (string): A vessel code or asset id.
- `product_id` (integer, required): vintrace product id.

### `vintrace_list_sales_orders` (~208 tokens)

List sales orders

List sales orders with customer, status, price list, line items, totals and invoice date. Filter by status, customer, order date range or invoice date range. GET /v6/sales-order/list.

Input parameters:

- `customer_name` (string): Customer name.
- `end_date` (string): Orders on or before this date.
- `external_transaction_id` (string): External transaction id linked to the order.
- `first` (integer): Start index of the page (default 0; vintrace "first").
- `invoice_end_date` (string): Invoiced on or before this date.
- `invoice_start_date` (string): Invoiced on or after this date.
- `max` (integer): Results per page, 1-200 (sent as vintrace's "max").
- `start_date` (string): Orders on or after this date.
- `starts_with` (string): Order name starts with this.
- `status` (string): Sales order status.

### `vintrace_get_sales_order` (~94 tokens)

Get sales order

One sales order by id, or by order code (for example VSO20): customer, items, prices, taxes and status. Give exactly one. GET /v6/sales-order/{id} or /v6/sales-order?code=.

Input parameters:

- `code` (string): Sales order code, e.g. VSO20.
- `sales_order_id` (integer): vintrace sales order id.

### `vintrace_list_parties` (~127 tokens)

List parties (customers, growers, owners)

List parties: customers, growers, suppliers and owners, individuals or organisations, with address, phone and email. Filter by the start of the name and category. GET /v6/party/list.

Input parameters:

- `category` (string): Party category (default All).
- `first` (integer): Start index of the page (default 0; vintrace "first").
- `max` (integer): Results per page, 1-200 (sent as vintrace's "max").
- `starts_with` (string): Surname (individuals) or company name starts with this.

### `vintrace_get_party` (~75 tokens)

Get party

One party (customer, grower, supplier, owner) by id, or by exact name. Give exactly one. GET /v6/party/{id} or /v6/party?name=.

Input parameters:

- `name` (string): Exact party name.
- `party_id` (integer): vintrace party id.

### `vintrace_get_work_order` (~81 tokens)

Get work order

One work order by id: every job with its steps, summary text, status and assignee. Find the id with vintrace_list_work_orders or vintrace_list_work_orders_v6. GET /v6/workorders/{id}.

Input parameters:

- `work_order_id` (integer, required): vintrace work order id (the number, not the TWL code).

### `vintrace_list_work_orders_v6` (~186 tokens)

List work orders (operator view)

Work orders from the operator's point of view (what is waiting for me / unassigned), with job counts, status and scheduled dates. Defaults to the last 7 days to 3 days ahead. GET /v6/workorders/list.

Input parameters:

- `assigned_to` (string): Assignment filter (default AVAILABLE_TO_ME).
- `first` (integer): Start index of the page (default 0; vintrace "first").
- `from_date` (string): Scheduled on or after this date.
- `max` (integer): Results per page, 1-200 (sent as vintrace's "max").
- `starts_with` (string): Work order name starts with this.
- `state` (string): Status filter (default ANY).
- `to_date` (string): Scheduled on or before this date.
- `winery_id` (integer): Only this winery.

### `vintrace_search_items` (~137 tokens)

Search vintrace items by type

Look up names and ids of one kind of item: growers, owners, blocks, varietals, vintages, regions, programs, batches, products, tanks, barrels, bins and more. Use it to find the id or exact name another tool needs. GET /v6/search/list.

Input parameters:

- `exact_match` (boolean): True: the name must equal starts_with (default is a like match).
- `first` (integer): Start index of the page (default 0; vintrace "first").
- `starts_with` (string): Name starts with this.
- `type` (string, required): The kind of item to list.

### `vintrace_add_stock_item_note` (~95 tokens)

Add a note to a stock item

WRITE: adds a new note to a vintrace stock item (visible to everyone in the winery, recorded under the token's user). Adding the same note twice creates two notes. POST /v6/mrp/stock/{id}/notes.

Input parameters:

- `detail` (string, required): The note text.
- `stock_item_id` (integer, required): vintrace stock item id.
- `subject` (string): Optional subject line.

### `vintrace_assign_work_order` (~153 tokens)

Assign a work order

WRITE: assigns a work order to the token's own vintrace user (or to assign_operator_id), so it shows up in that operator's list. With reassign=true it takes over a work order already assigned to someone else. Check the work order first with vintrace_get_work_order. POST /v6/workorders/assign.

Input parameters:

- `assign_operator_id` (integer): vintrace user id to assign to (default: the token's user).
- `job_id` (integer): Only this job of the work order.
- `reassign` (boolean): Reassign even if it is already assigned to another operator (default false).
- `work_order_id` (integer, required): vintrace work order id.

### `vintrace_deactivate_booking` (~78 tokens)

Deactivate a fruit booking

WRITE: deactivates a fruit booking so it no longer counts as an active booking (the record is kept; it is not deleted). Use vintrace_list_bookings to find the booking id first. POST /v7/operation/bookings/{id}/deactivation.

Input parameters:

- `booking_id` (string, required): vintrace booking id.

## Diagnostics

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

## Score history

- 2026-10-25: 62
- 2026-10-24: 62

## Common questions

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

vintrace MCP by usefulapi is listed in the public MCP registry as io.usefulapi/vintrace. Read vintrace vessels, batches, work orders, lab results, stock; assign work orders, add notes. This page covers its hosted endpoint (https://vintrace.usefulapi.io/mcp).

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

vintrace MCP by usefulapi scores 62 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 vintrace MCP by usefulapi server expose?

vintrace MCP by usefulapi exposes 34 tools: vintrace_list_work_orders, vintrace_list_wine_batches, vintrace_get_vessel_details_report, vintrace_get_vessel, vintrace_list_lab_requests, and 29 more. Their descriptions and schemas cost roughly 4,963 tokens of context every time the server is loaded.

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

Yes. vintrace MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

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

vintrace MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 25 October 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://vintrace.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/vintrace/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-vintrace/vintrace.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-vintrace/vintrace.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-vintrace/vintrace
