Skip to main content
Glama

Logitech Sync MCP

English | Français

CI Python 3.12+ License: MIT

A read-only Model Context Protocol server for the Logitech Sync Cloud API. It turns the API's place inventory endpoint into nine focused tools that AI clients can use to inspect rooms, desks, devices, health, occupancy, coverage, environmental readings, and network information.

The server is written in Python, managed with UV, and connects to Logitech Sync with mutual TLS (mTLS). Certificate material stays on the local machine and is never accepted as a tool argument or returned in a tool response.

This is an independent integration and is not affiliated with or endorsed by Logitech. See Notices.

IMPORTANT

This integration is strictly read-only. Logitech Sync Cloud API 0.1.4 exposes the inventory operationGET /org/{orgId}/place; this project does not provide write, update, or delete operations. Authorized administrators can obtain the vendor API documentation from Sync Portal.

Tools

Tool

Purpose

logitech_sync_check_connection

Validate the configuration, mTLS connection, license, and organisation access with a minimal request.

logitech_sync_list_places

Read a native page of rooms or desks with explicit projection and cursor controls.

logitech_sync_search_inventory

Search places and devices by name, ID, serial number, version, contract, IP address, MAC address, or hostname.

logitech_sync_get_inventory_summary

Summarise places, coverage, device types, models, versions, statuses, and health.

logitech_sync_list_device_issues

Find offline, warning, error, stale, or incomplete devices.

logitech_sync_get_occupancy_report

Report occupancy, known capacity, utilisation, and over-capacity places.

logitech_sync_get_environment_report

Read and filter available Spot and Rally Board sensor measurements without inventing health thresholds.

logitech_sync_get_coverage_report

Audit contracts, licences, and warranties as of a given date.

logitech_sync_list_network_inventory

Inventory IP addresses, MAC addresses, hostnames, and wired or Wi-Fi interfaces.

All tools declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true.

Related MCP server: meraki-dashboard-api

Requirements

  • UV

  • A Logitech Sync organisation ID from Sync Portal → Settings → Sync Cloud API

  • A PEM client certificate and its matching private key

  • A compatible Logitech Select, Essential, or Sync Plus license

Quick start

git clone https://github.com/bouchecousue/logitech-sync-mcp.git
cd logitech-sync-mcp
cp .env.example .env

Place your credentials at the default paths:

client-certificate/certificate.pem
client-certificate/privateKey.pem

Set LOGITECH_SYNC_ORG_ID in .env, restrict the private key, then install and start the server:

chmod 600 client-certificate/privateKey.pem
uv sync --all-groups --no-editable
uv run --no-editable python run_server.py

The last command starts a stdio MCP server and waits for protocol messages on standard input. See the complete Getting Started guide for certificate setup, client configuration, validation, and troubleshooting.

MCP client configuration

Generic stdio configuration:

{
  "mcpServers": {
    "logitech-sync": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/logitech-sync-mcp",
        "run",
        "--no-editable",
        "python",
        "/path/to/logitech-sync-mcp/run_server.py"
      ]
    }
  }
}

The server loads .env from the project directory. Keep credentials out of the MCP client configuration when possible so they are not duplicated across configuration files.

Configuration

Variable

Default

Description

LOGITECH_SYNC_ORG_ID

none

Required organisation ID from Logitech Sync Portal.

LOGITECH_SYNC_API_BASE_URL

https://api.sync.logitech.com/v1

Documented API server; override only for administration or testing.

LOGITECH_SYNC_CERT_FILE

client-certificate/certificate.pem

Client certificate path; an absolute path is recommended.

LOGITECH_SYNC_KEY_FILE

client-certificate/privateKey.pem

Private key path; an absolute path is recommended.

LOGITECH_SYNC_CA_FILE

public CA bundle

Optional custom CA bundle.

LOGITECH_SYNC_TIMEOUT_SECONDS

30

Overall timeout for one attempt.

LOGITECH_SYNC_CACHE_TTL_SECONDS

60

Short in-memory cache to reduce quota usage.

LOGITECH_SYNC_MAX_RETRIES

3

Bounded retries for 429/502/503/504 and transport errors.

LOGITECH_SYNC_MIN_REQUEST_INTERVAL_SECONDS

1

Minimum interval between network attempts.

LOGITECH_SYNC_TRUST_ENV

