ai.explorium/mcp-explorium
show-sample
Present the final sample to the user. **SHOW-SAMPLE (`fetch-entities`, `enrich-business`, `enrich-prospects`, `fetch-businesses-events`, `fetch-prospects-events` only)** - For each user turn that includes exploration work, call `show-sample` after that turn's fetch/enrich/events work is finished, using the final relevant `table_name`(s). - If the turn creates multiple final datasets/tables (for example US and Canada splits), make a separate successful `show-sample` call for each final `table_name` before replying. - If a table is enriched, sample the final enriched table only—not the intermediate fetch table. - If a later user turn asks for more data or another enrichment, call `show-sample` again after that turn's work is finished. - Do not ask the user for confirmation before calling `show-sample`; confirmation is required only before `export-to-csv`. - Present the sample returned by `show-sample`, not the masked exploration preview. - All other tools return complete results—present those directly. Exploration is free; *Display format for the `show-sample` tool:* Only show this text, no need to render any markdown representation for the results, they are handled by the widget. **Results Found** [key qualifier] [entity type] from [companies/sources] **READING `counts` (never guess which number to quote)** - `records_matching_filters` — how many exist upstream. **Headroom, not delivered data.** Never say these were fetched, saved, or exported. - `records_available` — rows this step delivered. On `show-sample`/`export-to-csv` it is the exportable/exported row count; on `enrich`/`events` it equals `records_received` (all input rows were kept). **This is the number to tell the user.** - `records_requested` — the cap that was applied. Defaults to 30 when the user named no number. - `records_shown_in_preview` — preview rows only. Never a dataset size. - `records_received` / `records_with_errors` — inputs into this step / inputs that failed. - When `records_matching_filters` > `records_available`, you have a **subset**. Say so: "N of M matching — want more?" Never "all M". - **Never do arithmetic on `records_matching_filters`** — no scaling costs, credits, or totals to it. Quote `cost_in_credits` as returned; it already covers exactly `records_available` rows. **BILLING** - Fixed cost: 5 credits per exploration table (first successful charge per table). - Charging is idempotent per table: duplicate show-sample for the same `table_name` does not charge again. - Duplicate show-sample for the same query returns the same full rows without charging again. - If a prior call returned `insufficient_credits`, a later call retries charging (e.g. after the user tops up). - On `insufficient_credits`, returns masked preview rows only (same masking as exploration); full rows require a successful charge. - When `async_export` is present, tell the user the named enrichments require the eventual export to run asynchronously. - This tool always calls cost estimation and returns the export cost fields, so do not call `estimate-cost` after `show-sample` for the same `table_name`.
Remote (network-hosted)
Other tools also called show-sample?
See providers with this name
Input Schema
{
"type": "object",
"properties": {
"session_id": {
"type": "string",
"pattern": "^session_[a-z0-9_]+$",
"description": "Session ID containing the data to process"
},
"table_name": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$",
"description": "table_name from a prior fetch/enrich/events exploration response. Do not invent this value."
},
"tool_reasoning": {
"type": "string",
"maxLength": 2000,
"description": "The original user query that prompted this workflow, in EXACT WORDS. Reuse the same wording across chained tool calls when the task is unchanged. Do not replace it with a per-step rationale or unrelated PII. Maximum 2000 characters. If the original query is longer, copy the beginning exactly and truncate at 2000 characters without summarizing, rewriting, or adding explanations."
},
"client_platform": {
"enum": [
"claude_chat",
"claude_cowork",
"claude_code",
"openai_chatgpt",
"openai_codex",
"cursor",
"vscode",
"windsurf",
"github_copilot",
"antigravity",
"replit",
"pi.dev",
"opencode",
"hermes",
"gemini_cli",
"openclaw",
"vibe_app",
"manus",
"omp",
"other",
"unknown",
"grok"
],
"type": "string",
"default": "unknown",
"description": "IMPORTANT: Always set this on every call. Identify the application or AI client invoking this MCP tool (e.g. claude_chat, claude_cowork, claude_code, cursor, openai_chatgpt). Use the matching enum value when the caller is known. Use `other` when the caller is known but not listed; use `unknown` only when the caller truly cannot be determined. Do not omit this field. Defaults to `unknown` only if omitted by older clients."
},
"preview_table_columns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ordered list of column keys for the preview table widget. The keys you choose MUST derive from `preview.preview_data` keys in the prior fetch/enrich/events response for this `table_name`, Do NOT invent, rename, abbreviate, or guess keys. Skip columns that their values at `preview.preview_data` are mostly-null/empty. Omit internal/id fields (e.g. business_id, prospect_id, row_num). Pick 3–6 column keys most relevant to the user's intent. "
}
}
}