{"id":"c5dc3ab8-be1d-4cce-986b-99a1de3e00b4","entityType":"agent","slug":"clawhub-chrischall-creditkarma-mcp","name":"Tmp.Rd8dBLUSJc","canonicalUrl":"https://www.xpersona.co/agent/clawhub-chrischall-creditkarma-mcp","canonicalPath":"/agent/clawhub-chrischall-creditkarma-mcp","generatedAt":"2026-10-10T10:45:05.461Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T07:49:09.376Z","emptyReason":null},"description":"Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summari... Skill: Tmp.Rd8dBLUSJc Owner: chrischall Summary: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summari... Tags: latest:2.2.5 Version history: v2.2.5 | 2026-07-07T23:57:57.830Z | auto - Removed the sample file skill-card.md. - No changes to functionality or documentation beyond file removal. v2.2.4 | 2026-06-15T14:3","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:creditkarma-mcp","sourceUrl":"https://clawhub.ai/chrischall/creditkarma-mcp","homepage":"https://clawhub.ai/chrischall/skills/creditkarma-mcp","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/chrischall/creditkarma-mcp","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/chrischall/skills/creditkarma-mcp","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summari..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:49:09.376Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:49:09.376Z","emptyReason":null},"stars":null,"forks":null,"downloads":1580,"packageName":null,"latestVersion":"2.2.5","tractionLabel":"1.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:49:09.376Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T07:49:09.376Z","lastCrawledAt":"2026-10-10T07:49:09.376Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T07:49:09.376Z","lastVerifiedAt":null,"highlights":[{"version":"2.2.5","createdAt":"2026-07-07T23:57:57.830Z","changelog":"- Removed the sample file skill-card.md. - No changes to functionality or documentation beyond file removal.","fileCount":3,"zipByteSize":4081},{"version":"2.2.4","createdAt":"2026-06-15T14:33:36.648Z","changelog":"- Removed the file skill-card.md from the project. - No changes to functionality or documentation other than this file removal.","fileCount":3,"zipByteSize":4113},{"version":"2.2.3","createdAt":"2026-06-13T00:54:33.236Z","changelog":"- Removed the file: skill-card.md - No user-facing changes to skill behavior or setup - Internal documentation cleanup only","fileCount":3,"zipByteSize":4203},{"version":"2.2.2","createdAt":"2026-06-04T04:29:33.379Z","changelog":"- Removed the sample skill card file (skill-card.md). - No changes to core functionality or documentation.","fileCount":3,"zipByteSize":4103},{"version":"2.2.1","createdAt":"2026-05-29T21:36:10.043Z","changelog":"- Removed the file: skill-card.md - No changes to functionality or usage; this is a cleanup release.","fileCount":3,"zipByteSize":4035},{"version":"2.2.0","createdAt":"2026-05-28T01:30:12.388Z","changelog":"- Removed the sample file skill-card.md. - No user-facing functionality or setup changes—this update only deletes a documentation/sample file.","fileCount":3,"zipByteSize":4157},{"version":"2.1.4","createdAt":"2026-05-26T17:09:49.110Z","changelog":"creditkarma-mcp 2.1.4 - No changes detected in this version.","fileCount":3,"zipByteSize":4249},{"version":"2.0.10","createdAt":"2026-05-21T20:12:07.803Z","changelog":"creditkarma-mcp 2.0.10 - Updated setup instructions to prioritize the fetchproxy Chrome extension for easier authentication; CK_COOKIES env var now optional. - Clarified three onboarding/authentication paths: fetchproxy, ck_set_session tool, or manual DevTools copy. - Authentication and re-authentication processes explained for each setup path. - Existing tool usage, SQL examples, and database schema sections unchanged.","fileCount":2,"zipByteSize":2890}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:creditkarma-mcp","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T10:45:05.459Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-creditkarma-mcp/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T07:49:09.376Z","emptyReason":null},"readme":"Skill: Tmp.Rd8dBLUSJc\n\nOwner: chrischall\n\nSummary: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summari...\n\nTags: latest:2.2.5\n\nVersion history:\n\nv2.2.5 | 2026-07-07T23:57:57.830Z | auto\n\n- Removed the sample file skill-card.md.\n- No changes to functionality or documentation beyond file removal.\n\nv2.2.4 | 2026-06-15T14:33:36.648Z | auto\n\n- Removed the file skill-card.md from the project.\n- No changes to functionality or documentation other than this file removal.\n\nv2.2.3 | 2026-06-13T00:54:33.236Z | auto\n\n- Removed the file: skill-card.md\n- No user-facing changes to skill behavior or setup\n- Internal documentation cleanup only\n\nv2.2.2 | 2026-06-04T04:29:33.379Z | auto\n\n- Removed the sample skill card file (skill-card.md).\n- No changes to core functionality or documentation.\n\nv2.2.1 | 2026-05-29T21:36:10.043Z | auto\n\n- Removed the file: skill-card.md\n- No changes to functionality or usage; this is a cleanup release.\n\nv2.2.0 | 2026-05-28T01:30:12.388Z | auto\n\n- Removed the sample file skill-card.md.\n- No user-facing functionality or setup changes—this update only deletes a documentation/sample file.\n\nv2.1.4 | 2026-05-26T17:09:49.110Z | auto\n\ncreditkarma-mcp 2.1.4\n\n- No changes detected in this version.\n\nv2.0.10 | 2026-05-21T20:12:07.803Z | auto\n\ncreditkarma-mcp 2.0.10\n\n- Updated setup instructions to prioritize the fetchproxy Chrome extension for easier authentication; CK_COOKIES env var now optional.\n- Clarified three onboarding/authentication paths: fetchproxy, ck_set_session tool, or manual DevTools copy.\n- Authentication and re-authentication processes explained for each setup path.\n- Existing tool usage, SQL examples, and database schema sections unchanged.\n\nv2.0.9 | 2026-05-20T00:49:41.476Z | auto\n\nVersion 2.0.9 of creditkarma-mcp\n\n- No file changes detected in this release.\n- Functionality, usage, and documentation remain unchanged from the previous version.\n\nv2.0.8 | 2026-05-20T00:36:45.485Z | auto\n\n- Added a note detailing the format of `accounts.id` as a synthesized stable key and how provider name inconsistencies create duplicate account rows.\n- No other content or tool changes in this update.\n\nv2.0.7 | 2026-05-16T16:50:05.054Z | auto\n\n- No user-facing changes in this release.\n- Documentation and configuration remain unchanged.\n\nv2.0.6 | 2026-05-16T16:13:45.908Z | auto\n\n- Clarified that the full session Cookie header (including CKAT, CKTRKID, etc.) is now required for authentication, not just CKAT.\n- Updated setup, authentication, and environment variable instructions to reference the full Cookie header format.\n- Revised auth workflow and tool documentation to emphasize use of the complete cookie string from browser requests.\n- Provided updated steps for extracting the session cookie via browser DevTools and the provided script.\n- Cleaned up language and examples throughout to match the new cookie requirements.\n\nv2.0.5 | 2026-05-16T10:49:56.392Z | auto\n\n- Added comprehensive setup and usage instructions for accessing Credit Karma transaction data via MCP.\n- Clarified authentication flow, including how to obtain and store CK_COOKIES.\n- Listed all available tools for syncing, querying, and managing transaction data.\n- Provided example workflows for common financial queries and custom analysis.\n- Included details about the local database schema and important usage notes.\n\nArchive index:\n\nArchive v2.2.5: 3 files, 4081 bytes\n\nFiles: skill-card.md (2184b), SKILL.md (6012b), _meta.json (134b)\n\nFile v2.2.5:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES (optional)\n\nThree onboarding paths, in priority order:\n\n**1. fetchproxy extension (easiest — no env vars):** Install the [fetchproxy 0.3.0 extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com once, and leave `CK_COOKIES` **unset**. The MCP reads HttpOnly `CKAT` + `CKTRKID` cookies on the first tool call via `chrome.cookies.get`, then operates direct-to-API from Node.\n\n**2. ck_set_session MCP tool:** From within Claude, call `ck_set_session` with a Cookie header you copied from DevTools (see below). The tool persists it to `.env`.\n\n**3. Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n4. Paste into `CK_COOKIES` in your Claude config\n\n## Authentication\n\nThe MCP handles auth automatically once any of the three paths is configured.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired:\n  - **fetchproxy path:** sign back into creditkarma.com — the MCP reads fresh cookies on the next tool call\n  - **env-var / ck_set_session path:** grab a fresh Cookie header from DevTools and update `CK_COOKIES` (or call `ck_set_session` again)\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Easiest: install the [fetchproxy extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com, leave `CK_COOKIES` unset.\n2. Or: copy the Cookie header from DevTools and either set `CK_COOKIES` in your config or call `ck_set_session(cookies)` from within Claude.\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.2.5:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.2.5\",\n  \"publishedAt\": 1783468677830\n}\n\nFile v2.2.5:skill-card.md\n\n## Description:\n\nAccess Credit Karma transaction data through an MCP server for syncing, querying, and analyzing personal finance data.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and end users connect an agent to a local Credit Karma MCP server to sync transaction data, review account summaries, and analyze spending by category, merchant, date, or SQL query.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill requires Credit Karma session access and synced financial data may be exposed to the MCP server or related extension.\n\nMitigation: Install only after reviewing the package and extension, use a pinned audited version, and remove stored cookies and the local SQLite database when no longer needed.\n\nRisk: Cookie headers or MCP environment configuration can leak account session access if committed or backed up.\n\nMitigation: Keep CK_COOKIES, .env files, and MCP configuration containing cookies out of source control and backups.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/chrischall/skills/creditkarma-mcp)\n- [creditkarma-mcp npm Package](https://www.npmjs.com/package/creditkarma-mcp)\n- [creditkarma-mcp Source Repository](https://github.com/chrischall/creditkarma-mcp)\n- [fetchproxy Extension](https://github.com/chrischall/fetchproxy)\n- [Credit Karma](https://www.creditkarma.com)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, SQL queries, Guidance]\n\n**Output Format:** [Markdown with JSON, bash, and SQL code blocks]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include MCP tool names, configuration snippets, and read-only SQL examples for local transaction analysis.]\n\n## Skill Version(s):\n\n2.2.5 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v2.2.4: 3 files, 4113 bytes\n\nFiles: skill-card.md (2415b), SKILL.md (6012b), _meta.json (134b)\n\nFile v2.2.4:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES (optional)\n\nThree onboarding paths, in priority order:\n\n**1. fetchproxy extension (easiest — no env vars):** Install the [fetchproxy 0.3.0 extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com once, and leave `CK_COOKIES` **unset**. The MCP reads HttpOnly `CKAT` + `CKTRKID` cookies on the first tool call via `chrome.cookies.get`, then operates direct-to-API from Node.\n\n**2. ck_set_session MCP tool:** From within Claude, call `ck_set_session` with a Cookie header you copied from DevTools (see below). The tool persists it to `.env`.\n\n**3. Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n4. Paste into `CK_COOKIES` in your Claude config\n\n## Authentication\n\nThe MCP handles auth automatically once any of the three paths is configured.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired:\n  - **fetchproxy path:** sign back into creditkarma.com — the MCP reads fresh cookies on the next tool call\n  - **env-var / ck_set_session path:** grab a fresh Cookie header from DevTools and update `CK_COOKIES` (or call `ck_set_session` again)\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Easiest: install the [fetchproxy extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com, leave `CK_COOKIES` unset.\n2. Or: copy the Cookie header from DevTools and either set `CK_COOKIES` in your config or call `ck_set_session(cookies)` from within Claude.\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.2.4:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.2.4\",\n  \"publishedAt\": 1781534016648\n}\n\nFile v2.2.4:skill-card.md\n\n## Description: <br>\nAccess Credit Karma transaction data via MCP for transaction syncing, spending analysis, merchant and category summaries, account summaries, and local financial-data queries. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[chrischall](https://clawhub.ai/user/chrischall) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to configure an agent for Credit Karma transaction access, sync data into a local SQLite database, and answer explicit personal-finance questions about spending, merchants, categories, accounts, and transaction history. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill asks users to expose live Credit Karma session cookies. <br>\nMitigation: Treat CK_COOKIES and copied Cookie headers like passwords, avoid storing them in plain .env files when possible, and use the skill only for explicit Credit Karma requests. <br>\nRisk: The skill syncs private transaction data into a local SQLite database. <br>\nMitigation: Confirm where the SQLite database is written, restrict local file access, and remove stored data when it is no longer needed. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/chrischall/creditkarma-mcp) <br>\n- [creditkarma-mcp npm package](https://www.npmjs.com/package/creditkarma-mcp) <br>\n- [creditkarma-mcp source link from skill docs](https://github.com/chrischall/creditkarma-mcp) <br>\n- [fetchproxy extension](https://github.com/chrischall/fetchproxy) <br>\n- [Credit Karma](https://www.creditkarma.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, configuration, shell commands, SQL queries, MCP tool calls] <br>\n**Output Format:** [Markdown with JSON, bash, SQL, and MCP tool examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces agent-facing setup and usage guidance for accessing sensitive Credit Karma financial data through a registered MCP server.] <br>\n\n## Skill Version(s): <br>\n2.2.4 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.2.3: 3 files, 4203 bytes\n\nFiles: skill-card.md (2553b), SKILL.md (6012b), _meta.json (134b)\n\nFile v2.2.3:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES (optional)\n\nThree onboarding paths, in priority order:\n\n**1. fetchproxy extension (easiest — no env vars):** Install the [fetchproxy 0.3.0 extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com once, and leave `CK_COOKIES` **unset**. The MCP reads HttpOnly `CKAT` + `CKTRKID` cookies on the first tool call via `chrome.cookies.get`, then operates direct-to-API from Node.\n\n**2. ck_set_session MCP tool:** From within Claude, call `ck_set_session` with a Cookie header you copied from DevTools (see below). The tool persists it to `.env`.\n\n**3. Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n4. Paste into `CK_COOKIES` in your Claude config\n\n## Authentication\n\nThe MCP handles auth automatically once any of the three paths is configured.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired:\n  - **fetchproxy path:** sign back into creditkarma.com — the MCP reads fresh cookies on the next tool call\n  - **env-var / ck_set_session path:** grab a fresh Cookie header from DevTools and update `CK_COOKIES` (or call `ck_set_session` again)\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Easiest: install the [fetchproxy extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com, leave `CK_COOKIES` unset.\n2. Or: copy the Cookie header from DevTools and either set `CK_COOKIES` in your config or call `ck_set_session(cookies)` from within Claude.\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.2.3\",\n  \"publishedAt\": 1781312073236\n}\n\nFile v2.2.3:skill-card.md\n\n## Description: <br>\nAccess Credit Karma transaction data through an MCP server for syncing transactions, querying spending by category or merchant, and reviewing account summaries. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[chrischall](https://clawhub.ai/user/chrischall) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to configure and operate the Credit Karma MCP server so an agent can sync, store, and query their Credit Karma transaction data for spending analysis and account summaries. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires or persists Credit Karma session cookies for access to financial data. <br>\nMitigation: Use it only when comfortable granting that access; keep .env and MCP config private, prefer a dedicated browser profile or account session, and remove stored cookies when finished. <br>\nRisk: Local transaction history stored in SQLite may expose personal financial details to local users or processes. <br>\nMitigation: Store the database in a protected profile or workspace and restrict file access before syncing. <br>\nRisk: Cookie-based sessions may remain reusable until they expire. <br>\nMitigation: Refresh or revoke sessions after use and avoid sharing configs, logs, or prompts containing cookie values. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/chrischall/creditkarma-mcp) <br>\n- [creditkarma-mcp npm package](https://www.npmjs.com/package/creditkarma-mcp) <br>\n- [fetchproxy extension](https://github.com/chrischall/fetchproxy) <br>\n- [Credit Karma](https://www.creditkarma.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Shell commands, Configuration instructions, API Calls, Text] <br>\n**Output Format:** [Markdown guidance with JSON, bash, SQL, and MCP tool-call examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Agent outputs may include financial transaction summaries, category or merchant spending totals, account summaries, and read-only SQL query results from a local SQLite database.] <br>\n\n## Skill Version(s): <br>\n2.2.3 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.2.2: 3 files, 4103 bytes\n\nFiles: skill-card.md (2414b), SKILL.md (6012b), _meta.json (134b)\n\nFile v2.2.2:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES (optional)\n\nThree onboarding paths, in priority order:\n\n**1. fetchproxy extension (easiest — no env vars):** Install the [fetchproxy 0.3.0 extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com once, and leave `CK_COOKIES` **unset**. The MCP reads HttpOnly `CKAT` + `CKTRKID` cookies on the first tool call via `chrome.cookies.get`, then operates direct-to-API from Node.\n\n**2. ck_set_session MCP tool:** From within Claude, call `ck_set_session` with a Cookie header you copied from DevTools (see below). The tool persists it to `.env`.\n\n**3. Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n4. Paste into `CK_COOKIES` in your Claude config\n\n## Authentication\n\nThe MCP handles auth automatically once any of the three paths is configured.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired:\n  - **fetchproxy path:** sign back into creditkarma.com — the MCP reads fresh cookies on the next tool call\n  - **env-var / ck_set_session path:** grab a fresh Cookie header from DevTools and update `CK_COOKIES` (or call `ck_set_session` again)\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Easiest: install the [fetchproxy extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com, leave `CK_COOKIES` unset.\n2. Or: copy the Cookie header from DevTools and either set `CK_COOKIES` in your config or call `ck_set_session(cookies)` from within Claude.\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.2.2\",\n  \"publishedAt\": 1780547373379\n}\n\nFile v2.2.2:skill-card.md\n\n## Description: <br>\nAccesses Credit Karma transaction data through an MCP server for syncing, querying, and spending analysis. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[chrischall](https://clawhub.ai/user/chrischall) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent users use this skill to configure and operate a Credit Karma MCP server that syncs transaction data into a local SQLite database and answers questions about accounts, merchants, categories, and spending. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires Credit Karma session cookies and can persist sensitive financial transaction data locally. <br>\nMitigation: Use it only when comfortable granting that access, protect any .env or MCP configuration containing CK_COOKIES, and avoid sharing logs or configuration files that may contain credentials or financial data. <br>\nRisk: Expired or exposed Credit Karma session credentials may continue to affect account access until refreshed or revoked. <br>\nMitigation: Refresh or revoke the Credit Karma session if credentials may have been exposed, and prefer explicit Credit Karma prompts when using the skill. <br>\n\n\n## Reference(s): <br>\n- [ClawHub release page](https://clawhub.ai/chrischall/creditkarma-mcp) <br>\n- [npm package: creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp) <br>\n- [Source repository: creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp) <br>\n- [fetchproxy extension](https://github.com/chrischall/fetchproxy) <br>\n- [Credit Karma](https://www.creditkarma.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with JSON, bash, SQL, and MCP tool examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [The skill handles personal finance data, Credit Karma session cookies, and local SQLite transaction records.] <br>\n\n## Skill Version(s): <br>\n2.2.2 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.2.1: 3 files, 4035 bytes\n\nFiles: skill-card.md (2175b), SKILL.md (6012b), _meta.json (134b)\n\nFile v2.2.1:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES (optional)\n\nThree onboarding paths, in priority order:\n\n**1. fetchproxy extension (easiest — no env vars):** Install the [fetchproxy 0.3.0 extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com once, and leave `CK_COOKIES` **unset**. The MCP reads HttpOnly `CKAT` + `CKTRKID` cookies on the first tool call via `chrome.cookies.get`, then operates direct-to-API from Node.\n\n**2. ck_set_session MCP tool:** From within Claude, call `ck_set_session` with a Cookie header you copied from DevTools (see below). The tool persists it to `.env`.\n\n**3. Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n4. Paste into `CK_COOKIES` in your Claude config\n\n## Authentication\n\nThe MCP handles auth automatically once any of the three paths is configured.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired:\n  - **fetchproxy path:** sign back into creditkarma.com — the MCP reads fresh cookies on the next tool call\n  - **env-var / ck_set_session path:** grab a fresh Cookie header from DevTools and update `CK_COOKIES` (or call `ck_set_session` again)\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Easiest: install the [fetchproxy extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com, leave `CK_COOKIES` unset.\n2. Or: copy the Cookie header from DevTools and either set `CK_COOKIES` in your config or call `ck_set_session(cookies)` from within Claude.\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.2.1\",\n  \"publishedAt\": 1780090570043\n}\n\nFile v2.2.1:skill-card.md\n\n## Description: <br>\nAccess Credit Karma transaction data via MCP for syncing transactions and answering questions about spending, merchants, categories, and account summaries. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[chrischall](https://clawhub.ai/user/chrischall) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to configure an MCP server that syncs their Credit Karma transactions into a local SQLite database and queries that data through agent tools. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires sensitive Credit Karma session cookies and can persist credentials and financial transaction data locally. <br>\nMitigation: Install only when intentionally granting this access, treat CK_COOKIES and copied Cookie headers like passwords, avoid plain project-file storage when possible, review the external MCP package and fetchproxy extension before use, and confirm where local SQLite and .env data will be stored so it can be removed later. <br>\n\n\n## Reference(s): <br>\n- [Credit Karma MCP package](https://www.npmjs.com/package/creditkarma-mcp) <br>\n- [Credit Karma MCP source](https://github.com/chrischall/creditkarma-mcp) <br>\n- [fetchproxy extension](https://github.com/chrischall/fetchproxy) <br>\n- [ClawHub release page](https://clawhub.ai/chrischall/creditkarma-mcp) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [configuration, shell commands, guidance, text] <br>\n**Output Format:** [Markdown with JSON, shell, and SQL examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces setup instructions and MCP tool guidance for syncing and querying local Credit Karma transaction data.] <br>\n\n## Skill Version(s): <br>\n2.2.1 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.2.0: 3 files, 4157 bytes\n\nFiles: skill-card.md (2473b), SKILL.md (6012b), _meta.json (134b)\n\nFile v2.2.0:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES (optional)\n\nThree onboarding paths, in priority order:\n\n**1. fetchproxy extension (easiest — no env vars):** Install the [fetchproxy 0.3.0 extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com once, and leave `CK_COOKIES` **unset**. The MCP reads HttpOnly `CKAT` + `CKTRKID` cookies on the first tool call via `chrome.cookies.get`, then operates direct-to-API from Node.\n\n**2. ck_set_session MCP tool:** From within Claude, call `ck_set_session` with a Cookie header you copied from DevTools (see below). The tool persists it to `.env`.\n\n**3. Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n4. Paste into `CK_COOKIES` in your Claude config\n\n## Authentication\n\nThe MCP handles auth automatically once any of the three paths is configured.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired:\n  - **fetchproxy path:** sign back into creditkarma.com — the MCP reads fresh cookies on the next tool call\n  - **env-var / ck_set_session path:** grab a fresh Cookie header from DevTools and update `CK_COOKIES` (or call `ck_set_session` again)\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Easiest: install the [fetchproxy extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com, leave `CK_COOKIES` unset.\n2. Or: copy the Cookie header from DevTools and either set `CK_COOKIES` in your config or call `ck_set_session(cookies)` from within Claude.\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.2.0\",\n  \"publishedAt\": 1779931812388\n}\n\nFile v2.2.0:skill-card.md\n\n## Description: <br>\nAccess Credit Karma transaction data through an MCP server for syncing, querying, and summarizing personal finance activity. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[chrischall](https://clawhub.ai/user/chrischall) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to connect an agent to the creditkarma-mcp server, sync Credit Karma transactions into local SQLite, and answer personal finance questions about spending, merchants, categories, and accounts. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires live Credit Karma session cookies and can persist copied Cookie headers or CK_COOKIES values. <br>\nMitigation: Treat cookies like passwords; keep them out of shared configs, chat logs, repositories, and screenshots, and delete stored cookies when no longer needed. <br>\nRisk: The skill syncs sensitive financial transaction history into a local SQLite database. <br>\nMitigation: Install only when intentional Credit Karma transaction access is needed; protect the local database and delete it when the use case ends. <br>\nRisk: The setup may rely on the npm package and the fetchproxy browser extension. <br>\nMitigation: Review the npm package and fetchproxy extension before use, especially in managed or shared environments. <br>\n\n\n## Reference(s): <br>\n- [ClawHub release page](https://clawhub.ai/chrischall/creditkarma-mcp) <br>\n- [creditkarma-mcp npm package](https://www.npmjs.com/package/creditkarma-mcp) <br>\n- [fetchproxy extension](https://github.com/chrischall/fetchproxy) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with JSON configuration snippets, shell commands, MCP tool names, and SQL examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include setup guidance for local MCP configuration, credential handling, transaction sync, and read-only SQLite queries.] <br>\n\n## Skill Version(s): <br>\n2.2.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.1.4: 3 files, 4249 bytes\n\nFiles: skill-card.md (2675b), SKILL.md (6012b), _meta.json (134b)\n\nFile v2.1.4:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES (optional)\n\nThree onboarding paths, in priority order:\n\n**1. fetchproxy extension (easiest — no env vars):** Install the [fetchproxy 0.3.0 extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com once, and leave `CK_COOKIES` **unset**. The MCP reads HttpOnly `CKAT` + `CKTRKID` cookies on the first tool call via `chrome.cookies.get`, then operates direct-to-API from Node.\n\n**2. ck_set_session MCP tool:** From within Claude, call `ck_set_session` with a Cookie header you copied from DevTools (see below). The tool persists it to `.env`.\n\n**3. Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n4. Paste into `CK_COOKIES` in your Claude config\n\n## Authentication\n\nThe MCP handles auth automatically once any of the three paths is configured.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired:\n  - **fetchproxy path:** sign back into creditkarma.com — the MCP reads fresh cookies on the next tool call\n  - **env-var / ck_set_session path:** grab a fresh Cookie header from DevTools and update `CK_COOKIES` (or call `ck_set_session` again)\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Easiest: install the [fetchproxy extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com, leave `CK_COOKIES` unset.\n2. Or: copy the Cookie header from DevTools and either set `CK_COOKIES` in your config or call `ck_set_session(cookies)` from within Claude.\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.1.4:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.1.4\",\n  \"publishedAt\": 1779815389110\n}\n\nFile v2.1.4:skill-card.md\n\n## Description: <br>\nAccess Credit Karma transaction data through an MCP server for syncing local transaction data and querying spending, merchants, categories, account summaries, and read-only SQL results. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[chrischall](https://clawhub.ai/user/chrischall) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to connect an agent to their Credit Karma account, sync transactions into a local SQLite database, and answer personal finance questions about transactions, spending categories, merchants, and accounts. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Live Credit Karma session cookies can expose access to a user's account if copied into chats, shared configuration, or untrusted tools. <br>\nMitigation: Use only on a trusted machine, avoid pasting full Cookie headers into general chat or shared configs, and prefer the fetchproxy flow when available. <br>\nRisk: Synced transaction and account data is stored locally in SQLite and may contain sensitive financial information. <br>\nMitigation: Protect the local database with normal endpoint controls, avoid syncing on shared machines, and delete the database when it is no longer needed. <br>\nRisk: Financial query outputs may reveal personal spending patterns or account details. <br>\nMitigation: Review query results before sharing them, limit prompts to the needed time range or account scope, and avoid sending outputs to untrusted agents or logs. <br>\n\n\n## Reference(s): <br>\n- [creditkarma-mcp npm package](https://www.npmjs.com/package/creditkarma-mcp) <br>\n- [fetchproxy extension](https://github.com/chrischall/fetchproxy) <br>\n- [Credit Karma](https://www.creditkarma.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Configuration, Shell commands, API calls, SQL queries, Text] <br>\n**Output Format:** [Markdown guidance with JSON configuration snippets, shell commands, MCP tool calls, SQL examples, and natural-language summaries.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires the creditkarma MCP server to be installed and registered, plus a trusted Credit Karma session credential source.] <br>\n\n## Skill Version(s): <br>\n2.1.4 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.0.10: 2 files, 2890 bytes\n\nFiles: SKILL.md (6012b), _meta.json (135b)\n\nFile v2.0.10:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES (optional)\n\nThree onboarding paths, in priority order:\n\n**1. fetchproxy extension (easiest — no env vars):** Install the [fetchproxy 0.3.0 extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com once, and leave `CK_COOKIES` **unset**. The MCP reads HttpOnly `CKAT` + `CKTRKID` cookies on the first tool call via `chrome.cookies.get`, then operates direct-to-API from Node.\n\n**2. ck_set_session MCP tool:** From within Claude, call `ck_set_session` with a Cookie header you copied from DevTools (see below). The tool persists it to `.env`.\n\n**3. Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n4. Paste into `CK_COOKIES` in your Claude config\n\n## Authentication\n\nThe MCP handles auth automatically once any of the three paths is configured.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired:\n  - **fetchproxy path:** sign back into creditkarma.com — the MCP reads fresh cookies on the next tool call\n  - **env-var / ck_set_session path:** grab a fresh Cookie header from DevTools and update `CK_COOKIES` (or call `ck_set_session` again)\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Easiest: install the [fetchproxy extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com, leave `CK_COOKIES` unset.\n2. Or: copy the Cookie header from DevTools and either set `CK_COOKIES` in your config or call `ck_set_session(cookies)` from within Claude.\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.0.10\",\n  \"publishedAt\": 1779394327803\n}\n\nArchive v2.0.9: 2 files, 2781 bytes\n\nFiles: SKILL.md (5661b), _meta.json (134b)\n\nFile v2.0.9:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES\n\n**Scripted (recommended — source install):**\n```bash\nnpm run auth               # prints the Cookie header to the console\nnpm run auth -- .env       # writes CK_COOKIES=<header> to .env\n```\n\nLaunches Chrome with a dedicated profile, waits for sign-in at creditkarma.com, then captures the full session Cookie header (CKAT carries the access + refresh JWTs; CKTRKID and friends are needed by the refresh endpoint). Use the printed value with Claude Desktop / MCPB, or the `.env` form when running from source.\n\n**Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n\n## Authentication\n\nCall `ck_set_session` with your Cookie header to store credentials and enable auto-refresh.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired: re-run `npm run auth` (or grab a fresh Cookie header) and call `ck_set_session`\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Run `npm run auth` (or grab the Cookie header manually from a creditkarma.com request in DevTools)\n2. Paste into `CK_COOKIES` env var, or call `ck_set_session(cookies)` from within Claude\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.0.9\",\n  \"publishedAt\": 1779238181476\n}\n\nArchive v2.0.8: 2 files, 2781 bytes\n\nFiles: SKILL.md (5661b), _meta.json (134b)\n\nFile v2.0.8:SKILL.md\n\n---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES\n\n**Scripted (recommended — source install):**\n```bash\nnpm run auth               # prints the Cookie header to the console\nnpm run auth -- .env       # writes CK_COOKIES=<header> to .env\n```\n\nLaunches Chrome with a dedicated profile, waits for sign-in at creditkarma.com, then captures the full session Cookie header (CKAT carries the access + refresh JWTs; CKTRKID and friends are needed by the refresh endpoint). Use the printed value with Claude Desktop / MCPB, or the `.env` form when running from source.\n\n**Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n\n## Authentication\n\nCall `ck_set_session` with your Cookie header to store credentials and enable auto-refresh.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired: re-run `npm run auth` (or grab a fresh Cookie header) and call `ck_set_session`\n\n## Tools\n\n### Auth\n| Tool | Description |\n|------|-------------|\n| `ck_set_session(cookies)` | Store credentials — paste the full Cookie header from a signed-in creditkarma.com request |\n\n### Sync\n| Tool | Description |\n|------|-------------|\n| `ck_sync_transactions(force_full?)` | Sync transactions to local SQLite. Incremental by default (since last sync − 30 days). `force_full=true` re-fetches everything. |\n\n### Query\n| Tool | Description |\n|------|-------------|\n| `ck_list_transactions(start_date?, end_date?, account?, category?, merchant?, status?, min_amount?, max_amount?, limit?, offset?)` | Filtered, paginated transaction list |\n| `ck_get_recent_transactions(limit?)` | N most recent transactions (default 20) |\n| `ck_get_spending_by_category(start_date?, end_date?)` | Spending totals grouped by category |\n| `ck_get_spending_by_merchant(start_date?, end_date?, limit?)` | Spending totals grouped by merchant |\n| `ck_get_account_summary` | Transaction counts and totals per account |\n| `ck_query_sql(sql)` | Read-only SQL query against the local database (SELECT only) |\n\n## Workflows\n\n**First-time setup:**\n1. Run `npm run auth` (or grab the Cookie header manually from a creditkarma.com request in DevTools)\n2. Paste into `CK_COOKIES` env var, or call `ck_set_session(cookies)` from within Claude\n3. `ck_sync_transactions` → initial full sync\n\n**Regular use:**\n- `ck_sync_transactions` → pull latest transactions\n- Then query with any of the query tools\n\n**Spending analysis:**\n```\nck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)\n```\n\n**Custom analysis with SQL:**\n```sql\n-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC\n```\n\n## Database schema\n\n```sql\ntransactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)\n```\n\n## Notes\n\n- All query tools run against the local SQLite database — sync first\n- Amounts: negative = expense/debit, positive = credit/income\n- `ck_query_sql` only allows SELECT — no writes to Credit Karma data\n- Sync saves a resume cursor — interrupted syncs can be resumed automatically\n- `accounts.id` is a synthesized stable key in the form `<provider>|<last4>` (e.g. `Citi|2630`, `Ally|7133`) because CK's API returns empty `account.id` strings. The same card under two provider-name spellings shows as two rows.\n\nFile v2.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.0.8\",\n  \"publishedAt\": 1779237405485\n}","readmeExcerpt":"Skill: Tmp.Rd8dBLUSJc Owner: chrischall Summary: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summari... Tags: latest:2.2.5 Version history: v2.2.5 | 2026-07-07T23:57:57.830Z | auto - Removed the sample file skill-card.md. - No changes to functionality or documentation beyond file removal. v2.2.4 | 2026-06-15T14:3","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}"},{"language":"bash","snippet":"git clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}"},{"language":"text","snippet":"ck_sync_transactions\nck_get_spending_by_category(start_date: \"2026-01-01\", end_date: \"2026-03-31\")\nck_get_spending_by_merchant(start_date: \"2026-01-01\", limit: 10)"},{"language":"sql","snippet":"-- Monthly spending totals\nSELECT strftime('%Y-%m', date) AS month, SUM(ABS(amount)) AS total\nFROM transactions WHERE amount < 0\nGROUP BY month ORDER BY month DESC\n\n-- Spending by category this year\nSELECT c.name, SUM(ABS(t.amount)) AS total\nFROM transactions t JOIN categories c ON t.category_id = c.id\nWHERE t.date >= '2026-01-01' AND t.amount < 0\nGROUP BY c.name ORDER BY total DESC"},{"language":"sql","snippet":"transactions (id, date, description, status, amount, account_id, category_id, merchant_id, raw_json)\naccounts     (id, name, type, provider_name, display)\ncategories   (id, name, type)\nmerchants    (id, name)\nsync_state   (key, value)"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: creditkarma-mcp\ndescription: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summaries, or wants to sync or query their financial data. Triggers on phrases like \"sync my transactions\", \"what did I spend on\", \"show my Credit Karma data\", \"spending by category\", \"top merchants\", or any request involving personal finance data from Credit Karma. Requires creditkarma-mcp installed and the creditkarma server registered (see Setup below).\n---\n\n# creditkarma-mcp\n\nMCP server for Credit Karma — syncs transactions into a local SQLite database and provides natural-language querying tools.\n\n- **npm:** [npmjs.com/package/creditkarma-mcp](https://www.npmjs.com/package/creditkarma-mcp)\n- **Source:** [github.com/chrischall/creditkarma-mcp](https://github.com/chrischall/creditkarma-mcp)\n\n## Setup\n\n### Option A — npx (recommended)\n\nAdd to `.mcp.json` in your project or `~/.claude/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"creditkarma-mcp\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\n### Option B — from source\n\n```bash\ngit clone https://github.com/chrischall/creditkarma-mcp\ncd creditkarma-mcp\nnpm install && npm run build\n```\n\nThen add to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"creditkarma\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/creditkarma-mcp/dist/index.js\"],\n      \"env\": {\n        \"CK_COOKIES\": \"CKTRKID=...; CKAT=eyJ...%3BeyJ...; ...\"\n      }\n    }\n  }\n}\n```\n\nOr use a `.env` file in the project directory with `CK_COOKIES=<value>`.\n\n### Getting CK_COOKIES (optional)\n\nThree onboarding paths, in priority order:\n\n**1. fetchproxy extension (easiest — no env vars):** Install the [fetchproxy 0.3.0 extension](https://github.com/chrischall/fetchproxy), sign into creditkarma.com once, and leave `CK_COOKIES` **unset**. The MCP reads HttpOnly `CKAT` + `CKTRKID` cookies on the first tool call via `chrome.cookies.get`, then operates direct-to-API from Node.\n\n**2. ck_set_session MCP tool:** From within Claude, call `ck_set_session` with a Cookie header you copied from DevTools (see below). The tool persists it to `.env`.\n\n**3. Manual (DevTools):**\n1. Log in to [creditkarma.com](https://www.creditkarma.com) in Chrome\n2. DevTools → **Network** → any creditkarma.com request → **Request Headers**\n3. Right-click the `cookie` header → **Copy value**\n4. Paste into `CK_COOKIES` in your Claude config\n\n## Authentication\n\nThe MCP handles auth automatically once any of the three paths is configured.\n\n- Access token: ~15 min TTL, auto-refreshed transparently\n- Refresh token: ~8 hours TTL\n- When expired:\n  - **fetchproxy path:** sign back into creditkarma.com — the MCP reads fresh cookies on the next tool call\n  - **env-var / ck_set_session path:** grab a fresh Cookie header from DevTools and update `CK_COOKIES` (or call `ck_set_session` ag"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"creditkarma-mcp\",\n  \"version\": \"2.2.5\",\n  \"publishedAt\": 1783468677830\n}"},{"path":"skill-card.md","content":"## Description:\n\nAccess Credit Karma transaction data through an MCP server for syncing, querying, and analyzing personal finance data.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and end users connect an agent to a local Credit Karma MCP server to sync transaction data, review account summaries, and analyze spending by category, merchant, date, or SQL query.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill requires Credit Karma session access and synced financial data may be exposed to the MCP server or related extension.\n\nMitigation: Install only after reviewing the package and extension, use a pinned audited version, and remove stored cookies and the local SQLite database when no longer needed.\n\nRisk: Cookie headers or MCP environment configuration can leak account session access if committed or backed up.\n\nMitigation: Keep CK_COOKIES, .env files, and MCP configuration containing cookies out of source control and backups.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/chrischall/skills/creditkarma-mcp)\n- [creditkarma-mcp npm Package](https://www.npmjs.com/package/creditkarma-mcp)\n- [creditkarma-mcp Source Repository](https://github.com/chrischall/creditkarma-mcp)\n- [fetchproxy Extension](https://github.com/chrischall/fetchproxy)\n- [Credit Karma](https://www.creditkarma.com)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, SQL queries, Guidance]\n\n**Output Format:** [Markdown with JSON, bash, and SQL code blocks]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include MCP tool names, configuration snippets, and read-only SQL examples for local transaction analysis.]\n\n## Skill Version(s):\n\n2.2.5 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summari... Skill: Tmp.Rd8dBLUSJc Owner: chrischall Summary: Access Credit Karma transaction data via MCP. Use when the user asks about their Credit Karma transactions, spending by category or merchant, account summari... Tags: latest:2.2.5 Version history: v2.2.5 | 2026-07-07T23:57:57.830Z | auto - Removed the sample file skill-card.md. - No changes to functionality or documentation beyond file removal. v2.2.4 | 2026-06-15T14:3","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1162,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T07:49:09.376Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T07:49:09.376Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:45:05.461Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}