false

Explicitly allow HTTPX environment proxies and CA settings.

LOGITECH_SYNC_FIXTURE_FILE

none

Offline fixture mode for tests and evaluations.

The organisation ID is a separate value: the server never attempts to infer it from the X.509 certificate subject.

Pagination, quotas, and output

According to the supplied Logitech documentation, the API allows 14,400 requests per day, supports a sustained rate of one request per second, and recommends exponential backoff. The client therefore:

  • serialises network attempts at a minimum one-second interval;

  • honours Retry-After without retrying early;

  • applies bounded exponential backoff with jitter;

  • caches pages briefly and caps the cache at 256 pages;

  • detects cursor loops;

  • bounds workflows with page_size, max_pages, and max_results;

  • exposes nextResultOffset when an aggregated result has another local page;

  • keeps text and structuredContent within a combined MCP response budget and reports truncation explicitly.

Tools support markdown and json text rendering and return schema-validated structuredContent. An omitted projection preserves Logitech's default projection, while [] requests place IDs only. Device child projections automatically include their required parent projection.

Security model

  • .env, client-certificate/, private-key formats, caches, and local tooling files are excluded from Git.

  • On POSIX systems, startup fails if the private key is readable by the group or other users.

  • Server certificate verification remains enabled; the implementation has no verify=False path.

  • HTTP redirects are disabled so the client certificate is not presented to another host.

  • PEM data is never exposed through MCP arguments or results.

  • Application logs never use stdout, which is reserved for the stdio protocol.

  • API-provided strings are treated as untrusted data and escaped in Markdown output.

  • The API URL and secret paths are administrator configuration, not model-controlled tool inputs.

Before publishing a fork or opening a pull request, run:

git status --short
git check-ignore -v .env client-certificate/privateKey.pem

Never commit an organisation ID, certificate, private key, captured API response, or real inventory fixture.

Development

uv sync --all-groups --no-editable
uv run --no-editable ruff check .
uv run --no-editable ruff format --check .
PYTHONPATH=src uv run --no-sync pytest --cov=logitech_sync_mcp
uv run --no-editable python -m compileall -q src

The live test consumes API quota and is disabled by default:

LOGITECH_SYNC_RUN_LIVE=1 uv run --no-editable pytest -m live tests/test_live.py

The deterministic evaluation set uses the versioned synthetic fixture, never a live inventory.

Documentation

License

Released under the MIT License.

Available Tools

9 tools
logitech_sync_check_connectionCheck Logitech Sync connectionA
Read-onlyIdempotent

Verify live mTLS access, or validate the configured offline fixture.

    Makes exactly one minimal GET request with ``limit=1`` and an empty projection, so only
    a place id can be returned. In fixture mode no network connection or mTLS handshake is
    attempted, and the result says so explicitly. It does not modify Logitech Sync. Use this
    first after setup.

    Returns a structured success envelope plus Markdown/JSON text. Configuration, TLS, 403,
    throttling, and schema failures are returned as actionable MCP tool errors.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNoText view: markdown for people or json for programmatic use.markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataYes
metaNo
summaryYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds significant context beyond annotations: explains it makes exactly one minimal GET request with limit=1 and empty projection, does not modify anything, and returns errors as actionable MCP tool errors. Annotations already indicate read-only and idempotent, but description enriches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise, well-structured, and front-loaded with purpose. Each sentence adds value without redundancy. Appropriate length for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (1 optional param, no nested objects, output schema exists), description is complete: covers behavior, error handling, return format, and use case. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with 100% schema coverage; description adds little beyond schema's own description of response_format. Baseline of 3 is appropriate as schema already documents the parameter well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool verifies live mTLS access or validates offline fixture, with specific verb 'verify' and resource 'Logitech Sync connection'. It distinguishes from sibling tools which are all about reports or inventory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this first after setup', providing clear context for when to invoke. Describes two modes (live and fixture) with behavioral differences, but does not explicitly state when not to use it or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logitech_sync_get_coverage_reportGet Logitech Sync coverage reportA
Read-onlyIdempotent

Audit room/desk contracts, licenses, and device warranties at a given date.

    Rows are classified as expired, expiring, active, or unknown expiration. Supply ``as_of``
    for reproducible historical/evaluation queries; otherwise today's UTC date is used. Raw
    epoch timestamps and ISO forms are both retained.

    Returns status counts and chronologically sorted coverage rows. No renewal action occurs.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofNoPoint-in-time date (YYYY-MM-DD); defaults to today's UTC date.
