Skip to main content
Glama
smart-compost

@smart-compost/mcp

@smart-compost/mcp

MCP server for the Smart Compost platform. An LLM agent (Claude, Cursor, etc.) lists your processes/devices and pulls measurements as tools, using your x-api-key. Currently wraps the Integration API; named generically so more of the platform can be exposed over time.

Local stdio. Key stays on the client. The x-api-key is read from an env var and only ever leaves this process to call your own gateway. Nothing is proxied through a third party.

Tools

Six curated, read-only, workflow-oriented tools (not a 1:1 mirror of every endpoint). Discovery comes first so the agent can find IDs before asking for data. The server also ships top-level instructions telling the model to start with discovery.

Tool

Endpoint

Purpose

list_processes

GET /processes

Discover processes (with nested devices)

list_devices

GET /devices

Discover device ids

get_latest_device_readings

GET /data/{deviceId}

Quick poll, 5 most recent

get_latest_process_readings

GET /data/process/{processId}

Quick poll per process

get_device_measurements

GET /devices/{deviceId}/measurements

History, paginated

get_process_measurements

GET /processes/{processId}/measurements

History, all devices

Related MCP server: Enapter MCP Server

Install

Add it in one line, no clone or build:

claude mcp add smart-compost \
  -e SMARTCOMPOST_API_KEY=sk_live_xxx \
  -- npx -y @smart-compost/mcp

Cursor / Windsurf / Claude Desktop (mcp.json):

{
  "mcpServers": {
    "smart-compost": {
      "command": "npx",
      "args": ["-y", "@smart-compost/mcp"],
      "env": { "SMARTCOMPOST_API_KEY": "sk_live_xxx" }
    }
  }
}

Config:

  • SMARTCOMPOST_API_KEY (required): your Integration API key (sk_live_...), generated on the Integrations page.

  • SMARTCOMPOST_API_BASE (optional): defaults to https://test.smart-compost.com.br/api. Use https://smart-compost.com.br/api for production.

Then ask the agent things like "list my composting processes" or "show the latest readings for device 666".

License

Apache-2.0

Available Tools

6 tools
get_device_measurementsDevice measurements (history, paginated)A
Read-only

Get historical measurements for a device with optional date range and pagination. If processId is omitted, the device's active process is used.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax records (default 100)
offsetNoPagination offset (default 0)
endDateNoISO 8601 end of range
deviceIdYesPublic device id, e.g. "666"
processIdNoScope to a specific process (UUID). Omit to use the active process.
startDateNoISO 8601 start of range

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds behavioral context: pagination, optional date range, and the default processId behavior. No contradictions, and the added details are useful for an agent to understand the tool's behavior beyond the 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 two short sentences that efficiently convey the purpose and a key usage detail. No unnecessary words or repetition. Every sentence adds value.

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?

The description covers core functionality (historical, paginated, date range, default process). However, without an output schema, the agent lacks information about the response structure, which may be needed for downstream use. The annotation openWorldHint mitigates this slightly, but some completeness is lost.

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%, so baseline is 3. The description adds no new parameter meaning beyond what is already documented in the schema (e.g., the processId fallback is already stated). It restates existing info without providing additional semantic clarity.

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 verb 'get' and resource 'historical measurements for a device' with optional features like date range and pagination. It distinguishes from sibling tools such as get_latest_device_readings and get_process_measurements by specifying historical data and device scope.

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?

The description provides one usage tip (omitting processId uses active process) but lacks explicit guidance on when to use this tool versus siblings. The name and context imply historical vs. latest, but no direct comparisons or exclusions are given.

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

get_latest_device_readingsLatest device readings (quick poll)A
Read-only

Get the 5 most recent measurements for a device (subject to the 1-hour delay). Get a valid deviceId from list_devices or list_processes first.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesPublic device id, e.g. "666"

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint. The description adds valuable behavioral details: the 1-hour delay and the 5-reading limit, which are not implied by the 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?

Two sentences, no unnecessary words. The most critical information (what, how many, delay, prerequisite) is front-loaded.

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?

For a simple tool with one parameter and no output schema, the description covers all essential aspects: purpose, limitations (delay), output quantity, and data source. No gaps given the complexity.

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% with a clear description of deviceId. The description adds context by referencing sister tools for obtaining the ID and giving an example ('666'), enhancing understanding beyond the bare schema.

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 action ('Get'), resource ('device readings'), and key details ('5 most recent', '1-hour delay'). It distinguishes itself from siblings by specifying the resource type and count limit.

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 instructs to obtain a valid deviceId from list_devices or list_processes first, providing a clear prerequisite. However, it does not mention when not to use this tool versus alternatives like get_device_measurements.

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

get_latest_process_readingsLatest process readings (quick poll)A
Read-only

Get the 5 most recent measurements per device in a process (subject to the 1-hour delay).

