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

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

## Links
- Registry page: https://www.getdrio.com/mcp/com-commonlands-optics-mcp
- Repository: https://github.com/CommonlandsAbbe/commonlands-mcp
- Website: https://commonlands.com/pages/agentic-mcp-for-m12-lenses-and-optics

## Install
- Endpoint: https://mcp.commonlands.com/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://mcp.commonlands.com/mcp

## Tools
- calculate_field_of_view (Calculate Commonlands field of view) - 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. Endpoint: https://mcp.commonlands.com/mcp
- match_lens_to_sensor (Match Commonlands lenses to a sensor) - 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. Endpoint: https://mcp.commonlands.com/mcp
- search_lens_catalog (Search Commonlands lens catalog) - 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. Endpoint: https://mcp.commonlands.com/mcp
- get_lens_distortion_profile (Get Commonlands lens distortion profile) - 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. Endpoint: https://mcp.commonlands.com/mcp
- get_sensor_specs (Get sensor specs) - 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. Endpoint: https://mcp.commonlands.com/mcp
- compare_lenses (Compare Commonlands lenses) - 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. Endpoint: https://mcp.commonlands.com/mcp
- get_product_page_details (Get product page details) - 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. Endpoint: https://mcp.commonlands.com/mcp
- get_catalog_snapshot_status (Get joined catalog snapshot status) - Return fixture-backed joined catalog counts, validation status, source provenance, live connector readiness, and non-authoritative product-truth warning. Endpoint: https://mcp.commonlands.com/mcp
- get_shopify_ucp_readiness (Get Shopify Storefront/UCP readiness) - Report connector-free Shopify Storefront MCP and UCP Catalog compatibility, launch blockers, and Commonlands engineering differentiators. Endpoint: https://mcp.commonlands.com/mcp
- get_shopify_readonly_config_status (Get Shopify read-only config status) - Report sanitized Cloudflare Shopify binding presence, approved read scopes, and read-only safety flags without exposing secrets or calling Shopify. Endpoint: https://mcp.commonlands.com/mcp
- read_shopify_products (Read Shopify products) - 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. Endpoint: https://mcp.commonlands.com/mcp
- create_cart (Create Shopify cart) - 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. Endpoint: https://mcp.commonlands.com/mcp
- get_cart (Get Shopify cart) - Retrieve a Shopify-owned cart by cart id. Cart persistence comes from Shopify; agents must retain cart id or continue_url across sessions. Endpoint: https://mcp.commonlands.com/mcp
- update_cart (Update Shopify cart) - 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. Endpoint: https://mcp.commonlands.com/mcp
- search_catalog (Search UCP catalog) - 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. Endpoint: https://mcp.commonlands.com/mcp
- lookup_catalog (Lookup UCP catalog products) - 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. Endpoint: https://mcp.commonlands.com/mcp
- get_product (Get UCP catalog product) - 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. Endpoint: https://mcp.commonlands.com/mcp
- prepare_shopify_purchase_handoff (Prepare Shopify purchase handoff) - 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. Endpoint: https://mcp.commonlands.com/mcp
- get_purchase_route_options (Get purchase route options) - 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. Endpoint: https://mcp.commonlands.com/mcp
- recommend_lenses_for_application (Recommend lenses for an application) - 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. Endpoint: https://mcp.commonlands.com/mcp
- submit_rfq (Submit an RFQ or question to Commonlands) - 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. Endpoint: https://mcp.commonlands.com/mcp

## Resources
- commonlands://server/connection - Canonical public MCP endpoint: https://mcp.commonlands.com/mcp. Use this URL for clients, metadata, and agent-facing descriptions; localhost is local-development only. MIME type: application/json
- commonlands://catalog/lenses - Fixture-backed Phase 1 joined catalog of Commonlands M12 lenses, C-mount lenses, focal lengths, mounts, image circles, and product handoff fields. MIME type: application/json
- commonlands://catalog/sensors - Sensor catalog for lens field of view inputs: active area, resolution, and pixel pitch. Tool calls prefer the read-only live sensor table when configured, with fixture fallback when unavailable. MIME type: application/json
- commonlands://catalog/snapshot-status - Fixture-backed catalog validation, join counts, source provenance, connector-readiness status, and product-truth boundaries for M12/C-mount lens recommendations. MIME type: application/json
- commonlands://compatibility/shopify-ucp - Compatibility report for Shopify Storefront MCP and UCP Catalog launch planning, including read-only product truth and approved Shopify-owned cart boundaries. MIME type: application/json
- commonlands://lenses/CIL078 - Per-lens Commonlands optical/catalog resource for CIL078: mount, focal length, image circle, distortion status, and product handoff fields. MIME type: application/json
- commonlands://lenses/CIL250 - Per-lens Commonlands optical/catalog resource for CIL250: mount, focal length, image circle, distortion status, and product handoff fields. MIME type: application/json
- commonlands://lenses/CIL350 - Per-lens Commonlands optical/catalog resource for CIL350: mount, focal length, image circle, distortion status, and product handoff fields. MIME type: application/json
- commonlands://lenses/CIL051 - Per-lens Commonlands optical/catalog resource for CIL051: mount, focal length, image circle, distortion status, and product handoff fields. MIME type: application/json
- commonlands://lenses/CIL121 - Per-lens Commonlands optical/catalog resource for CIL121: mount, focal length, image circle, distortion status, and product handoff fields. MIME type: application/json
- commonlands://sensors/IMX477 - Per-sensor Commonlands resource for IMX477: active area, resolution, pixel pitch, and FoV input metadata. MIME type: application/json
- commonlands://sensors/IMX219 - Per-sensor Commonlands resource for IMX219: active area, resolution, pixel pitch, and FoV input metadata. MIME type: application/json
- commonlands://sensors/AR0234 - Per-sensor Commonlands resource for AR0234: active area, resolution, pixel pitch, and FoV input metadata. MIME type: application/json

## Prompts
- select_lens_for_sensor_fov_working_distance - Select lens for sensor, FoV, and working distance Guide a model to use Commonlands MCP optics tools for sensor-specific lens selection instead of self-computed FoV math. Arguments: sensor, target_fov, working_distance, mount, constraints

## Metadata
- Owner: com.commonlands
- Version: 0.2.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 11, 2026
- Source: https://registry.modelcontextprotocol.io