desksNoInspect desk coverage.
roomsNoInspect room coverage.
max_pagesNoMaximum pages followed.
page_sizeNoAPI page size.
unlicensedNoInclude unlicensed places.
max_resultsNoMaximum coverage rows returned.
result_offsetNoLocal coverage offset; reuse nextResultOffset with identical filters.
response_formatNoText view returned alongside structured content.markdown
expiring_within_daysNoHorizon for classifying coverage as expiring.
include_without_expirationNoInclude licenses/warranties with no returned expiration date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataYes
metaNo
summaryYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, etc. Description adds useful context: rows are classified, timestamps retained, sorted, and no renewal action occurs, reinforcing non-destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then details. No redundant sentences. Could be slightly more structured but overall concise and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a report tool with output schema, description covers classification, sorting, and non-action. It doesn't detail all parameters or return structure, but output schema handles that. Adequate given complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 11 parameters. The description adds minimal extra meaning beyond what schema already provides (e.g., reiterates as_of usage). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

First sentence clearly states the resource ('room/desk contracts, licenses, and device warranties') and action ('audit'). The description distinguishes from siblings by focusing on coverage aspects, not inventory, occupancy, or device issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on the as_of parameter for historical queries and notes that no renewal action occurs. However, it does not explicitly compare with sibling tools or state when to use this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logitech_sync_get_environment_reportGet Logitech Sync environment reportA
Read-onlyIdempotent

Aggregate Spot/Rally Board sensor readings with explicit numeric filters.

    Supported measurements include CO2, pressure, temperature, humidity, TVOC, VOC index,
    PM10, PM2.5, and presence. The workflow never invents safety thresholds or labels readings
    dangerous; filtering only occurs when ``metric`` and caller-provided bounds are supplied.

    Returns device readings, UTC sample timestamps, per-metric min/max/average, and scan status.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
desksNoInspect desk sensors.
roomsNoInspect room sensors.
metricNoOptional sensor metric to filter (for example co2 or temperature).
maximumNoOptional finite inclusive maximum for the selected metric.
minimumNoOptional finite inclusive minimum for the selected metric.
max_pagesNoMaximum pages followed.
page_sizeNoAPI page size.
unlicensedNoInclude unlicensed places.
max_resultsNoMaximum sensor devices returned.
result_offsetNoLocal reading offset; reuse nextResultOffset with identical filters.
response_formatNoText view returned alongside structured content.markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataYes
metaNo
summaryYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses critical behavior: does not invent safety thresholds, filtering only with metric and bounds. Annotations already declare readOnlyHint and idempotentHint; description adds context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise, front-loaded with purpose, then measurements, behavioral note, and return structure. Every sentence adds value, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists and high schema coverage, description covers tool purpose, behavioral constraints, and return components. Adequately complete for a read-only, idempotent tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description adds context about filtering behavior linking metric, minimum, maximum parameters, and lists supported measurements that hint at metric enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it aggregates Spot/Rally Board sensor readings with numeric filters, and lists supported measurements. It distinguishes from sibling tools like occupancy or inventory reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for environment sensor data but does not explicitly state when to use this tool vs. alternatives. Sibling tools are listed but no direct comparison or exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logitech_sync_get_inventory_summarySummarize Logitech Sync inventoryA
Read-onlyIdempotent

Aggregate rooms, desks, coverage, device types/models/versions, status, and health.

Use this before deeper reports to understand inventory shape without returning every raw device. Pagination is bounded and all counts clearly indicate whether the scan completed.

Returns counters and ranked model/version buckets. It is read-only and uses a projection optimized for identity, coverage, and health aggregation.

