Repository navigation
Releases: butyavk/tracker-mcp
Releases · butyavk/tracker-mcp
Release list
tracker-mcp 0.5.1
Added
- A Russian template:
tracker-mcp new <file> --lang rumakes the tracker with Russian
headers, statuses, sheet names and summary; the config it writes uses Russian follow-up
log lines and dates. On a remote server the consent page offers English or Russian for
a new sheet, preselected from the browser's language. - The Russian guide shows how to have Claude's Google Sheets connector make the same
tracker, for trying it without installing anything.
tracker-mcp 0.5.0
Added
tracker-mcp remote: the same tools over streamable HTTP for Google Sheets trackers,
to add to Claude as a custom connector (web, desktop, phone). Several people per
server, each signed in with Google and working on their own sheet. The server is its
own OAuth 2.1 authorization server for MCP clients: dynamic client registration,
PKCE, refresh tokens rotated on every use, revocation, tokens bound to the server's
address and stored only as hashes. Google behind it for who signs in (openid email,
checked against an allow-list on every token use) and for the sheets (drive.file);
each person's Google sign-in is kept encrypted. A consent page names the connecting
client and lets you pick your sheet in Google's file picker or start a new one.Dockerfileanddeploy/cloudrun.sh: one Cloud Run instance with a private Cloud
Storage bucket for its data and Secret Manager for its keys.- On a remote server, a preview asks the user to confirm with a reply that names the
change: claude.ai may refuse a write to an outside service approved with a bare "yes".
tracker-mcp 0.4.4
Added
calendar_eventsand the Put my follow-ups in my calendar prompt: the client's
own calendar tool (Claude with the Google Calendar connector, say) keeps a calendar in
step with the tracker. Each event carries an id line, so the client finds it again to
move or delete it instead of adding a second one, and never touches other events. The
.icsexport carries the same line.add_column(options=[...])adds a dropdown in Excel, as far down as the sheet's other
dropdowns; a furthest-stage column (field="reached") gets the stages by default. In
Google Sheets the preview says to add the dropdown there.
tracker-mcp 0.4.3
Changed
- Without a confirmation dialog, a preview now says, in words the model reads, to show
it and end the turn, and to use the token only after the user's yes in a new message;
it also carries the preview text to show. The evals caught a small model previewing
and confirming in one turn (1 run of 6); with the new wording, 0 of 10. - Evals print what the model did when a scenario fails, can repeat scenarios, and a
failed eval fails the job.
tracker-mcp 0.4.2
Added
add_column: a new column after the last one, its header and cells styled like the
neighbouring column (dates formatted like the submit dates), the filter extended.
Withfieldit is also mapped in the config —replied_on,reachedor a name of
your own — and the tools use it from the next call. Undo removes the column and the
config line together. Works for Excel, CSV and Google Sheets (the sheet grows a
column if it has none to spare).- Evals for
check_tracker,reply_times,edit_applicationandadd_column. The
evals workflow runs by itself onmainwhen the code or the evals change, if the
repository has anANTHROPIC_API_KEYsecret, and is skipped otherwise.
Fixed
- Two tests assumed the day they were written: the audit log keeps the real day of a
write, and the tests now compare with it.
tracker-mcp 0.4.1
Added
edit_application: correct fields of one row by hand — a wrong or missing date, a
typo in the company or role, the furthest stage, the link, a custom column — with
the same preview, confirmation, backup and undo as the other writes. Dates are
checked (a submit or reply date cannot be in the future, a reply cannot come before
the submit) and written as dates; the reason and what changed go to the notes. The
status stays withset_status, follow-ups withlog_followupand
reschedule_followup, which keep the related columns in step.
tracker-mcp 0.4.0
What a hand-kept tracker cannot do by itself: find its own drift, remember when each
reply came, and read the mailbox for you.
Added
check_trackerandfix_tracker: dates kept as text or bare numbers, rows without a
status, statuses spelled unlike the dropdown, follow-ups on a weekend or on closed
applications, waiting rows with no follow-up date, the applied column disagreeing with
the status, the furthest stage behind the status, replies without a reply date,
duplicates. The fixable ones are fixed in one confirmed write, one backup, one undo.- A reply-date column (
replied_on; "Replied on" in thenewtemplate, found byinit
as "Reply date", "Дата ответа" and the like).set_statusfills it on the first reply,
withon=for the day the reply came;check_trackerproposes past dates from the
Response column. reply_times: days from submitting to the first reply, in total and per channel,
source or month, and how many silent applications still got a reply after 7 to 60 days.match_emailsand the Update the tracker from my e-mail prompt: the client's mail
tool finds the messages, the server names the application and the change (a
confirmation, a rejection, an interview, an offer) with the e-mail's date.export_followups_calendarandtracker-mcp calendar: the open follow-ups as an
.icsfile to import into a calendar.[rules] same_company_days(28): adding or submitting to a company that already has
an application within that many days shows a warning in the preview.
Changed
- A waiting application is silent from its last touch: the submit date or the newest
dated follow-up log entry, whichever is later ([rules] silence_from = "applied"for
the old rule).stale_applicationsshowslast_touchanddays_silent. - The weekly review prompt starts with
check_trackerand includesreply_times.
Fixed
- On Windows, an undo right after a write could take the same backup name as that
write's backup, overwrite it and undo nothing: the clock there can repeat a
microsecond. Backup names are now always new.
tracker-mcp 0.3.1
Google Sheets without a Google Cloud project of your own.
Added
uvx tracker-mcp auth googlesigns in with tracker-mcp's own Google client: Google's
sign-in, then its file picker, and the server can open only the spreadsheets you pick
(scopedrive.file). No Cloud project, API keys or consent screen to set up. The client
is built into the PyPI packages; a copy run from the source code still takes
--client-secret.- A project site with the privacy policy: https://butyavk.github.io/tracker-mcp/
Changed
- README: why a server rather than Claude editing the file directly, and the Claude
Desktop extension as the first way to install (it reads a tracker in Documents
without the launcher).
Fixed
- 0.3.0 said a client id alone was enough for
auth google. Google's token endpoint
requires a Desktop client's secret even with PKCE, so a client JSON needs it.
tracker-mcp 0.3.0
The first public release: the server now works with anyone's tracker, not just mine.
Added
- Trackers in Google Sheets (your Google account via
tracker-mcp auth google,
or a service account) and in CSV files, besides Excel. - On first start the server writes the config from the tracker's headers and
dropdowns, so it runs with no setup;describe_trackersays what to check. tracker-mcp init(the same guess, from the command line),new(an empty
tracker),example(every config key explained),--tracker,--config,
--backup-dir,--version.funnel: submitted → replied → screening → interview → offer, by channel, source,
month or any column; an optionalreachedcolumn keeps the furthest stage, and
[funnel.by.<column>]groups one column's free text.initflags a tracker
without a furthest-stage column.reschedule_followup: move the next follow-up, or plan none, when nothing was sent
(no contact yet, waiting for message credits), with the reason in the log.- The
newtemplate: Location, Salary, Priority and Next step columns; "Found via"
and "Applied via" instead of the easily confused Source and Channel. - Prompts (weekly review, draft a follow-up) and resources (
tracker://layout,
tracker://application/{row}); titles on the server and every tool. date_formatsfor dates kept as text (US and UK formats are detected byinit).- Config edits apply on the next call, without restarting the client.
- A Claude Desktop extension (
.mcpb), a Claude plugin with aweekly-reviewskill
(/plugin install tracker-mcp --marketplace butyavk/tracker-mcp), aserver.json
for the MCP Registry, and evals that check a model uses the tools right and ignores
instructions in cells. tracker-mcp auth google --client-secret <client.json> --picksigns in and opens
Google's file picker: the server can open only the sheets you pick (scope
drive.file). A client id is enough; the sign-in uses PKCE.
Changed
- Every write needs the user's yes, enforced by the server: a confirmation dialog
when the client has one, otherwise the token from a dry run. - Writes are refused when openpyxl would drop parts of the workbook on save.
- Text written by the server never becomes a formula, in any format.
- On Windows, a file held by Excel, OneDrive or an antivirus gives a clear error.
- Only .xlsx and .csv files are accepted: an .xlsm would lose its macros on save, and
.xls or .ods files get a message to save as .xlsx. A damaged file, a CSV saved as
Windows-1252, no network, or odd Google tab names give readable errors.