Spreadsheets that fill themselves from your emails and webhooks, the same way every time.
Connect Remote server
claude mcp add --transport http mcp https://trackerhacker.com/mcp
{
"mcpServers": {
"mcp": {
"url": "https://trackerhacker.com/mcp"
}
}
}
{
"servers": {
"mcp": {
"type": "http",
"url": "https://trackerhacker.com/mcp"
}
}
}
Settings > Connectors > Add custom connector
URL: https://trackerhacker.com/mcp
Tools 60 found in our last check
read_guideHow TrackerHacker works and how to write hacks, mappings, rules, cards and questions, one page at a time. Pages: overview (Read first: the words (track, hack, mapping, Inbox) and the usual order of calls.); templates (Before writing or checking a text template: fields, types, da…
list_ready_madeUse this first when the person wants to track, log or keep a record of something that keeps happening (bank transactions, Amazon orders, Shopify orders, Stripe payments, steps). Lists the ready-made tracks TrackerHacker sets up in one step: each is one kind of sheet with fixed c…
start_trackingUse this when the person wants a sheet that keeps itself up to date from their emails or apps ("track my Amazon orders", "log my card spending"). Call it once the person has seen its columns and said yes. Sets up a ready-made track: makes the sheet in the person's Google Drive a…
create_custom_trackUse this when the person wants something tracked over time and no ready-made track or shared template fits. Makes a new kind of sheet with the columns the person agreed to: show them the columns first and wait for a yes or their changes. Rows come from forwarded emails (source e…
list_tracksThe person's tracks (sheets), each with its id, link, columns, the hacks that fill it (each with its state: On, Off, Stopped matching, or Paused when it's over the plan's limit) and this week's numbers, plus the Google account you're connected to (signedInAs) and their TrackerHa…
check_tracksWhat needs attention across all the person's tracks: hacks that stopped matching their senders' messages (the sender probably changed its emails), messages waiting in each Inbox, sheets TrackerHacker lost access to, and this week's failures. Good for a scheduled check. Each prob…
check_dataReads one track's data tab and names rows its formulas would read wrong: the same key on two rows (an update finds only the first), a column every row needs left empty, and a date or number typed as text (totals and filters skip it). Each problem gives the column and the sheet's…
find_row_emailFor one row of a track (its number from read_rows), a Gmail search for the email it was made from: from the senders of the hack that wrote it, around the day TrackerHacker received it, with the row's key when it has one. Gives the search (query), a link that opens it in Gmail (u…
suggest_hackSuggests a hack (a template that reads one kind of message) from an example email or JSON body, for a track. It's checked against similar messages waiting in the track's Inbox. A fallback: write the template yourself first and check it with test_hack, and call this only after tw…
test_hackShows what a hack template reads from example messages, without saving anything. Templates are the message's fixed text with {{field:type}} where values go (types: text, number, currency, date, datetime, boolean, url), {{...}} for parts that change but aren't wanted, {{#each}}..…
save_hackSaves a hack and attaches it to a track, so matching messages become rows from now on, then runs the track's Inbox again so messages already waiting become rows too (inbox says how many). Give hackId to change one that exists: send only what changes, and its name, template, send…
read_inboxMessages that reached a track but didn't make a row (no hack read them, or a rule blocked them), newest first, with why: up to 20 of the newest 50. Give from to see only one sender's (when fixing its hack, so the person's other mail stays out of this chat), and before (olderBefo…
hack_versionsEvery version kept of a hack, newest first, with its template, senders and subject words. TrackerHacker numbers them itself: major when the template stopped reading the emails the one before read or dropped a field, minor when it reads them and more, patch when it reads the same…
rerun_inboxRuns the track's hacks over its Inbox again, 50 messages at a time from the newest. Messages they now read become rows and leave the Inbox. save_hack, use_community_hack, update_hack_from_community and use_drafted_fix do this themselves; call it after set_rules, when a hack was…
add_rowsAdds rows the person tells you about to a track, like a purchase they made in cash. Each row is an object of columns to values, by column key (from list_tracks) or by the column's name as the sheet shows it; dates as YYYY-MM-DD. All rows are written, or none: a value that doesn'…
update_rowChanges cells of one row in the person's own track, when they correct something ("that burrito was 750 calories, not 600"): read_rows first for the row's number and values, then give values (each column to its new value) and was (each of those columns to the value read_rows show…
send_messageHands an email (its From address, subject and text) or a JSON body to one of the person's own tracks, to be read by its hacks exactly as if they had forwarded it: the hacks' fixed rules make the rows, and schema checks, row keys, blocking rules and the Inbox all apply. Use this…
get_glanceWhat the track's Glance cards show now (cards: label, value, detail, tone), and whether cards that turn warn or bad notify the person (alerts). This answers "am I over budget?". With forEditing: true it gives what set_glance needs instead: each card's cells as written, formulas…
set_glanceReplaces the cards the track's sheet shows in the app with this list (call get_glance with forEditing: true first, and send the ones it has along with yours). A list shorter than the one it has is refused unless replace is true. Each card is {label, value, detail, group, tone, l…
set_alertsGlance alerts: whether a Glance card turning warn or bad notifies the people on the track, once until it turns back. On by default. (To do alerts, whether a new question notifies them, are switched in the app or the sheet's TrackerHacker panel; list_todo says whether they're on.)
remindersA reminder nudges the person on their phone or browser at a time of day, on some days of the week, to add a row ("Log your weight"), with a button that opens the form with some answers filled in. action list shows a track's reminders; add makes one (label, days, time, and preset…
get_questionsThe questions the track's sheet asks the person in To do (its To do tab): each row's cells as written, formulas included, and what it asks now (asking). Also the sheet's tabs and its data tab's columns, for writing formulas.
set_questionsReplaces the questions in the track's To do tab with this list (call get_questions first, and send the ones it has along with yours). A list shorter than the one it has is refused unless replace is true. Each is {id, prompt, type, options, target, group, context, to, for}; any o…
list_todoWhat the person's tracks are asking them now (To do in the app), by track: each question's id, prompt, type and choices, and whether the track's To do alerts are on (todoAlerts: a new question then notifies them). Answer with answer_question when the person tells you the answer.…
answer_questionWrites the person's answer to one of their sheet's questions (from list_todo), as if they tapped it in To do. Only answer what the person told you. value is the choice's text, a list of choices for multi_choose, true or false for confirm, or the text, number or date (YYYY-MM-DD)…
dismiss_inboxRemoves messages from the track's Inbox that will never be rows, like newsletters or one-off mails, so check_tracks stops counting them. This can't be undone, so first list for the person what you'd clear (sender and subject) and clear only what they agree to; in a scheduled or…
use_drafted_fixWhen a hack stops matching, TrackerHacker works out an update for it (draftedFix in check_tracks) that waits for the person in To do, where the buttons are Update the hack and Not now. Only when the person tells you to, in this conversation: use it (draftedFix says how many of t…
get_webhook_linkThe private link other apps (Zapier, IFTTT, iOS Shortcuts, a script, a shop) post JSON or text to, to add rows through the track's hacks. Made the first time it's asked for. Treat it like a password: give it only to the person, for the app they're connecting, in a code block so…
gmail_forwardingWhether Forward from Gmail automatically is offered and on, and the link the person opens to turn it on with one Allow tap, on any device. Instead of a Gmail filter, TrackerHacker then picks up mail from the person's hacks' senders in their Gmail within seconds of it arriving (s…
stop_gmail_forwardingTurns off Forward from Gmail automatically and revokes Google's grant. Mail forwarded to their TrackerHacker address keeps working. Only when the person asks; turning it back on is their own Allow tap (the link from gmail_forwarding).
set_drive_watchWhether Google Drive tells TrackerHacker when the person's sheets change, so what a sheet asks in its To do tab reaches them with nothing installed in the sheet. It's on for everyone unless they turned it off. Leave out on to read how it stands: whether it's on and how many shee…
quick_addsQuick adds: buttons on the app's Home, for something the person adds often ("Coffee $4", "Walked the dog"): each opens a track's form with answers filled in, or with instant adds its row in one tap, dated when tapped (then preset must fill every required column but the date). ac…
read_rowsReads the rows in a track's sheet, newest last, to answer the person's questions about them ("what did I spend on dining this month?") or to check that a hack wrote what it should. Each row has its number and its values by column name. Filter with where (each column name to text…
add_columnAdds a column of the sheet's own after its last one, for the sheet's formulas or the answers to its questions to fill (a Category the sheet asks about, a Status). TrackerHacker leaves it alone: hacks don't write it. For a column hacks should fill, publish a new version of the tr…
format_sheetGives each column of a track's sheet the date or number format its schema promises (dates as dates, money with two decimals), for the rows already there as well as new ones, and takes bold off the rows below the header. Use it when dates or times show as plain numbers like 46334…
use_starterBuilds a track's sheet on the TrackerHacker starter, the base for a template instead of a blank sheet, or updates it to the newest starter. Adds only the tabs it lacks (a Start here cover the author writes, Settings with setting, value and what it does, Glance and To do), sets T…
get_schemaA schema's versions, newest last, with every field (key, label, meaning, type, required, enumValues, auto, format, aliases). list_tracks gives each track's schemaId. Built-in schemas can't be changed; the person's own (mine) can, with publish_schema.
publish_schemaPublishes the next version of one of the person's own schemas (from get_schema, where mine is true), kept private. Give the whole schema with its new version: the same major version with minor + 1 to add optional fields or loosen one, so every track on it keeps working; major +…
upgrade_trackMoves a track to the next major version of its schema: renames the sheet's headers the version renames and moves its hacks' mappings. Refused, with what to change, when a hack wouldn't fill the new version's required columns: fix those hacks first.
change_templateMoves a track to another layout for its schema (a ready-made template like a monthly budget, by its id), or to its template's newest version: adds the tabs it brings and sets each column's allowed values. The person's rows and own tabs stay as they are. list_tracks shows templat…
update_from_templateFor a sheet copied from a shared template sheet (copiedFrom in list_tracks): which version of the template it's on, the newest, and what updating adds, tab by tab. change new: the newer version adds the tab. changed: its author changed the tab, so the new version is added beside…
report_community_hackReports a community hack someone else shares: broken (it reads messages wrong or writes wrong values), private_data (its template or examples hold a real person's details), or harmful. Say what you saw in details, without the person's own data. A private_data report, or three re…
get_formThe track's form for adding a row by hand: its fields, its design (title, intro, thanks, askName, and each field's question, help, or hidden value), and its link for people without an account, if it has one.
set_formSets how the track's form asks for a row: {title, intro, thanks, askName, fields: [{key, label, help, hidden, value}]}, fields by column key in the order asked; a hidden field always gets its value. null goes back to the template's design.
share_formMakes the link that lets anyone who has it add a row to the track through its form (volunteers logging hours, guests signing up), with a bot check. Ask the person first and tell them who they plan to give it to: anyone with the link can add rows. Made once: asking again gives th…
find_hacksSearches the hacks people share with the community, by sender (like chase.com) or name. Each has its fields, how many people use copies, how many of those read a message in the last 30 days (working) or stopped matching (stopped), and an example message. Before building a hack f…
use_community_hackCopies a community hack into the person's account and attaches it to a track, mapping its fields to columns by name unless you give a mapping (as in save_hack), then runs the track's Inbox again so messages already waiting become rows (inbox says how many). The copy is theirs; w…
update_hack_from_communityBrings a hack the person copied from the community up to the latest version its author shared (list_tracks or check_tracks says when there is one). A copy nobody changed takes a minor or patch version by itself, so this is for a major version (it reads different emails, or chang…
share_hackShares one of the person's hacks with everyone, or shares it again after a fix so everyone using a copy can take it. Leave out examples and TrackerHacker makes them up from the template itself (its fixed wording with made-up values, no AI); or give 1 to 5 example messages it rea…
unshare_hackStops listing one of the person's community hacks. Copies people already made stay theirs.
find_templatesTemplate sheets people share: whole sheets built for something (a budget, a shop's orders), with their tabs, formulas, Glance cards and questions. install_template builds one in the person's Google Drive; each also has a copyUrl for copying it in Google Sheets. Filter with words…
install_templateBuilds a new sheet in the person's Google Drive from a template sheet people share (from find_templates), once the person has seen its columns and said yes, and makes it one of their tracks: its tabs, formulas, Glance cards, questions and example rows come along, and its form. C…
connect_sheetMakes a Google Sheet the person already has into one of their tracks, from its link, so hacks can write to it: a copy of a template sheet (like a budget someone shared) keeps its own tabs and formulas; any other sheet gets the tabs a track writes to beside its own. Google lets T…
share_templateShares one of the person's sheets as a template others copy: its tabs, formulas, Glance cards and form go with it; each share is the next version. Only a sheet with nothing of the person's own, since a copy carries everything: set up a fresh track for sharing (start_tracking wit…
unshare_templateStops listing one of the person's template sheets. Copies people already made are theirs.
rate_templateGives a public template the person copied and connected 1 to 5 stars, with an optional short review (up to 280 characters, no links, email addresses or long numbers), shown on its public page under their public name, or as "A TrackerHacker user" when they haven't set one. Rate o…
template_reviewsLists the reviews of templates the person shares, newest first (hidden: reports hid its words from the page). With reviewId and reply, answers one as the template's author, once: answering again replaces it, and an empty reply takes it back. Up to 280 characters, no links; write…
send_feedbackSends a report to the TrackerHacker team: a bug (a tool that fails or does something wrong), a hack to make, an idea (what TrackerHacker would need to support what the person wants), praise (what they like) or a complaint (what annoys them, though nothing is broken). Show the pe…
get_rulesA track's blocking rules (rows they keep out of the sheet) and the columns a rule can name, with their types.
set_rulesReplaces a track's blocking rules with this list (call get_rules first, and send the ones it has along with yours). A list shorter than the one it has is refused unless replace is true. Each rule is {block: "if"|"unless", match: "all"|"any", action: "inbox"|"drop", conditions: […
Details
| Endpoint | https://trackerhacker.com/mcp (Streamable HTTP) |
| First published | 8 Nov 2026 |
| Last updated | 8 Nov 2026 |
| Registry name | com.trackerhacker/mcp |
More communication servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