ParametersJSON Schema
NameRequiredDescriptionDefault
desksNoInclude desks.
roomsNoInclude rooms.
max_pagesNoMaximum pages followed.
page_sizeNoAPI page size.
top_limitNoMaximum model/version buckets returned.
unlicensedNoInclude unlicensed places.
response_formatNoText view returned alongside structured content.markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataYes
metaNo
summaryYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it is read-only and uses a projection optimized for identity, coverage, and health aggregation. It also mentions bounded pagination and that counts clearly indicate whether the scan completed. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at 4 sentences, front-loading the purpose and usage. Every sentence adds value without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 optional parameters with defaults, an output schema, and annotations, the description covers purpose, usage, behavior (read-only, aggregation, pagination bounding), and output nature (counters, ranked buckets). It is complete for an inventory summary tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all 7 parameters described in the schema). The description does not add significant parameter-specific meaning beyond the schema; it focuses on tool behavior and output. Baseline of 3 is appropriate as the schema already provides adequate documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the tool aggregates rooms, desks, coverage, device types/models/versions, status, and health. It clearly distinguishes from siblings like logitech_sync_search_inventory by saying 'without returning every raw device' and contrasts with deeper reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use this before deeper reports to understand inventory shape', providing direct guidance on when to use. It also notes pagination is bounded and counts indicate scan completion, helping the agent decide when this is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logitech_sync_get_occupancy_reportGet Logitech Sync occupancy reportA
Read-onlyIdempotent

Report live room occupancy, known capacity, utilization, and over-capacity state.

    Logitech documents ``seatCount=0`` as unset, so this workflow marks capacity unknown and
    never divides by zero or labels such rooms over capacity. Results are sorted by current
    occupancy and can be filtered with caller-supplied thresholds.

    Returns bounded room rows and aggregate occupancy/capacity metrics. Live values may change.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
max_pagesNoMaximum pages followed.
page_sizeNoAPI page size.
unlicensedNoInclude unlicensed rooms.
max_resultsNoMaximum room rows returned.
only_occupiedNoReturn only rooms whose current occupancy is above zero.
result_offsetNoLocal room offset; reuse nextResultOffset with identical filters.
response_formatNoText view returned alongside structured content.markdown
minimum_occupancyNoMinimum current people count.
minimum_utilization_percentNoOptional occupancy/seatCount percentage; excludes unknown capacity.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataYes
metaNo
summaryYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly, idempotent), the description discloses key behaviors: handling seatCount=0 to avoid division by zero, sorting by occupancy, filtering with thresholds, and noting live values. This adds significant context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences) and front-loaded with the core purpose. No redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 9 parameters and an output schema, the description covers core functionality, edge cases, sorting, filtering, return structure, and live nature. It is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the description adds little parameter-specific meaning beyond mentioning caller-supplied thresholds. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reports live room occupancy, capacity, utilization, and over-capacity state. It distinguishes itself from sibling tools like get_coverage_report by focusing specifically on occupancy metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (when occupancy data is needed), but the description does not explicitly state when to use this tool over siblings or provide prerequisites/exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logitech_sync_list_device_issuesList Logitech Sync device issuesA
Read-onlyIdempotent

Diagnose offline, unhealthy, stale, or incomplete-peripheral devices.

    Each returned device includes explicit reason codes and its containing room/desk. A stale
    cutoff is only applied to Offline devices when the caller provides
    ``last_disconnection_before`` because Logitech defines ``lastSeen`` as the last
    disconnection event, not a heartbeat. Timestamps remain UTC and retain raw epoch values.

    Returns issue counts, reason counts, bounded issue details, and scan-completeness metadata.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
desksNoInspect desk devices.
roomsNoInspect room devices.
max_pagesNoMaximum pages followed.
page_sizeNoAPI page size.
unlicensedNoInclude unlicensed places.
max_resultsNoMaximum issue devices returned.
include_errorNoInclude devices with Error health.
result_offsetNoLocal issue offset; reuse nextResultOffset with identical filters.
include_offlineNoInclude Offline devices.
include_warningNoInclude devices with Warning health.
response_formatNoText view returned alongside structured content.markdown
last_disconnection_beforeNoOptional ISO-8601 cutoff; include Offline devices whose last documented disconnection event occurred before it.
include_peripheral_mismatchesNoInclude expected/actual camera, speaker, hub, and mic mismatches.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataYes
metaNo
summaryYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive. Description adds valuable context: stale cutoff only applies when last_disconnection_before provided, timestamps are UTC epoch, and explains return content (issue counts, reason codes, etc.).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and front-loaded with main purpose. Every sentence adds meaningful detail without redundancy. Could benefit from better structure (e.g., bullet points for return content), but current form is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters and output schema, the description covers key behavioral aspects (stale cutoff, return items) and the tool's scope. Does not explain every health status or filter, but output schema likely covers that. Sufficient for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-described individually. The description adds extra meaning by clarifying the interaction between stale cutoff and last_disconnection_before parameter, which is not evident from schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it diagnoses offline, unhealthy, stale, or incomplete-peripheral devices. Differentiates from sibling tools like list_places or check_connection by focusing on device issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context on when to use this tool (diagnosing issues) and explains the last_disconnection_before parameter behavior, but does not explicitly compare with siblings or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logitech_sync_list_network_inventoryList Logitech Sync network inventoryA
Read-onlyIdempotent

