Skip to main content
Glama
chrischall

Credit Karma MCP

by chrischall

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CK_COOKIESNoFull Cookie header from a signed-in creditkarma.com request
CK_DB_PATHNoPath to SQLite database file~/.creditkarma-mcp/transactions.db
CK_DISABLE_FETCHPROXYNoSet to '1' to skip the fetchproxy fallback (headless / CI)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ck_healthcheckA

Resolves the credential the way real tools do, then makes one authenticated request to creditkarma.com. Reports which source supplied the credential, whether creditkarma.com accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a creditkarma.com-side problem'. Read-only; never returns the credential itself. Call this when a real tool fails and you want to know which hop broke — steps reports credential lookup, token validity, refresh and probe separately, and failed_step names the first that failed.

ck_set_sessionA

Store a Credit Karma session to enable automatic token refresh. Pass the full Cookie header from a signed-in creditkarma.com request (Chrome DevTools → Network → any creditkarma.com request → Request Headers → right-click the cookie header → Copy value). For most users the easier onboarding path is to install the ContextMint Bridge extension and sign into creditkarma.com — the MCP reads the cookies automatically.

ck_forget_sessionA

Forget the Credit Karma session on this machine: delete the saved-session file (~/.creditkarma-mcp/session, or CK_SESSION_PATH) that ck_set_session and token refreshes write, and clear the credentials held in memory. Use when the user stops using this server or wants their stored login removed. Local only — Credit Karma is not contacted, synced transactions are kept, and a CK_COOKIES value set in the host config is not changed.

ck_sync_transactionsA

Sync Credit Karma transactions into the local SQLite database, then refresh account balances once (see ck_get_account_balances; a balance failure is reported in balances, never thrown; a call that pauses with more to fetch leaves balances to the call that finishes). Incremental by default (fetches since last sync + 30-day overlap for updates). There is no login flow: credentials are re-read from the saved session (ck_set_session), CK_COOKIES, or a signed-in creditkarma.com tab via the ContextMint Bridge extension; if none is usable it fails with an error saying how to sign back in. Bounded and resumable: when it pauses with more to fetch it returns another_run_needed:true and a note — run it again and it continues from where it stopped.

ck_list_transactionsB

List transactions with optional filters. Paginated.

ck_get_recent_transactionsB

Return the N most recent transactions. Convenience shortcut for ck_list_transactions.

ck_get_spending_by_categoryB

Group debit transactions by category and return totals.

ck_get_spending_by_merchantB

Return top merchants by total debit spend.

ck_get_account_summaryB

Return per-account debit, credit, and net totals.

ck_get_account_balancesA

Current balance of every account: institution, type, last 4, current balance, available credit and credit limit (cards), and the as-of time. Reads the local database (filled by ck_sync_transactions); pass refresh:true to fetch live first. source "linked" = a linked bank, card, loan or investment account, live from the account aggregator (refreshed about daily). source "credit_report" = a card or loan from the credit report (2–5 weeks old, no last 4); one that duplicates a linked account is hidden unless include_matched:true. Liabilities are negative, matching transactions; available credit is limit minus balance. stale is true past 7 days (linked) or 35 days (credit report).

ck_query_sqlA

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation4/5

Most tools target distinct resources or aggregations (spending-by-category vs by-merchant vs account-summary vs balances are clearly separated). The one real overlap is ck_get_recent_transactions, which is explicitly a convenience shortcut for ck_list_transactions, and ck_query_sql is a generic escape hatch that can duplicate the analytics tools, but the descriptions make the intended boundaries clear.

Naming Consistency5/5

Every tool follows the same ck_ prefix and snake_case verb_noun pattern (ck_list_transactions, ck_get_account_balances, ck_sync_transactions, ck_set_session). No mixed conventions or stray camelCase.

Tool Count5/5

11 tools is well within the ideal range and each earns its place: data retrieval, aggregation, sync, session lifecycle, and diagnostics. Nothing feels padded or redundant enough to trim.

Completeness4/5

The surface covers the full read/analytics lifecycle: credential setup and teardown, sync, raw and filtered queries, categorical/merchant spending, account summaries and balances, plus a healthcheck for failure diagnosis. Minor gaps remain (no per-category or per-merchant detail drill-down, no budget/goal coverage), but core workflows have no dead ends.

Maintenance

ActivityActive
ResponsivenessResponsive