Skip to main content
Glama

List data sources

layerz_list_integrations
Read-onlyIdempotent

Lists every data source feeding a model: API connectors (Qonto, Pennylane, Stripe, Airtable, Metabase) and file imports (kind csv | fec), each with kind, display_name, branch_ids (the branches it feeds), sync status, last_synced_at and source_fields (the payload fields an API connector's field_map can re-point its description / category / account_number to; null when there is nothing to choose). A row with legacy_import_id is a materialized pre-staging import that owns input rows but staged no transactions. include_external_refs: true adds external_refs: the links to items of other Layerz models, each with a value-aware stale flag (the source moved in a way that changes the snapshot) and its source health. Stored credentials are not returned.

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": "layerz_list_integrations"
  }
}

Input Schema

NameRequiredDescriptionDefault
model_idNoTarget model UUID. Required for user-scoped API keys; validated against the bound model for model-scoped keys.
include_external_refsNoAlso return the external references (links to other models) with their staleness.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / include_external_refs
      Added value: +{
      +  "description": "Also return the external references (links to other models) with their staleness.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / model_id / description
      Previous value: -"Target model UUID. Required for user-scoped API keys; ignored (or validated against scope) for model-scoped keys."New value: +"Target model UUID. Required for user-scoped API keys; validated against the bound model for model-scoped keys."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, yet the description still adds real behavioral context: stored credentials are explicitly excluded from the response, `legacy_import_id` rows are flagged as materialized pre-staging imports that own input rows but staged no transactions, and `source_fields` is null when there is nothing to choose. Those are non-obvious traits an agent could not derive from 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.

Conciseness4/5

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

Front-loaded with the core statement, then layered detail on row fields, the legacy_import_id edge case, and the opt-in flag — no filler sentences. It is dense and backtick-heavy in a single paragraph, which costs a little scanability, but every clause carries information.

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?

With no output schema, the description must carry return-value semantics, and it does: it enumerates the per-row fields (kind, display_name, branch_ids, sync status, last_synced_at, source_fields) and the conditional external_refs payload. For a two-parameter, read-only list tool this is sufficient to call and interpret 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 the baseline is 3, but the description goes beyond the schema's one-line 'also return external references with their staleness' by explaining the value-aware `stale` flag (the source moved in a way that changes the snapshot) and that source health accompanies each reference. That meaningfully upgrades what an agent understands about the flag before opting in.

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?

States a specific verb and resource ('Lists every data source feeding a model') and immediately enumerates the two families covered — API connectors and file imports (kind csv | fec). That scope cleanly separates it from mutating siblings like layerz_manage_integration and from adjacent readers like layerz_list_mappings or layerz_dependencies.

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 only implied: an agent infers you call this to inspect what feeds a model, and the description does explain when to set include_external_refs (to get links to other models plus staleness). There is no explicit when-not guidance and no naming of layerz_manage_integration or layerz_external_ref as the alternative for acting on or inspecting a single reference.

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.

Resources