Inventory reported device IPs, MACs, hostnames, and network interfaces.

Search by network identifier, place, or device, and optionally filter by interface mode. Missing network fields remain absent rather than being invented because reporting varies by device model and firmware. This tool does not scan the network or change configuration.

Returns bounded entries, interface-mode counts, and scan-completeness metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
desksNoInclude desk devices.
queryNoOptional partial IP, MAC, hostname, device, or place text.
roomsNoInclude room devices.
max_pagesNoMaximum pages followed.
page_sizeNoAPI page size.
unlicensedNoInclude unlicensed places.
max_resultsNoMaximum network devices returned.
result_offsetNoLocal device offset; reuse nextResultOffset with identical filters.
interface_modeNoOptional wired/wireless interface mode filter.
response_formatNoText view returned alongside structured content.markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataYes
metaNo
summaryYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly, idempotent, not destructive), description adds that missing fields remain absent (avoids hallucination), does not scan or change config, and returns bounded entries with metadata. Provides valuable behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise at 5 sentences covering purpose, search capability, behavioral note, actions not taken, and return type. No unnecessary words, but could be more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, output schema, and sibling tools, description covers main search and filter capability, return types, and key behavioral notes. Omits mention of desk/room/licensed filters, but these are in schema. Adequately complete for an inventory listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with detailed descriptions. Description adds a high-level summary of search and filter (query, interface_mode) but does not add new semantics. Baseline of 3 appropriate due to full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists network inventory with specific fields (IPs, MACs, hostnames, interfaces). Distinguishes from siblings by focusing on network rather than general inventory. Includes what it does and does not do.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes search and filter options but does not explicitly compare to sibling 'logitech_sync_search_inventory'. Lacks when-to-use and when-not-to-use advice. Provides some context (does not scan network), but no alternative tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logitech_sync_list_placesList Logitech Sync placesA
Read-onlyIdempotent

Fetch one controlled page of rooms/desks using the native continuation cursor.

    Use this primitive when exact API pagination or custom projections matter. It never follows
    the cursor automatically. If an explicit projection requests device info, sensors, or
    warranty while ``detail_level=concise``, the result is transparently promoted to detailed
    output and reports that adjustment. A response that is too large fails with guidance
    instead of silently discarding requested fields or inaccessible items.

    Returns ``places`` and metadata including ``next_continuation`` and the effective
    projection. Errors explain how to fix invalid scopes, projections, credentials, or quotas.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
desksNoInclude desks in this page.
limitNoMaximum places for this single API page.
roomsNoInclude rooms in this page.
projectionNoFields to request. Omit for the API default; pass [] for place ids only. place.device is added automatically for nested device fields. Explicit device info, sensors, or warranty projections automatically promote concise output to detailed so requested fields are never discarded.
unlicensedNoInclude unlicensed places, which only expose basic fields.
continuationNoOpaque cursor returned by a previous call; never decode or edit it.
detail_levelNoconcise selects high-signal fields; detailed preserves API fields. Concise is automatically promoted to detailed when an explicit projection requests device info (including peripherals/full network), sensors, or warranty.concise
response_formatNoText view returned alongside structured content.markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataYes
metaNo
summaryYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotency, read-only, and non-destructive nature. The description adds that the tool never auto-follows cursors, transparently promotes detail_level for certain projections, and reports large response failures with guidance. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured paragraph that front-loads the core purpose and then adds behavioral details. Every sentence provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no required fields, output schema present), the description covers pagination, projection behavior, error handling, and response format comprehensively. It is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds significant value by explaining parameter interactions (e.g., projection promotion, detail_level auto-promotion, continuation usage) beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch one controlled page of rooms/desks using the native continuation cursor,' specifying the verb, resource, and mechanism. The title reinforces this, and the tool is distinct from siblings like logitech_sync_search_inventory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using this tool when exact API pagination or custom projections matter, and notes it never follows the cursor automatically. It doesn't explicitly state when not to use, but provides sufficient context for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logitech_sync_search_inventorySearch Logitech Sync inventoryA
Read-onlyIdempotent