ParametersJSON Schema
NameRequiredDescriptionDefault
processIdYesProcess id (UUID)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations provide readOnlyHint and openWorldHint. Description adds the specific count of 5 per device and the 1-hour delay constraint, which are meaningful behavioral details beyond the 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?

A single sentence that efficiently conveys the tool's primary function, scope, and key constraint. No extraneous information.

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 the single parameter, no output schema, and good annotations, the description is mostly complete. However, it does not hint at the return structure, which would be helpful for an agent. Still, it covers the essentials well.

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 a clear description for processId. The tool description adds no extra parameter semantics, so baseline score 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 specifies the verb 'Get', the resource '5 most recent measurements per device', the scope 'in a process', and a key constraint '1-hour delay'. It differentiates from siblings like get_device_measurements which likely does not limit to latest or count.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like get_device_measurements or get_process_measurements. No mention of when not to use it or prerequisites.

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

get_process_measurementsProcess measurements (all devices, paginated)A
Read-only

Get measurements from all devices in a process, grouped by device. Optionally filter to specific deviceIds.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax records per device (default 100)
offsetNoPagination offset (default 0)
endDateNoISO 8601 end of range
deviceIdsNoFilter to these deviceIds (omit for all devices in the process)
processIdYesProcess id (UUID)
startDateNoISO 8601 start of range

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint. Description adds grouping by device and optional filtering. Lacks details on pagination behavior and ordering. 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?

Two concise sentences, front-loaded with key purpose and optional filter. No redundancy.

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

Completeness3/5

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

Adequate for a read-only tool with 6 params and no output schema. Mentions grouping and filtering, but omits clarification on pagination (offset/limit) and date range behavior.

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 parameter descriptions. Description reinforces 'all devices' default and optional deviceIds filter, but does not add meaning for limit, offset, or date range params beyond schema. Baseline 3.

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 verb 'get', resource 'measurements', and scope 'from all devices in a process, grouped by device'. Distinguishes from siblings like get_device_measurements (single device) by specifying 'all devices'.

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?

Implies use for retrieving all measurements from a process, optionally filtered by deviceIds, but no explicit when-to-use or alternative recommendations. Agents must infer from name and context.

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

list_devicesList devicesA
Read-only

List all devices available to your API key, deduplicated by deviceId. Use a deviceId with get_latest_device_readings or get_device_measurements.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Adds deduplication behavior beyond annotations that already declare readOnlyHint and openWorldHint. 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?

Two sentences, front-loaded with purpose, no extraneous 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?

Complete for a parameterless list tool; provides purpose and usage guidance for output with other tools.

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?

0 parameters, baseline 4; description appropriately omits parameter details since none exist.

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 'List all devices' with deduplication, and distinguishes from sibling tools by mentioning using deviceId with get_latest_device_readings or get_device_measurements.

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 directs use of output deviceId with two sibling tools, indicating when to use them. Could add explicit when not to use this tool.

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

list_processesList processesA
Read-only

List all processes for your tenant (active and finished), each with the devices in it. Start here to discover processId and deviceId values for the other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by specifying that the tool returns processes with their devices, and that it provides processId and deviceId values. It does not contradict 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?

Two sentences with zero waste. The first sentence states the core functionality, the second gives usage guidance. Every sentence earns its place.

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 no parameters, no output schema, but good annotations, the description explains what the tool returns and how to use it. It does not mention pagination or limits, but for a list tool with openWorldHint, this is acceptable. Slightly incomplete but mostly adequate.

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?

There are no parameters (schema coverage 100% trivially). The description is not required to add parameter info. Baseline score of 4 is appropriate for a no-parameter tool.

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 uses a specific verb 'List' and resource 'processes', and clarifies scope: 'all processes for your tenant (active and finished), each with the devices in it'. It also distinguishes itself from sibling tools by stating it's for discovering processId and deviceId values. This is a clear and complete purpose statement.

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 explicitly says 'Start here to discover processId and deviceId values for the other tools', which provides clear guidance on when to use this tool. While it doesn't explicitly list when not to use it or name alternatives, the context from sibling tools and the discovery purpose make usage context clear.

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.

  1. 6 tool updatesv0.1.1
    • First observedget_device_measurements
    • First observedget_latest_device_readings
    • First observedget_latest_process_readings
    • First observedget_process_measurements
    • First observedlist_devices
    • First observedlist_processes

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing tools (list_devices, list_processes) vs. measurement retrieval tools with scopes (device vs. process, historical vs. latest). No overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_device_measurements, list_processes). No mixing of conventions.

Tool Count5/5

6 tools are well-scoped for a read-only API focused on device/process measurements. Not too few nor too many; each tool serves a clear function.

Completeness5/5

The tool surface covers enumeration of devices and processes, retrieval of historical and latest measurements at both device and process levels. No obvious gaps for the domain.

Maintenance

ActivityStale
ResponsivenessNo issues

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