Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CANOPY_SOURCENoReader selection: synthetic, obd, or can_dbc (default synthetic)synthetic

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_available_signalsA

Returns the complete list of signals available from the currently connected data source, with units and typical ranges.

Call this FIRST whenever you are unsure whether a signal exists. Signal availability depends entirely on the data source, so the only reliable way to know what you can answer is to ask.

If the signal a user asks about does not appear in this list, it is NOT available: do not attempt to retrieve it, do not estimate it, and do not substitute a related signal. Tell the user the signal is unavailable and say which source is connected.

summarize_sessionA

Returns a structural overview of a data session: which signals are present, how many samples each has, where there are gaps in coverage, and a count of findings by severity.

Use this BEFORE detailed analysis to understand what data actually exists. This tool returns no interpretation — only structure. It will not tell you what a finding means; call run_diagnostic_rules for that.

coverage_gaps matters: a signal can be 'present' while missing the exact interval a user is asking about.

get_signalA

Retrieves one signal over a time range, returned as a timeseries with explicit units and timestamps.

The name must exactly match a name from list_available_signals. Calling this with an unknown name returns a structured error, not an estimate.

Different data sources have very different sample rates. A request-response source may return a SINGLE sample (a 'point read'), with actual_sample_rate_hz set to null. Do NOT perform timing analysis on a point read — check actual_sample_rate_hz before reasoning about how a signal changed over time.

Results are downsampled to max_samples. If truncated is true, the series is a decimation of the full data and fine timing detail may be lost.

Keep the time range bounded to the interval you actually need. An excessively wide window returns a window_too_large error, not data — and because results are downsampled to max_samples anyway, a wider window buys no extra resolution.

run_diagnostic_rulesA

Runs the domain diagnostic rule set over a time range and returns structured findings, each citing the specific data samples that support it.

Every finding includes evidence — the actual samples the rule examined — and a confidence level. A finding with confidence 'low' usually means the rule ran against insufficient data (for example, a timing rule given a single-sample point read). Report low-confidence findings as tentative; never present them as established fact.

Rules requiring signals the current source cannot provide are SKIPPED, not failed. Check skipped before concluding that no problems exist: an empty findings list with a non-empty skipped list means 'we didn't look,' not 'nothing is wrong.'

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/kruslim/canopy'

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