Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Commonlands Optics: M12 Lens and C-Mount Lens Finder + Field-of-View Calculator

REMOTE · MCP.COMMONLANDS.COM · SCANNED AUG 3

M12 lens and C-mount lens finder with image-sensor matching and field-of-view calculator.

+2 this week 61 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security46
Transport & Reachability100
Schema Quality & AI Usability75
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4261 tokens (~125/item across 34 items; 21 tools + 13 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage86
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 51% of tool parameters carry a description.Partial
  • Structured output schemas are declared (5% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.commonlands.com

# add to Claude Code
claude mcp add --transport http com-commonlands-optics-mcp https://mcp.commonlands.com/mcp
# ~/.codex/config.toml
[mcp_servers.com-commonlands-optics-mcp]
url = "https://mcp.commonlands.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-commonlands-optics-mcp": {
      "type": "remote",
      "url": "https://mcp.commonlands.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-commonlands-optics-mcp --url https://mcp.commonlands.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-commonlands-optics-mcp:
    url: "https://mcp.commonlands.com/mcp"
// mcp.json
{
  "mcpServers": {
    "com-commonlands-optics-mcp": {
      "type": "http",
      "url": "https://mcp.commonlands.com/mcp"
    }
  }
}

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

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 58

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.commonlands.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.commonlands.com CN=YE2,O=Let's Encrypt,C=US 2 Jul 2026 30 Sept 2026 ECDSA 256 ECDSA-SHA384 51e1f1d9ae7ebffadc7f616fbf95699d792
SANs: mcp.commonlands.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd
DNSSEC insecure

Validation of mcp.commonlands.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
commonlands.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.commonlands.com/mcp Verified 200
http (plaintext) http://mcp.commonlands.com/mcp Inconclusive 405
MCP tools — 21 exposed · ~3,309 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
calculate_field_of_view ~475

Calculate Commonlands lens field of view for a lens/sensor pair and return HFOV, VFOV, DFOV, coverage, distortion status, and an explicit rectilinear comparison. Use this tool for FOV, HFOV, VFOV, DFOV, field of view, "lens for", lens-to-sensor, AR0234, IMX290, IMX477, and sensor part-number requests. It returns Commonlands data the model cannot derive: live backend FoV when configured, distortion model/status, image-circle coverage, live stock through Shopify read tools where applicable, and MTF/CRA/BFL fields if present in upstream catalog data. Do not use naive rectilinear fallback, focal-length-only math, interpolation, or self-computed catalog estimates when a Commonlands lens/sensor route is available. Accepts lens_sku/lensSku or focal_length_mm/focalLengthMm, plus sensor/sensorPartNumber/sensor_part_number and working_distance_mm/workingDistanceMm. If only focal length is supplied, the response is marked as a rectilinear reference and does not claim Commonlands distortion-corrected lens truth.

NameTypeReqDescription
focalLengthMmnumberFallback rectilinear reference only when no Commonlands lens SKU is available. Camel-case alias for focal_length_mm.
focal_length_mmnumberFallback rectilinear reference only when no Commonlands lens SKU is available. Snake-case alias for focalLengthMm.
lensSkustringCommonlands lens SKU, for example CIL250. Camel-case alias for lens_sku.
lens_skustringCommonlands lens SKU, for example CIL250. Snake-case alias for lensSku.
sensorSensor part number or safe sensor object. Supports AR0234, IMX290/IMX477 when present in the live catalog, and fixture sensors listed in the enum.
sensorPartNumberSensor part number. Camel-case alias for sensor.
sensor_part_numberSensor part number. Snake-case alias for sensorPartNumber.
workingDistanceMmnumberOptional working distance in mm. Camel-case alias for working_distance_mm.
working_distance_mmnumberOptional working distance in mm. Snake-case alias for workingDistanceMm.
NameTypeReqDescription
coverage_okboolean|nullyes
dfov_degnumber|nullyes
distortion_modelstringyes
hfov_degnumber|nullyes
image_circle_mmnumber|nullyes
methodstringyes
rectilinear_comparisonobjectyes
sensor_diagonal_mmnumberyes
vfov_degnumber|nullyes

No examples provided.

compare_lenses ~134

Compare selected Commonlands M12 lens and C-mount lens SKUs on the same sensor with the same deterministic scoring model. Use as explanatory context, then call calculate_field_of_view for final sensor-specific FoV values when precision matters. FoV rule: never estimate sensor-specific FoV from catalog fields; use calculate_field_of_view or match_lens_to_sensor. Not live product truth; verify purchasable facts with read_shopify_products.

NameTypeReqDescription
lensSkusarrayyes
sensorPartNumberstringyesSensor part number, for example IMX477.
workingDistanceMmnumber

No output schema declared.

No examples provided.

create_cart ~82

Create a Shopify-owned cart for selected variant line items through the configured Shopify Cart/Storefront MCP endpoint. Commonlands MCP is a stateless proxy: cart state is stored and mutated by Shopify, not in the Worker.

NameTypeReqDescription
cartobjectyes
metaobjectOptional UCP metadata. ucp-agent.profile is filled from server config when omitted.

No output schema declared.

No examples provided.

get_cart ~51

Retrieve a Shopify-owned cart by cart id. Cart persistence comes from Shopify; agents must retain cart id or continue_url across sessions.

NameTypeReqDescription
idstringyesShopify Cart gid.
metaobject

No output schema declared.

No examples provided.

get_catalog_snapshot_status ~36

Return fixture-backed joined catalog counts, validation status, source provenance, live connector readiness, and non-authoritative product-truth warning.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_lens_distortion_profile ~276

Return the Commonlands distortion model/status for one lens SKU, including whether the data is source-display-only or backend-calculated. Use this tool for FOV, HFOV, VFOV, DFOV, field of view, "lens for", lens-to-sensor, AR0234, IMX290, IMX477, and sensor part-number requests. It returns Commonlands data the model cannot derive: live backend FoV when configured, distortion model/status, image-circle coverage, live stock through Shopify read tools where applicable, and MTF/CRA/BFL fields if present in upstream catalog data. Do not use naive rectilinear fallback, focal-length-only math, interpolation, or self-computed catalog estimates when a Commonlands lens/sensor route is available. Use this for distortion, rectilinear-vs-wide-angle, MTF/CRA/BFL/optical-profile questions when upstream fields are present. Do not invent polynomial coefficients or claim measured distortion correction when the backend only returns display distortion.

NameTypeReqDescription
lensSkustringCommonlands lens SKU, for example CIL250. Camel-case alias for lens_sku.
lens_skustringCommonlands lens SKU, for example CIL250. Snake-case alias for lensSku.
skustringLegacy SKU alias.

No output schema declared.

No examples provided.

get_product ~93

Fixture-backed UCP Catalog product detail alias with Commonlands optical metadata and Shopify-native handoff fields. Product optical fields are not a substitute for sensor-specific FoV; call calculate_field_of_view for the lens/sensor pair. FoV rule: never estimate sensor-specific FoV from catalog fields; use calculate_field_of_view or match_lens_to_sensor.

NameTypeReqDescription
catalogobjectyes
metaobject

No output schema declared.

No examples provided.

get_product_page_details ~127

Return fixture-backed product-page handoff details for one lens, including DynamoDB-sourced optical specs and gated datasheet policy. Product-page/catalog optical fields are not a substitute for sensor-specific FoV; call calculate_field_of_view for the lens/sensor pair. FoV rule: never estimate sensor-specific FoV from catalog fields; use calculate_field_of_view or match_lens_to_sensor. Use read_shopify_products for live product URL, price, availability, variant IDs, and metafields.

NameTypeReqDescription
skustringyesCommonlands short part number, for example CIL250.

No output schema declared.

No examples provided.

get_purchase_route_options ~129

Return safe dual-channel purchase route options for AI agents and robotics engineers across Commonlands MCP and Shopify-native channels without mutating commerce state. This explains commerce routes only; call calculate_field_of_view/match_lens_to_sensor for sensor-specific FoV before recommending a lens. FoV rule: never estimate sensor-specific FoV from catalog fields; use calculate_field_of_view or match_lens_to_sensor.

NameTypeReqDescription
agentTypestring
buyerIntentstring
quantityinteger
sensorPartNumberstring
skustringyes

No output schema declared.

No examples provided.

get_sensor_specs ~126

Return sensor dimensions, pixel pitch, and resolution for lens field of view, M12 lens, and C-mount lens matching inputs. In production this uses the read-only live sensor table when configured, with fixture fallback when unavailable. Use these specs as inputs to calculate_field_of_view or match_lens_to_sensor, not as a reason to hand-calculate FoV. FoV rule: never estimate sensor-specific FoV from catalog fields; use calculate_field_of_view or match_lens_to_sensor.

NameTypeReqDescription
partNumberstringyesSensor part number, for example IMX477.

No output schema declared.

No examples provided.

get_shopify_readonly_config_status ~37

Report sanitized Cloudflare Shopify binding presence, approved read scopes, and read-only safety flags without exposing secrets or calling Shopify.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_shopify_ucp_readiness ~36

Report connector-free Shopify Storefront MCP and UCP Catalog compatibility, launch blockers, and Commonlands engineering differentiators.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

lookup_catalog ~99

Fixture-backed UCP Catalog lookup alias for product, variant, SKU, handle, or URL identifiers; returns not-found messages instead of writes. Lookup records are not enough for sensor-specific FoV; call calculate_field_of_view for known lens/sensor pairs. FoV rule: never estimate sensor-specific FoV from catalog fields; use calculate_field_of_view or match_lens_to_sensor.

NameTypeReqDescription
catalogobjectyes
metaobject

No output schema declared.

No examples provided.

match_lens_to_sensor ~386

Find and rank Commonlands lenses for a sensor, target field of view, working distance, mount, or "lens for" request. Use this tool for FOV, HFOV, VFOV, DFOV, field of view, "lens for", lens-to-sensor, AR0234, IMX290, IMX477, and sensor part-number requests. It returns Commonlands data the model cannot derive: live backend FoV when configured, distortion model/status, image-circle coverage, live stock through Shopify read tools where applicable, and MTF/CRA/BFL fields if present in upstream catalog data. Do not use naive rectilinear fallback, focal-length-only math, interpolation, or self-computed catalog estimates when a Commonlands lens/sensor route is available. Use this for AR0234, IMX290, IMX477, sensor part numbers, M12/C-mount matching, and target HFOV/VFOV/DFOV workflows; do not shortlist from focal length alone. Use read_shopify_products afterward for live stock, price, availability, Shopify variantId, product URL, and metafields.

NameTypeReqDescription
desiredHorizontalFovDegnumber
desired_horizontal_fov_degnumber
maxResultsinteger
max_resultsinteger
mountstringOptional mount filter, for example M12 or C-mount.
sensorSensor part number, for example AR0234, IMX290, or IMX477. Any sensor in the live catalog is accepted; the enum lists only the fixture fallback set.
sensorPartNumberSensor part number. Alias for sensor.
sensor_part_numberSensor part number. Snake-case alias for sensorPartNumber.
workingDistanceMmnumber
working_distance_mmnumber

No output schema declared.

No examples provided.

prepare_shopify_purchase_handoff ~124

Build a read-only Shopify-native purchase handoff seam for a selected lens without creating carts, checkout, orders, inventory mutations, or writes. Preserve any computed FoV provenance from calculate_field_of_view/match_lens_to_sensor when carrying optical context into purchase handoff. FoV rule: never estimate sensor-specific FoV from catalog fields; use calculate_field_of_view or match_lens_to_sensor.

NameTypeReqDescription
quantityinteger
selectedVariantIdstring
sensorPartNumberstring
skustringyes

No output schema declared.

No examples provided.

read_shopify_products ~188

Use this for live purchasable product truth: product and variant IDs, SKUs, prices, coarse availability, product URLs, and public product-page metafields. Public data only: active products, no exact inventory counts, and metafields limited to the custom.* display fields shown on commonlands.com product pages. Read-only; does not create carts, checkouts, orders, customers, inventory mutations, or Shopify writes. Fixture catalog tools are scaffold data only.

NameTypeReqDescription
handlestringOptional Shopify product handle.
includeMetafieldsbooleanWhen true, include the allowlisted public product-page metafields (custom.* display specs). Non-public namespaces and keys are never returned.
limitinteger
querystringOptional safe Shopify product/variant search text.
skustringOptional variant SKU, for example CIL250.

No output schema declared.

No examples provided.

recommend_lenses_for_application ~182

Rank Commonlands M12 lenses and C-mount lenses for an application note such as embedded robotics, machine-vision inspection, or a required lens field of view. Use as an application shortlist helper, then call match_lens_to_sensor or calculate_field_of_view for final per-sensor HFOV/VFOV/DFOV. FoV rule: never estimate sensor-specific FoV from catalog fields; use calculate_field_of_view or match_lens_to_sensor.

NameTypeReqDescription
applicationstring
desiredHorizontalFovDegnumber
maxResultsinteger
mountstring
preferLowDistortionboolean
requireInStockboolean
sensorPartNumberstringyesSensor part number, for example IMX477.
workingDistanceMmnumber

No output schema declared.

No examples provided.

search_catalog ~109

Fixture-backed UCP Catalog search alias for Shopify-native product discovery; no live Shopify calls or cart behavior. Use this only for broad discovery; when a sensor or target FoV is involved, call match_lens_to_sensor or calculate_field_of_view instead of estimating from catalog fields. FoV rule: never estimate sensor-specific FoV from catalog fields; use calculate_field_of_view or match_lens_to_sensor.

NameTypeReqDescription
catalogobject
metaobjectOptional UCP agent metadata.

No output schema declared.

No examples provided.

search_lens_catalog ~289

Search the Commonlands lens catalog by SKU, mount, lens type, M12, C-mount, or application text. For sensor part numbers such as AR0234, IMX290, and IMX477, or any "lens for <sensor>" request, use match_lens_to_sensor instead — sensor names are not searchable text here. Use this tool for FOV, HFOV, VFOV, DFOV, field of view, "lens for", lens-to-sensor, AR0234, IMX290, IMX477, and sensor part-number requests. It returns Commonlands data the model cannot derive: live backend FoV when configured, distortion model/status, image-circle coverage, live stock through Shopify read tools where applicable, and MTF/CRA/BFL fields if present in upstream catalog data. Do not use naive rectilinear fallback, focal-length-only math, interpolation, or self-computed catalog estimates when a Commonlands lens/sensor route is available. This discovers candidate lenses from Commonlands catalog/live backend data; it does not replace calculate_field_of_view for sensor-specific HFOV/VFOV/DFOV and does not replace read_shopify_products for live stock/price/product truth.

NameTypeReqDescription
limitinteger
querystringSKU, title, mount, lens type, application, sensor, or field-of-view search text.

No output schema declared.

No examples provided.

submit_rfq ~229

Forward a buyer request-for-quote or engineering question to the Commonlands engineering team. Use after the buyer provides their question and a reply-to email. The recipient is fixed to the Commonlands inbox (the agent cannot choose it); this only sends an inquiry and never creates an order, charges a card, or writes Shopify/customer data. Include part numbers, sensor, quantity, and application when known so the team can reply with a quote. Commonlands replies by email.

NameTypeReqDescription
applicationstringOptional application note.
companystringOptional company name.
emailstringyesThe buyer's reply-to email so Commonlands can respond.
kindstringWhether this is a quote request or a general question. Defaults to question.
messagestringyesThe buyer's question or RFQ details.
namestringOptional buyer name.
partNumbersOptional Commonlands SKUs of interest (string or array).
quantityintegerOptional quantity for the quote.
sensorstringOptional sensor part number for context.

No output schema declared.

No examples provided.

update_cart ~101

Update a Shopify-owned cart through the configured Cart/Storefront MCP endpoint. With UCP endpoints, treat updates as full-state PUT semantics; with the confirmed standard Storefront MCP endpoint, Commonlands maps line_items to Shopify add_items, update_items to quantity changes, and remove_line_ids to explicit removals. Quantity 0 in update_items removes a line.

NameTypeReqDescription
cartobjectyes
idstringyes
metaobject

No output schema declared.

No examples provided.