InnoVint MCP by usefulapi

Review winery lots, vessels, analyses and work history; record analyses and add vendors.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
99%
命名品質
76%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(5)

  • LOWTool 'innovint_get_lot_components_summary' name length outside 3-30 range在 innovint_get_lot_components_summary 中
  • LOWTool 'innovint_list_vessels_at_point_in_time' name length outside 3-30 range在 innovint_list_vessels_at_point_in_time 中
  • LOWTool 'innovint_list_adjustment_actions' name length outside 3-30 range在 innovint_list_adjustment_actions 中
  • LOWTool 'innovint_list_receive_fruit_actions' name length outside 3-30 range在 innovint_list_receive_fruit_actions 中
  • LOWTool 'innovint_create_analysis_action' name length outside 3-30 range在 innovint_create_analysis_action 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~11,184Token(工具定義)
~3.4 KB典型回應大小
顯著的注意力影響(128k 上下文的 8.74%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `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"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本27 個工具