MVisionPro Engineering Tools
Read-only machine-vision calculations for optics, interfaces, line scan, sensors, and models.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"tools": {
"url": "https://mvisionpro.com/tools/mcp"
}
}
}Remote endpoints
https://mvisionpro.com/tools/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢optics(camera, sensor, sensorWidthMm, sensorHeightMm, resolutionWidthPx, ...)
Calculate camera geometry, object sampling, exposure and depth of field. Provide exactly one sensor source: camera, sensor, or both manual sensor axes. Camera cannot be combined with manual passport fields. fovMm and wdMm are always required.
Input Schema
{
"type": "object",
"properties": {
"camera": {
"description": "Catalog camera model; exclusive with sensor or manual sensor axes.",
"type": "string",
"maxLength": 128
},
"sensor": {
"description": "Optical format; exclusive with camera or manual sensor axes.",
"type": "string",
"maxLength": 32
},
"sensorWidthMm": {
"description": "Manual active sensor width in millimetres; use with sensorHeightMm.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"sensorHeightMm": {
"description": "Manual active sensor height in millimetres; use with sensorWidthMm.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"resolutionWidthPx": {
"description": "Manual horizontal resolution; use with resolutionHeightPx.",
"type": "integer",
"minimum": 1,
"maximum": 200000
},
"resolutionHeightPx": {
"description": "Manual vertical resolution; use with resolutionWidthPx.",
"type": "integer",
"minimum": 1,
"maximum": 200000
},
"pixelSizeXUm": {
"description": "Manual horizontal pixel size in micrometres; use with pixelSizeYUm.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"pixelSizeYUm": {
"description": "Manual vertical pixel size in micrometres; use with pixelSizeXUm.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"fovMm": {
"description": "Field-of-view width in millimetres.",
"type": "number",
"minimum": 1,
"maximum": 5000
},
"fovHeightMm": {
"description": "Optional field-of-view height in millimetres.",
"type": "number",
"minimum": 1,
"maximum": 5000
},
"wdMm": {
"description": "Working distance in millimetres.",
"type": "number",
"minimum": 10,
"maximum": 20000
},
"defectMm": {
"description": "Feature size in millimetres.",
"type": "number",
"minimum": 0.001,
"maximum": 100
},
"nPx": {
"description": "Pixels required across a feature.",
"type": "number",
"minimum": 2,
"maximum": 20
},
"speedMmS": {
"description": "Object speed in millimetres per second.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
},
"blurPx": {
"description": "Allowed motion blur in pixels.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 20
},
"fNumber": {
"description": "Lens F-number.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 256
},
"motionAxis": {
"description": "Motion axis.",
"default": "width",
"enum": [
"width",
"height"
],
"type": "string"
},
"lang": {
"description": "Presentation language.",
"default": "en",
"enum": [
"en",
"ru"
],
"type": "string"
}
},
"required": [
"fovMm",
"wdMm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Provide exactly one sensor source: camera, sensor, or both manual sensor axes. Camera cannot be combined with manual passport fields. fovMm and wdMm are always required.",
"additionalProperties": false,
"oneOf": [
{
"required": [
"camera"
]
},
{
"required": [
"sensor"
]
},
{
"required": [
"sensorWidthMm",
"sensorHeightMm"
]
}
]
}🟢interface(camera, width, height, widthPx, heightPx, ...)
Calculate stream bandwidth and evaluate interface options. Provide either camera or the complete manual stream set widthPx, heightPx, fps, bits, streamType and packed; do not combine the two modes. width and height are independent aliases for widthPx and heightPx, so mixed alias pairs are accepted, but do not send both aliases for one axis. The discovery alternatives describe complete sets; execution also rejects partial manual sets and every camera/manual mixture, for example camera with widthPx.
Input Schema
{
"type": "object",
"properties": {
"camera": {
"description": "Catalog camera model; exclusive with manual stream fields.",
"type": "string",
"maxLength": 128
},
"width": {
"description": "Alias for widthPx; do not send both.",
"type": "integer",
"minimum": 1,
"maximum": 200000
},
"height": {
"description": "Alias for heightPx; do not send both.",
"type": "integer",
"minimum": 1,
"maximum": 200000
},
"widthPx": {
"description": "Manual frame width in pixels.",
"type": "integer",
"minimum": 1,
"maximum": 200000
},
"heightPx": {
"description": "Manual frame height in pixels.",
"type": "integer",
"minimum": 1,
"maximum": 200000
},
"fps": {
"description": "Frame rate.",
"type": "number",
"minimum": 0.001,
"maximum": 100000
},
"bits": {
"description": "Logical bit depth.",
"enum": [
8,
10,
12,
14,
16
],
"type": "integer"
},
"streamType": {
"description": "Stream type.",
"enum": [
"mono",
"bayer",
"rgb"
],
"type": "string"
},
"packed": {
"description": "Whether a greater-than-eight-bit stream is packed.",
"type": "boolean"
},
"cameras": {
"description": "Camera count.",
"type": "integer",
"minimum": 1,
"maximum": 64
},
"interface": {
"description": "Optional interface family to evaluate.",
"type": "string",
"maxLength": 32
},
"cableLengthM": {
"description": "Cable length in metres.",
"type": "number",
"minimum": 0.1,
"maximum": 1000
},
"lang": {
"description": "Presentation language.",
"default": "en",
"enum": [
"en",
"ru"
],
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Provide either camera or the complete manual stream set widthPx, heightPx, fps, bits, streamType and packed; do not combine the two modes. width and height are independent aliases for widthPx and heightPx, so mixed alias pairs are accepted, but do not send both aliases for one axis. The discovery alternatives describe complete sets; execution also rejects partial manual sets and every camera/manual mixture, for example camera with widthPx.",
"additionalProperties": false,
"allOf": [
{
"oneOf": [
{
"required": [
"camera"
]
},
{
"required": [
"widthPx",
"heightPx",
"fps",
"bits",
"streamType",
"packed"
]
},
{
"required": [
"widthPx",
"height",
"fps",
"bits",
"streamType",
"packed"
]
},
{
"required": [
"width",
"heightPx",
"fps",
"bits",
"streamType",
"packed"
]
},
{
"required": [
"width",
"height",
"fps",
"bits",
"streamType",
"packed"
]
}
]
},
{
"not": {
"required": [
"width",
"widthPx"
]
}
},
{
"not": {
"required": [
"height",
"heightPx"
]
}
}
]
}🟢linescan(widthMm, speedMmS, speedMMin, mode, defectMm, ...)
Calculate line width, line rate, exposure and confirmed camera modes. widthMm is required. Provide exactly one speed field (speedMmS or speedMMin) and exactly one calculation set (defectMm+nPx or accuracyMm+kPx); mode is inferred when omitted. samplingMode defaults to xy, or to width when longitudinalStepMm is present.
Input Schema
{
"type": "object",
"properties": {
"widthMm": {
"description": "Inspected web width in millimetres.",
"type": "number",
"minimum": 1,
"maximum": 10000
},
"speedMmS": {
"description": "Speed in millimetres per second; exclusive with speedMMin.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
},
"speedMMin": {
"description": "Alternative speed in metres per minute; exclusive with speedMmS.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 6000
},
"mode": {
"description": "Calculation mode; inferred from the exclusive defect or accuracy input set when omitted.",
"enum": [
"detect",
"measure-v2"
],
"type": "string"
},
"defectMm": {
"description": "Minimum defect for detect mode.",
"type": "number",
"minimum": 0.001,
"maximum": 100
},
"nPx": {
"description": "Pixels per defect for detect mode.",
"type": "number",
"minimum": 2,
"maximum": 20
},
"accuracyMm": {
"description": "Allowed error for measure-v2 mode.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1.7976931348623157e+308
},
"kPx": {
"description": "Sampling coefficient for measure-v2 mode.",
"enum": [
3,
5,
10
],
"type": "integer"
},
"samplingMode": {
"description": "Two-axis or explicit longitudinal sampling.",
"default": "xy",
"enum": [
"xy",
"width"
],
"type": "string"
},
"longitudinalStepMm": {
"description": "Required when samplingMode is width.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1.7976931348623157e+308
},
"marginPct": {
"description": "Line-rate reserve percentage.",
"default": 20,
"type": "number",
"minimum": 0,
"maximum": 50
},
"dutyCycle": {
"description": "Fraction of a line period available for exposure.",
"default": 0.8,
"type": "number",
"minimum": 0.1,
"maximum": 1
},
"camera": {
"description": "Optional line-scan camera model.",
"type": "string",
"maxLength": 128
},
"interface": {
"description": "Optional interface family filter.",
"type": "string",
"maxLength": 32
},
"pixelFormat": {
"description": "Optional confirmed mode pixel format.",
"type": "string",
"maxLength": 32
},
"tdiStages": {
"description": "Optional TDI stage requirement.",
"type": "integer",
"minimum": 1,
"maximum": 256
},
"lang": {
"description": "Presentation language.",
"default": "en",
"enum": [
"en",
"ru"
],
"type": "string"
}
},
"required": [
"widthMm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "widthMm is required. Provide exactly one speed field (speedMmS or speedMMin) and exactly one calculation set (defectMm+nPx or accuracyMm+kPx); mode is inferred when omitted. samplingMode defaults to xy, or to width when longitudinalStepMm is present.",
"additionalProperties": false,
"allOf": [
{
"oneOf": [
{
"required": [
"speedMmS"
]
},
{
"required": [
"speedMMin"
]
}
]
},
{
"oneOf": [
{
"required": [
"defectMm",
"nPx"
]
},
{
"required": [
"accuracyMm",
"kPx"
]
}
]
}
]
}🟢analog(q, limit, lang)
Compare one unambiguous competitor model with bounded Hikrobot candidates. Compare one unambiguous competitor model with a bounded set of public Hikrobot candidates.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Competitor model.",
"type": "string",
"minLength": 2,
"maxLength": 128
},
"limit": {
"description": "Maximum results.",
"type": "integer",
"minimum": 1,
"maximum": 20
},
"lang": {
"description": "Presentation language.",
"default": "en",
"enum": [
"en",
"ru"
],
"type": "string"
}
},
"required": [
"q"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Compare one unambiguous competitor model with a bounded set of public Hikrobot candidates.",
"additionalProperties": false
}🟢sensors(model, sensor, lang)
Get a sensor aggregation by exactly one camera model or sensor part. Provide exactly one lookup key: a catalog camera model or a sensor part number.
Input Schema
{
"type": "object",
"properties": {
"model": {
"description": "Catalog camera model; exclusive with sensor.",
"type": "string",
"maxLength": 128
},
"sensor": {
"description": "Sensor part number; exclusive with model.",
"type": "string",
"maxLength": 64
},
"lang": {
"description": "Presentation language.",
"default": "en",
"enum": [
"en",
"ru"
],
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Provide exactly one lookup key: a catalog camera model or a sensor part number.",
"additionalProperties": false,
"oneOf": [
{
"required": [
"model"
]
},
{
"required": [
"sensor"
]
}
]
}🟢models(q, limit, lang)
Search the bounded public catalog projection. Search the bounded public catalog projection by literal model, alias, SKU or slug.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Literal model, alias, SKU or slug search.",
"type": "string",
"minLength": 2,
"maxLength": 128
},
"limit": {
"description": "Maximum results.",
"type": "integer",
"minimum": 1,
"maximum": 20
},
"lang": {
"description": "Presentation language.",
"default": "en",
"enum": [
"en",
"ru"
],
"type": "string"
}
},
"required": [
"q"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Search the bounded public catalog projection by literal model, alias, SKU or slug.",
"additionalProperties": false
}Community
Evidence