Skip to main content
Glama

Tracking setup

onelence_get_setup
Read-onlyIdempotent

For installing or checking OneLence tracking: the site, whether events arrive, integration health, the defined conversion events and the install instructions (publishable key, snippets, server-side conversions). detailed adds the full step-by-step guide for coding agents. Secret keys are never returned; the team manages them in OneLence under Settings → API keys.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "onelence_get_setup"
  }
}

Input Schema

NameRequiredDescriptionDefault
siteNoSite domain (e.g. example.com) or site id. Defaults to the workspace's newest active site.
response_formatNoconcise (default) keeps what is needed to answer and to chain the next call; detailed returns every field.

Output Schema

NameRequiredDescriptionDefault
siteYes
objectYes
stripeYes
installYes
trackingYes
conversion_eventsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "conversion_events": {
      +      "items": {
      +        "properties": {
      +          "created_at": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "event_name": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "object": {
      +            "const": "event_definition",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "object",
      +          "id",
      +          "name",
      +          "event_name",
      +          "kind",
      +          "created_at"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "install": {
      +      "properties": {
      +        "agent_guide": {
      +          "type": "string"
      +        },
      +        "browser": {
      +          "properties": {
      +            "npm_snippet": {
      +              "type": "string"
      +            },
      +            "package": {
      +              "const": "@crelora/mark",
      +              "type": "string"
      +            },
      +            "script_snippet": {
      +              "type": "string"
      +            },
      +            "track_example": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "package",
      +            "npm_snippet",
      +            "script_snippet",
      +            "track_example"
      +          ],
      +          "type": "object"
      +        },
      +        "publishable_key": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "rules": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "server_conversions": {
      +          "properties": {
      +            "auth_header": {
      +              "const": "x-secret-key",
      +              "type": "string"
      +            },
      +            "endpoint": {
      +              "type": "string"
      +            },
      +            "example_body": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "secret_env_var": {
      +              "const": "ONELENCE_SECRET_KEY",
      +              "type": "string"
      +            },
      +            "secret_key_location": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "endpoint",
      +            "auth_header",
      +            "secret_env_var",
      +            "example_body",
      +            "secret_key_location"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "publishable_key",
      +        "browser",
      +        "server_conversions",
      +        "rules"
      +      ],
      +      "type": "object"
      +    },
      +    "object": {
      +      "const": "setup",
      +      "type": "string"
      +    },
      +    "site": {
      +      "properties": {
      +        "domain": {
      +          "type": "string"
      +        },
      +        "id": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "domain"
      +      ],
      +      "type": "object"
      +    },
      +    "stripe": {
      +      "anyOf": [
      +        {
      +          "properties": {
      +            "account": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "livemode": {
      +              "anyOf": [
      +                {
      +                  "type": "boolean"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "status": {
      +              "enum": [
      +                "connected",
      +                "not_connected"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "status",
      +            "account",
      +            "livemode"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "tracking": {
      +      "properties": {
      +        "conversions": {
      +          "type": "number"
      +        },
      +        "event_name": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "events": {
      +          "type": "number"
      +        },
      +        "hint": {
      +          "type": "string"
      +        },
      +        "last_event": {
      +          "anyOf": [
      +            {
      +              "properties": {
      +                "name": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "occurred_at": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "name",
      +                "occurred_at"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "matching_events": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "since": {
      +          "type": "string"
      +        },
      +        "status": {
      +          "enum": [
      +            "receiving",
      +            "no_events"
      +          ],
      +          "type": "string"
      +        },
      +        "window_minutes": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "status",
      +        "window_minutes",
      +        "since",
      +        "events",
      +        "event_name",
      +        "matching_events",
      +        "conversions",
      +        "last_event",
      +        "hint"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "object",
      +    "site",
      +    "tracking",
      +    "stripe",
      +    "conversion_events",
      +    "install"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered by structured data. The description still adds genuinely useful behavioral facts beyond that: secret keys are never returned, and the team manages them out-of-band under Settings → API keys, which tells the agent how to respond when a user expects a secret. It does not describe freshness, caching, or whether an uninstalled site returns an error, which keeps it off a 5.

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?

Three sentences, front-loaded with the tool's purpose and then the detail that matters most, with zero filler. The opening is a sentence fragment followed by a colon list, which is dense but readable and puts the return payload first. Minor structural awkwardness prevents a 5.

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 tool is simple (2 optional params, output schema present, full annotation coverage), so the description needs only to explain scope and behavior, both of which it does. The only meaningful omission is routing against near-neighbor tools like verify_tracking and get_integrations, which the agent must currently infer.

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%, so both parameters are already documented and the baseline is 3. The description does add a little real meaning for the mode parameter, clarifying that 'detailed' supplies a coding-agent step-by-step guide rather than merely 'every field' as the schema says. It says nothing about the site parameter default beyond what the schema already states.

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

Purpose4/5

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

The description names the concrete payload it returns: site, whether events arrive, integration health, defined conversion events, and install instructions (publishable key, snippets, server-side conversions). That verb-and-resource specificity makes the tool's job unmistakable. It stops short of 5 because it never names the siblings it overlaps with, notably onelence_verify_tracking, onelence_get_integrations, and onelence_list_conversions.

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 opening clause 'For installing or checking OneLence tracking' implies the use case, and 'detailed adds the full step-by-step guide for coding agents' hints at when to pick that mode. However, nothing tells the agent when to prefer this over onelence_verify_tracking (does events arrive overlap?) or onelence_get_integrations (does integration health overlap?), which is exactly the ambiguity a close sibling set creates. Usage is implied rather than resolved.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.