Search across place and device inventory as one agent-oriented workflow.

    This tool follows bounded pagination and dynamically requests identity, location, contract,
    network, version, and health fields needed for useful matches. Use an exact id/serial for a
    specific entity or partial text for discovery. It does not modify inventory.

    Returns matching place/device objects plus complete/partial pagination metadata. Increase
    ``max_pages`` only when ``next_continuation`` shows the API scan was partial. When
    ``nextResultOffset`` is returned, repeat the same filters with that ``result_offset``.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
desksNoSearch desks.
queryYesCase-insensitive text matched across ids, names, serials, versions, groups, locations, contracts, licenses, IPs, MACs, and hostnames.
roomsNoSearch rooms.
targetNoSearch places, devices, or both.any
max_pagesNoMaximum API pages followed for this search.
page_sizeNoAPI page size; 1000 minimizes quota usage.
place_typeNoOptional Room or Desk filter.
unlicensedNoInclude unlicensed places.
device_typeNoOptional Logitech, Computer, or Generic device filter.
max_resultsNoMaximum matching entities returned.
detail_levelNoconcise or detailed match payloads.concise
device_statusNoOptional Offline, Online, or InUse filter for device matches.
health_statusNoOptional NoIssues, Warning, or Error filter for device matches.
result_offsetNoLocal match offset; reuse nextResultOffset with identical filters.
response_formatNoText view returned alongside structured content.markdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataYes
metaNo
summaryYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. Description adds context about bounded pagination, dynamic field requests, and non-modification, which are consistent and go beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise, well-structured, and front-loaded with the main purpose. Every sentence adds value, and there is no redundancy. The pagination guidance is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers core workflow, pagination handling, and non-destructive nature. With output schema present, return values need not be detailed. Could mention more about output structure but is sufficient for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage (all parameters described in schema). Description provides overall workflow context but does not add substantial per-parameter semantics beyond what schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Search across place and device inventory as one agent-oriented workflow' and distinguishes from sibling tools like logitech_sync_list_places by specifying it searches both places and devices. The purpose is specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides explicit guidance: 'Use an exact id/serial for a specific entity or partial text for discovery.' It also explains pagination behavior with max_pages and result_offset. However, it does not explicitly state when to use alternatives or when not to use this tool, so it is not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv0.1.0
    • First observedlogitech_sync_check_connection
    • First observedlogitech_sync_get_coverage_report
    • First observedlogitech_sync_get_environment_report
    • First observedlogitech_sync_get_inventory_summary
    • First observedlogitech_sync_get_occupancy_report
    • First observedlogitech_sync_list_device_issues
    • First observedlogitech_sync_list_network_inventory
    • First observedlogitech_sync_list_places
    • First observedlogitech_sync_search_inventory

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: connection check, coverage reports, environment sensors, inventory summary, occupancy, device issues, network inventory, places listing, and search. No overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent pattern: 'logitech_sync_' + verb_noun (e.g., check_connection, get_coverage_report, list_device_issues). Underscores are used uniformly, and verbs are appropriate for the action.

Tool Count5/5

9 tools is well-scoped for a monitoring/diagnostics server covering connection, reporting, inventory, issues, and search. Not excessive and each tool serves a specific need.

Completeness4/5

The tool set covers the main monitoring and diagnostic operations comprehensively: connection, coverage, environment, occupancy, issues, inventory, and search. Missing write/update operations, but the domain appears read-only, so minor gap.

Maintenance

ActivityNo data
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for the air-Q Cloud API, enabling remote retrieval of air quality sensor data and historical analysis through read-only tools like listing devices, fetching readings, and exporting charts or data.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server that provides tools to list and read devices, MDM servers, blueprints, configurations, apps, packages, users, and other resources from Apple Business Manager and Apple School Manager.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bouchecousue/logitech-sync-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server