InnoVint MCP by usefulapi
Review winery lots, vessels, analyses and work history; record analyses and add vendors.
使うべきか
品質と安全性
検出事項(5)
- LOWinnovint_get_lot_components_summary 内
- LOWinnovint_list_vessels_at_point_in_time 内
- LOWinnovint_list_adjustment_actions 内
- LOWinnovint_list_receive_fruit_actions 内
- LOWinnovint_create_analysis_action 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"innovint": {
"url": "https://innovint.usefulapi.io/mcp"
}
}
}リモートエンドポイント
https://innovint.usefulapi.io/mcpstreamable-httpできること
ツール一覧
ツール(27)
🟢innovint_list_wineries(limit, offset)
List the connected winery with id, name and the user's permissions. Hosted connections and scoped stdio return only the selected winery; unscoped stdio lists all accessible wineries. GET /api/v1/wineries or /api/v1/wineries/{wineryId}.
入力スキーマ
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_get_winery(winery_id)
One winery by id: name, internal id and the token user's permissions there. GET /api/v1/wineries/{wineryId}.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_lots(winery_id, q, code_in, id_in, bond_in, ...)
List the winery's lots (wine, juice, fruit or case-goods batches) with code, name, stage, color, type, tax class, volume, weight, bottles on hand and tags. Filter by search term, code, id, bond, archived state or last update. GET /api/v1/wineries/{wineryId}/lots.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"q": {
"description": "Search term.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"code_in": {
"description": "Only lots with one of these codes, e.g. [\"24CAB01\"].",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"id_in": {
"description": "Only lots with one of these ids (lot_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"bond_in": {
"description": "Only lots in one of these bonds (bond_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"archived": {
"description": "true = only archived records, false = only active ones. Omit for the API default.",
"type": "boolean"
},
"updated_after": {
"type": "string",
"description": "ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z."
},
"updated_before": {
"type": "string",
"description": "ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z."
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_get_lot(winery_id, lot_id)
One lot by id with its stage, volume, weight, bottles on hand, tags and links to related data. GET /api/v1/wineries/{wineryId}/lots/{id}.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"lot_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Lot id (e.g. lot_0123456789ABCDEFGHIJKLMN)."
}
},
"required": [
"winery_id",
"lot_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_get_lot_composition(winery_id, lot_id, after_action)
The lot's makeup composition (what it is made of), now or right after a given action. GET /api/v1/wineries/{wineryId}/lots/{lotId}/makeupComposition.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"lot_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Lot id (e.g. lot_0123456789ABCDEFGHIJKLMN)."
},
"after_action": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Optional action id: describe the composition right after this action (e.g. act_0123456789ABCDEFGHIJKLMN)."
}
},
"required": [
"winery_id",
"lot_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_get_lot_components_summary(winery_id, lot_id)
A summary of the lot's components. GET /api/v1/wineries/{wineryId}/lots/{lotId}/componentsSummary.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"lot_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Lot id (e.g. lot_0123456789ABCDEFGHIJKLMN)."
}
},
"required": [
"winery_id",
"lot_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_lot_analyses(winery_id, lot_id, analysis_type, vessels, is_lot_composite, ...)
Lab and in-house analysis results recorded on a lot (pH, TA, free SO2, Brix, VA, ...). Filter by analysis type slug, vessel or date range. GET /api/v1/wineries/{wineryId}/lots/{lotId}/analyses.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"lot_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Lot id (e.g. lot_0123456789ABCDEFGHIJKLMN)."
},
"analysis_type": {
"description": "Analysis type slugs, e.g. [\"ph\", \"ta\"] (see innovint_list_analysis_types).",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[-a-zA-Z0-9_]{1,100}$"
}
},
"vessels": {
"description": "Only analyses on these vessel ids (ves_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"is_lot_composite": {
"description": "true = only lot composite analyses (not tied to one vessel).",
"type": "boolean"
},
"recorded_after": {
"type": "string",
"description": "ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z."
},
"recorded_before": {
"type": "string",
"description": "ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z."
},
"sort": {
"description": "Sort by recorded time: recordedAt (oldest first) or -recordedAt (newest first).",
"type": "string",
"enum": [
"recordedAt",
"-recordedAt"
]
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id",
"lot_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_lot_additives(winery_id, lot_id, limit, offset)
Additives that have been added to a lot. GET /api/v1/wineries/{wineryId}/lots/{lotId}/additives.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"lot_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Lot id (e.g. lot_0123456789ABCDEFGHIJKLMN)."
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id",
"lot_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_lot_costs(winery_id, code_in, lot_in, effective_at, modified_after, ...)
Cost data per lot as of a date. Filter by lot code or id. GET /api/v1/wineries/{wineryId}/lotCosts.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"code_in": {
"description": "Only lots with one of these codes.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"lot_in": {
"description": "Only these lot ids (lot_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"effective_at": {
"description": "Costs as of this date-time (ISO 8601 with timezone).",
"type": "string"
},
"modified_after": {
"description": "Only costs modified after this date-time.",
"type": "string"
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_vessels(winery_id, q, code_in, id_in, lot_in, ...)
List tanks, barrels and other vessels with their codes and current contents. Filter by search term, code, id, lot or archived state. GET /api/v1/wineries/{wineryId}/vessels.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"q": {
"description": "Search term.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"code_in": {
"description": "Only vessels with one of these codes.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"id_in": {
"description": "Only these vessel ids (ves_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"lot_in": {
"description": "Only vessels holding one of these lot ids (lot_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"archived": {
"description": "true = only archived records, false = only active ones. Omit for the API default.",
"type": "boolean"
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_vessels_at_point_in_time(winery_id, effective_at, vessel_type, q, limit, ...)
Preview (vendor contract may change): What every vessel held at a past date-time (history of cellar contents). GET /api/v1/wineries/{wineryId}/vesselsAtPointInTime.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"effective_at": {
"type": "string",
"description": "The moment to look at (ISO 8601 with timezone, e.g. 2026-09-30T23:59:59Z)."
},
"vessel_type": {
"description": "Only these vessel types.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"q": {
"description": "Search term.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id",
"effective_at"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_actions(winery_id, state, reference_number, id, effective_after, ...)
The winery's work history across all action types (additions, analyses, transfers, racking, blending, bottling, fruit receiving, ...), filterable by type, state, reference number and dates. Each record has the action type, effective date and the lots and vessels involved; use the typed list tools for full detail of one kind. GET /api/v1/wineries/{wineryId}/actions.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"state": {
"description": "ACTIVE, DELETED or EDITED actions (default is up to InnoVint).",
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"ACTIVE",
"DELETED",
"EDITED"
]
}
},
"reference_number": {
"description": "Only actions with one of these reference numbers.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"id": {
"description": "Only these action ids (act_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"effective_after": {
"description": "Actions effective on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"effective_before": {
"description": "Actions effective on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_after": {
"description": "Actions created on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_before": {
"description": "Actions created on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_after": {
"description": "Actions updated on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_before": {
"description": "Actions updated on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"sort": {
"description": "Sort fields; prefix - for descending, e.g. [\"-effectiveAt\"].",
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"effectiveAt",
"-effectiveAt",
"createdAt",
"-createdAt",
"updatedAt",
"-updatedAt",
"deletedAt",
"-deletedAt"
]
}
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"action_type": {
"description": "Only these action types, e.g. [\"ADDITION\", \"RACK\"].",
"maxItems": 40,
"type": "array",
"items": {
"type": "string",
"enum": [
"ADDITION",
"ANALYSIS",
"BARREL_DOWN",
"BATCH_ADJUSTMENT",
"BLEED",
"BLEND",
"BOTTLE",
"BOTTLING_EN_TIRAGE",
"COST_ITEM",
"CREATE_LOT",
"CREATE_VESSELS",
"CUSTOM",
"DISGORGE_DOSAGE_PACKAGE",
"DISTILLATION",
"DRAIN",
"DRAIN_AND_PRESS",
"FILTER",
"FRUIT_WEIGHT_CHANGE",
"LOT_TAX_CLASS_CHANGE",
"MAKEUP_CHANGE",
"PROCESS_FRUIT_TO_VOLUME",
"PROCESS_FRUIT_TO_WEIGHT",
"PULL_SAMPLE",
"RACK",
"RACK_AND_RETURN",
"RECEIVE_DRY_GOOD",
"RECEIVE_FRUIT",
"TOPPING",
"TOP_OFF",
"TRANSFER",
"TRANSFER_INTER_FACILITY",
"TRANSFER_VOLUME_TO_WEIGHT",
"UPDATE_LOT",
"VOLUME_CHANGE",
"WATER_ADD",
"WEIGHT_CHANGE",
"WEIGHT_TRANSFER"
]
}
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_analysis_actions(winery_id, state, reference_number, id, effective_after, ...)
Analysis actions: the lab and in-house results entered in the winery, with the analyses (type, value, unit) and the lots and vessels they were taken on. GET /api/v1/wineries/{wineryId}/actions/analysisActions.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"state": {
"description": "ACTIVE, DELETED or EDITED actions (default is up to InnoVint).",
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"ACTIVE",
"DELETED",
"EDITED"
]
}
},
"reference_number": {
"description": "Only actions with one of these reference numbers.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"id": {
"description": "Only these action ids (act_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"effective_after": {
"description": "Actions effective on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"effective_before": {
"description": "Actions effective on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_after": {
"description": "Actions created on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_before": {
"description": "Actions created on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_after": {
"description": "Actions updated on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_before": {
"description": "Actions updated on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"sort": {
"description": "Sort fields; prefix - for descending, e.g. [\"-effectiveAt\"].",
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"effectiveAt",
"-effectiveAt",
"createdAt",
"-createdAt",
"updatedAt",
"-updatedAt",
"deletedAt",
"-deletedAt"
]
}
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_addition_actions(winery_id, state, reference_number, id, effective_after, ...)
Addition actions: what additives were added to which lots and vessels, and when. GET /api/v1/wineries/{wineryId}/additionActions.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"state": {
"description": "ACTIVE, DELETED or EDITED actions (default is up to InnoVint).",
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"ACTIVE",
"DELETED",
"EDITED"
]
}
},
"reference_number": {
"description": "Only actions with one of these reference numbers.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"id": {
"description": "Only these action ids (act_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"effective_after": {
"description": "Actions effective on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"effective_before": {
"description": "Actions effective on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_after": {
"description": "Actions created on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_before": {
"description": "Actions created on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_after": {
"description": "Actions updated on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_before": {
"description": "Actions updated on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"sort": {
"description": "Sort fields; prefix - for descending, e.g. [\"-effectiveAt\"].",
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"effectiveAt",
"-effectiveAt",
"createdAt",
"-createdAt",
"updatedAt",
"-updatedAt",
"deletedAt",
"-deletedAt"
]
}
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_transfer_actions(winery_id, state, reference_number, id, effective_after, ...)
Transfer actions: racking, filtering, topping off, barrel-down and other transfers between vessels. GET /api/v1/wineries/{wineryId}/transferActions.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"state": {
"description": "ACTIVE, DELETED or EDITED actions (default is up to InnoVint).",
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"ACTIVE",
"DELETED",
"EDITED"
]
}
},
"reference_number": {
"description": "Only actions with one of these reference numbers.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"id": {
"description": "Only these action ids (act_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"effective_after": {
"description": "Actions effective on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"effective_before": {
"description": "Actions effective on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_after": {
"description": "Actions created on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_before": {
"description": "Actions created on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_after": {
"description": "Actions updated on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_before": {
"description": "Actions updated on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"sort": {
"description": "Sort fields; prefix - for descending, e.g. [\"-effectiveAt\"].",
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"effectiveAt",
"-effectiveAt",
"createdAt",
"-createdAt",
"updatedAt",
"-updatedAt",
"deletedAt",
"-deletedAt"
]
}
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"action_type": {
"description": "Only these transfer types, e.g. [\"RACK\", \"FILTER\"].",
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"BARREL_DOWN",
"FILTER",
"RACK",
"TOP_OFF",
"TRANSFER"
]
}
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_adjustment_actions(winery_id, state, reference_number, id, effective_after, ...)
Adjustment actions: volume or weight changes, water adds and makeup changes. GET /api/v1/wineries/{wineryId}/actions/adjustmentActions.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"state": {
"description": "ACTIVE, DELETED or EDITED actions (default is up to InnoVint).",
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"ACTIVE",
"DELETED",
"EDITED"
]
}
},
"reference_number": {
"description": "Only actions with one of these reference numbers.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"id": {
"description": "Only these action ids (act_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"effective_after": {
"description": "Actions effective on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"effective_before": {
"description": "Actions effective on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_after": {
"description": "Actions created on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_before": {
"description": "Actions created on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_after": {
"description": "Actions updated on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_before": {
"description": "Actions updated on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"sort": {
"description": "Sort fields; prefix - for descending, e.g. [\"-effectiveAt\"].",
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"effectiveAt",
"-effectiveAt",
"createdAt",
"-createdAt",
"updatedAt",
"-updatedAt",
"deletedAt",
"-deletedAt"
]
}
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"action_type": {
"description": "Only these adjustment types.",
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"VOLUME_CHANGE",
"WEIGHT_CHANGE",
"WATER_ADD",
"MAKEUP_CHANGE"
]
}
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_receive_fruit_actions(winery_id, state, reference_number, id, effective_after, ...)
Fruit receiving actions (harvest intake) with the fruit received and the lots created. GET /api/v1/wineries/{wineryId}/actions/receiveFruitActions.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"state": {
"description": "ACTIVE, DELETED or EDITED actions (default is up to InnoVint).",
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"ACTIVE",
"DELETED",
"EDITED"
]
}
},
"reference_number": {
"description": "Only actions with one of these reference numbers.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"id": {
"description": "Only these action ids (act_…).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"effective_after": {
"description": "Actions effective on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"effective_before": {
"description": "Actions effective on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_after": {
"description": "Actions created on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"created_before": {
"description": "Actions created on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_after": {
"description": "Actions updated on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_before": {
"description": "Actions updated on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"sort": {
"description": "Sort fields; prefix - for descending, e.g. [\"-effectiveAt\"].",
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"id",
"-id",
"effectiveAt",
"-effectiveAt",
"createdAt",
"-createdAt",
"updatedAt",
"-updatedAt",
"deletedAt",
"-deletedAt"
]
}
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_analysis_types(q, slug, limit, offset)
The analysis types InnoVint knows (pH, TA, free SO2, Brix, ...), with the slug that innovint_create_analysis_action and the analysis filters need. GET /api/v1/analysisTypes.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"description": "Search term.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"slug": {
"description": "Only these slugs.",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[-a-zA-Z0-9_]{1,100}$"
}
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_additives(winery_id, q, id_in, product_name_in, tags, ...)
The winery's additive products and their batches. GET /api/v1/wineries/{wineryId}/additives.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"q": {
"description": "Search term.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"id_in": {
"description": "Only these additive ids.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"product_name_in": {
"description": "Only additives with one of these product names.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"tags": {
"description": "Only additives with these tags.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"archived": {
"description": "true = only archived records, false = only active ones. Omit for the API default.",
"type": "boolean"
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_vineyards(winery_id, id_in, limit, offset)
The winery's vineyards (grower sources). GET /api/v1/wineries/{wineryId}/vineyards.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"id_in": {
"description": "Only these vineyard ids.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_blocks(winery_id, id_in, vineyard_in, archived, limit, ...)
Vineyard blocks of the winery's vineyards. Filter by vineyard. GET /api/v1/wineries/{wineryId}/blocks.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"id_in": {
"description": "Only these block ids.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"vineyard_in": {
"description": "Only blocks of these vineyard ids.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"archived": {
"description": "true = only archived records, false = only active ones. Omit for the API default.",
"type": "boolean"
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_growers(winery_id, id, limit, offset)
The growers the winery buys fruit from. GET /api/v1/wineries/{wineryId}/growers.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"id": {
"description": "Only these grower ids.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_grower_receipts(winery_id, vintage, limit, offset)
Fruit receipts from growers for one vintage (year). GET /api/v1/wineries/{wineryId}/growerReceipts/{vintage}.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"vintage": {
"type": "integer",
"minimum": 1900,
"maximum": 2200,
"description": "Vintage year, e.g. 2026."
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id",
"vintage"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_vendors(winery_id, name, name_contains, id_in, sort, ...)
The winery's vendors (suppliers of additives, dry goods, services). GET /api/v1/wineries/{wineryId}/vendors.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"name": {
"description": "Exact vendor name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name_contains": {
"description": "Vendor name contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"id_in": {
"description": "Only these vendor ids.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"sort": {
"type": "string",
"enum": [
"name",
"-name"
]
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢innovint_list_bonds(winery_id, limit, offset)
The winery's bonded premises (TTB bonds), whose ids lots belong to. GET /api/v1/wineries/{wineryId}/bonds.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"limit": {
"description": "Records per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"offset": {
"description": "Records to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"winery_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴innovint_create_analysis_action(winery_id, effective_at, analyses, panel_name, note)
WRITE: records analysis results (e.g. pH 3.45, free SO2 28 mg/L) as a new analysis action in the winery's InnoVint records, effective at the given time. Each result needs an analysis type slug (innovint_list_analysis_types), a value and a unit, and a lot (add a vessel for a vessel-level result; without a vessel it is a lot composite result). The new action shows up in the cellar history and feeds lot data and reports; InnoVint's API has no delete here, so only call this when the numbers are confirmed. POST /api/v1/wineries/{wineryId}/actions/analysisActions.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"effective_at": {
"type": "string",
"description": "When the analysis was done (ISO 8601 with timezone, e.g. 2026-10-24T09:30:00Z)."
},
"analyses": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"analysis_type": {
"type": "string",
"pattern": "^[-a-zA-Z0-9_]{1,100}$",
"description": "Analysis type slug, e.g. \"ph\"."
},
"value": {
"type": "number",
"description": "The measured value."
},
"unit": {
"type": "string",
"minLength": 1,
"maxLength": 50,
"description": "Unit of the value, e.g. \"g/L\" or \"mg/L\" (use the unit InnoVint lists for the type)."
},
"lot_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Lot id (e.g. lot_0123456789ABCDEFGHIJKLMN)."
},
"vessel_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Vessel id for a vessel-level result; omit for a lot composite result (e.g. ves_0123456789ABCDEFGHIJKLMN)."
}
},
"required": [
"analysis_type",
"value",
"unit",
"lot_id"
]
}
},
"panel_name": {
"description": "Optional name of the panel/report these results belong to.",
"type": "string",
"maxLength": 100
},
"note": {
"description": "Optional note saved with the action.",
"type": "string",
"minLength": 1,
"maxLength": 10000
}
},
"required": [
"winery_id",
"effective_at",
"analyses"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡innovint_create_vendor(winery_id, name)
WRITE: adds a new vendor (supplier) by name to the winery's InnoVint records. Check innovint_list_vendors first to avoid a duplicate. POST /api/v1/wineries/{wineryId}/vendors.
入力スキーマ
{
"type": "object",
"properties": {
"winery_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "InnoVint winery id; list yours with innovint_list_wineries (e.g. wnry_0123456789ABCDEFGHIJKLMN)."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Vendor name."
}
},
"required": [
"winery_id",
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}コミュニティ
エビデンス