Skip to main content
Glama
cliwant

mcp-sam-gov

by cliwant

tableau_view_csv

Read-only

Fetch and paginate complete CSV exports from government Tableau Server guest views to access public contract, vendor payment, and checkbook data.

Instructions

Fetch a curated US-government Tableau Server Guest view's COMPLETE CSV export (keyless) and page over it — a SLED transparency source (many state/local govs publish contracts / vendor-payment / checkbook data on a Guest-enabled Tableau Server; a worksheet view exports as CSV at {host}/t/{site}/views/{workbook}/{view}.csv?:embed=y, no login/key/cookie). First payload: mt_contracts_awarded = State of Montana (DOA) Contracts Awarded (~4,554 award records: '$ Awarded', 'Award Date', 'Event Type' (Invitation For Bid / RFP), 'Event#' solicitation number, 'Vendor Name', 'Agency'). Inputs: view (the allowlist ENUM — SSRF core, never a free host), limit(1..1000)/offset. Returns { view, columns:[…], rows:[{col:value…}] } + honest _meta. HONESTY: the CSV is the COMPLETE view export (Tableau returns ALL summary rows — NO server pagination), so totalAvailable = the true row count (NEVER a page length); limit/offset page it client-side; a round-number total is flagged as a possible Tableau export cap. Values are TRIMMED strings (an empty field ⇒ null, never 0/""); the content is preserved — amounts like "$5,879,590.00" are FORMATTED STRINGS, parse client-side. A 429/5xx/404/timeout THROWS; a gated/renamed view (200 sign-in HTML or an empty dashboard-container export) ⇒ schema_drift (a loud failure, NEVER a fake empty); a worksheet with a header but 0 data rows ⇒ honest empty. SSRF: fixed allowlist base + hostname assertion + redirect:error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
viewYesThe curated Tableau Server Guest view (SSRF allowlist enum). 'mt_contracts_awarded' = State of Montana (DOA) Contracts Awarded (~4,554 award records: $ Awarded, Award Date, Event Type IFB/RFP, Event# solicitation, Vendor Name, Agency).
limitNoRows per page, 1..1000, default 50. The CSV is the complete view export; this pages over it client-side.
offsetNo0-based offset; page with _meta.pagination.nextOffset. totalAvailable = the complete export row count (NOT a page length).
Behavior5/5

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

Describes important behaviors beyond annotations: client-side pagination, no server pagination, trimmed strings with null for empty, formatted amounts, error handling (429/5xx/404/thrown, schema_drift for gated views), and SSRF safeguards. Annotations only provide readOnlyHint and openWorldHint; description adds rich detail without contradiction.

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?

Long but densely informative; front-loaded with purpose. Every sentence adds context, though some redundancy exists (e.g., repeated emphasis on SSRF). Could be slightly more concise, but remains effective.

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?

Fully explains return format (view, columns, rows, _meta), error handling, honest pagination, and data integrity. No output schema, so description compensates thoroughly. Covers all likely agent questions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds substantial context: view enum explained with example data and record count, limit/offset explained with meaning of totalAvailable (true row count) and client-side pagination. Goes well beyond schema descriptions.

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 it fetches a complete CSV export from a Tableau Server Guest view, specifically for government transparency data. Provides an explicit example (mt_contracts_awarded) and distinguishes from sibling tools which focus on different data sources.

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?

Explains the context (SLED transparency, keyless access) and when to use (fetching government contract data from Tableau). Lacks explicit when-not-to-use or direct alternatives, but the sibling list and clear scope 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.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cliwant/mcp-sam-gov'

If you have feedback or need assistance with the MCP directory API, please join our Discord server