Skip to main content
Glama
ShieldLabs-ai

@shieldlabs-ai/mcp

Official

List History

shieldlabs_list_history
Read-onlyIdempotent

Lists identifications or users within a domain using risk, date, and activity filters to review visitor history and investigate suspicious activity.

Instructions

List identifications or users in one domain. domain is the public UUID from shieldlabs_list_domains. Repeat page_token with the same resource, window and flat filters. Filters are risk_bands, hre_min_accounts (3-99), hre_min_devices (4-99), ids (one user id on the user list), risk_signals, source, campaign and boolean flags. Dates are RFC3339 and the window is half-open. Nested filter, chips, offset, include_total and sort are rejected. visitor, device and ip have a card, not a list.

Input Schema

NameRequiredDescriptionDefault
toNo
idsNo
fromNo
limitNo
ai_botNo
domainYesPublic domain UUID from shieldlabs_list_domains, not the hostname.
is_torNo
is_vpnNo
sourceNo
campaignNo
is_proxyNo
resourceYes
snapshotNo
banned_ipNo
ai_browserNo
page_tokenNo
risk_bandsNo
ip_mismatchNo
is_incognitoNo
latency_testNo
risk_signalsNo
is_antidetectNo
is_search_botNo
is_js_disabledNo
is_os_mismatchNo
device_spoofingNo
hre_min_devicesNo
response_formatNomarkdown
check_incompleteNo
hre_min_accountsNo
is_privacy_relayNo
is_os_not_detectedNo
is_timezone_mismatchNo
is_browser_automationNo
network_check_incompleteNo

Output Schema

NameRequiredDescriptionDefault
dataYes
resourceYes
next_page_tokenYes
untrusted_data_noteYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the description mainly adds scoping rules. It does add genuine behavioral context — RFC3339 dates, half-open window, pagination requiring identical filters, and a list of rejected parameters — but says nothing about the pagination token's lifetime or result ordering.

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?

Dense but front-loaded: the core operation, the domain provenance, and the pagination rule come first. Sentences are telegraphic yet each carries distinct information; some reads ('visitor, device and ip have a card, not a list') are cryptic out of context but still earn their place.

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?

For a 35-parameter tool with near-zero schema descriptions, the definition leaves meaningful gaps: the boolean flag set, the meaning of snapshot, the limit cap, and the from/to pairing rules are unaddressed. An output schema exists, so return values needn't be explained, which keeps it from being worse.

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 only 3% schema description coverage across 35 parameters, the description has to carry nearly the full burden. It names several filters (risk_bands, hre_min_accounts 3-99, hre_min_devices 4-99, ids as one user id on the user list, risk_signals, source, campaign) but lumps roughly two dozen booleans into 'boolean flags', and never explains from/to, limit, snapshot, page_token or response_format semantics.

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?

States a specific verb ('List') and resource ('identifications or users in one domain'), which is clearly distinct from the card-style sibling shieldlabs_get_identification. It also disambiguates the resource enum by noting that visitor, device and ip have a card, not a list. It does not, however, contrast with shieldlabs_get_history, leaving that boundary implicit.

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?

Gives concrete operational guidance: domain must be the public UUID from shieldlabs_list_domains, page_token must be repeated with the same resource/window/flat filters, and nested filter, chips, offset, include_total and sort are rejected. That is real when/how guidance, though it never explicitly says when to prefer this over shieldlabs_get_history or the card tools.

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