Skip to main content
Glama
chrischall

Credit Karma MCP

by chrischall

ck_query_sql

Read-only

Run read-only SQL SELECT queries against Credit Karma transaction data to retrieve or aggregate transactions, accounts, categories, and merchants. Supports CTEs and LIMIT/OFFSET paging.

Instructions

Execute a raw SQL SELECT query (CTEs via WITH ... SELECT are supported) against the transactions database. Non-SELECT statements (INSERT, UPDATE, DELETE, DROP, etc.) are rejected. Returns at most max_rows rows (default 500, max 5000); a larger result comes back with truncated: true, so prefer aggregates or LIMIT/OFFSET paging. A query running longer than 10 s is stopped. Only the first statement runs. Tables: transactions, accounts, categories, merchants, sync_state.

Input Schema

NameRequiredDescriptionDefault
sqlYesA SELECT SQL statement
max_rowsNoMost rows to return (default 500). Page larger results with LIMIT/OFFSET.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.1.3
    • addedInput schema / properties / max_rows
      Added value: +{
      +  "description": "Most rows to return (default 500). Page larger results with LIMIT/OFFSET.",
      +  "maximum": 5000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. Changed1 schema field changedv3.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. First observedv2.3.1

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations by disclosing that non-SELECT statements are rejected, that only the first statement executes, the 10-second timeout, and the truncated:true flag on oversized results. These are exactly the behavioral traits an agent needs before issuing arbitrary SQL.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Four dense sentences that are front-loaded with purpose and then layer constraints and return behavior. No filler, repetition, or ambiguity.

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?

No output schema exists, and the description compensates by covering the row cap, truncation flag, timeout, statement handling, and available tables. An agent has everything needed to call this 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; the description adds real value by explaining the truncated:true return behavior tied to max_rows and recommending LIMIT/OFFSET paging, exceeding the schema's bare default and maximum notes.

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 action (execute a raw SQL SELECT) and resource (the transactions database), and enumerates available tables. It clearly positions itself as the raw-query escape hatch versus purpose-built siblings like ck_list_transactions and ck_get_spending_by_category.

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?

Provides operational context for correct use: SELECT-only, only the first statement runs, 10 s timeout, and the recommendation to prefer aggregates or LIMIT/OFFSET paging for large results. It does not explicitly compare itself to sibling tools or say when to prefer them, so it falls short of the top score.

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