{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T19:31:49.999Z","url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime.md","server":{"slug":"pipeworx-io-wakatime","name":"Wakatime","registryName":"io.github.pipeworx-io/wakatime","description":"WakaTime MCP.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pipeworx-mcp-wakatime","type":"npm","identifier":"@pipeworx/mcp-wakatime","withdrawn":false,"url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime","version":"0.2.1","transport":"stdio","scoredAt":"2026-11-05T07:08:37.251Z"},"score":{"total":79,"tier":"medium","status":"scored","weekDelta":18,"history":[{"date":"2026-11-05","total":79},{"date":"2026-11-04","total":76},{"date":"2026-11-03","total":76},{"date":"2026-11-02","total":76},{"date":"2026-11-01","total":76},{"date":"2026-10-31","total":76},{"date":"2026-10-30","total":76},{"date":"2026-10-29","total":61}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","No production dependencies, so there is no dependency health to assess."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.no_dependencies","args":{"deps":"0","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-wakatime).","Clear OSI-approved license (MIT).","Actively maintained (last published 6 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"pipeworx-io/mcp-wakatime"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"6"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":61,"verdict":"fail","reasons":["AI-judged instruction clarity (fair).","Context-footprint check failed: tool/resource definitions use about 1311 tokens (~109/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"fair"}},{"code":"schema.footprint_heavy","args":{"avg":"109","items":"12","tools":"12","tokens":"1311","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":23,"verdict":"partial","reasons":["Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"7"}}]},{"name":"Tool Coverage","score":73,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","20% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"20"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"12"}},{"code":"toolsafety.manipulation_clean","args":{"units":"13","judged":"13"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"wakatime-mcp","type":"remote","identifier":"https://gateway.pipeworx.io/wakatime/mcp","withdrawn":false,"score":77,"current":false,"url":"https://verifymcp.io/servers/pipeworx-io-wakatime/wakatime-mcp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-wakatime/wakatime-mcp.md"},{"slug":"pipeworx-mcp-wakatime","type":"npm","identifier":"@pipeworx/mcp-wakatime","withdrawn":false,"score":79,"current":true,"url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@pipeworx/mcp-wakatime"},{"label":"Version","value":"0.2.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"current_user","title":null,"description":"Profile of the WakaTime account that owns your OAuth token. Requires your own WakaTime personal OAuth token as _apiKey.","inputs":[{"name":"_apiKey","type":"string","required":false,"description":"Your WakaTime personal OAuth access token (Bearer). Required for account data (current user, summaries, durations, heartbeats, goals, projects, commits); optional for public profiles and stats."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":82},{"name":"user","title":null,"description":"Public WakaTime profile for a user_id/username; keyless for public profiles, pass your OAuth token as _apiKey for your own or private ones.","inputs":[{"name":"_apiKey","type":"string","required":false,"description":"Your WakaTime personal OAuth access token (Bearer). Required for account data (current user, summaries, durations, heartbeats, goals, projects, commits); optional for public profiles and stats."},{"name":"user_id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":95},{"name":"summaries","title":null,"description":"Fetch WakaTime daily coding summaries for a user over a date range (start/end required, YYYY-MM-DD); returns per-day breakdowns by project, language, editor, OS, and category in seconds. Requires your own WakaTime personal OAuth token as _apiKey.","inputs":[{"name":"_apiKey","type":"string","required":false,"description":"Your WakaTime personal OAuth access token (Bearer). Required for account data (current user, summaries, durations, heartbeats, goals, projects, commits); optional for public profiles and stats."},{"name":"branches","type":"string","required":false,"description":null},{"name":"end","type":"string","required":true,"description":null},{"name":"project","type":"string","required":false,"description":null},{"name":"start","type":"string","required":true,"description":null},{"name":"timeout","type":"number","required":false,"description":null},{"name":"timezone","type":"string","required":false,"description":null},{"name":"user_id","type":"string","required":true,"description":null},{"name":"writes_only","type":"boolean","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":168},{"name":"stats","title":null,"description":"Fetch aggregated WakaTime coding stats for a user over a range (\"last_7_days\", \"last_30_days\", \"last_6_months\", \"last_year\", \"all_time\"); returns totals and rankings by language, project, editor, and OS. Keyless for public profiles; pass your OAuth token as _apiKey for private ones.","inputs":[{"name":"_apiKey","type":"string","required":false,"description":"Your WakaTime personal OAuth access token (Bearer). Required for account data (current user, summaries, durations, heartbeats, goals, projects, commits); optional for public profiles and stats."},{"name":"project","type":"string","required":false,"description":null},{"name":"range","type":"string","required":true,"description":null},{"name":"timeout","type":"number","required":false,"description":null},{"name":"user_id","type":"string","required":true,"description":null},{"name":"writes_only","type":"boolean","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":163},{"name":"durations","title":null,"description":"Fetch WakaTime coding durations (start/end timestamps with project and file) for a single day (date required, YYYY-MM-DD); optionally slice_by entity/language/branch for granular session data. Requires your own WakaTime personal OAuth token as _apiKey.","inputs":[{"name":"_apiKey","type":"string","required":false,"description":"Your WakaTime personal OAuth access token (Bearer). Required for account data (current user, summaries, durations, heartbeats, goals, projects, commits); optional for public profiles and stats."},{"name":"branches","type":"string","required":false,"description":null},{"name":"date","type":"string","required":true,"description":null},{"name":"project","type":"string","required":false,"description":null},{"name":"slice_by","type":"string","required":false,"description":null},{"name":"timeout","type":"number","required":false,"description":null},{"name":"timezone","type":"string","required":false,"description":null},{"name":"user_id","type":"string","required":true,"description":null},{"name":"writes_only","type":"boolean","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":167},{"name":"heartbeats","title":null,"description":"Raw heartbeats for a date. Requires your own WakaTime personal OAuth token as _apiKey.","inputs":[{"name":"_apiKey","type":"string","required":false,"description":"Your WakaTime personal OAuth access token (Bearer). Required for account data (current user, summaries, durations, heartbeats, goals, projects, commits); optional for public profiles and stats."},{"name":"date","type":"string","required":true,"description":null},{"name":"user_id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":91},{"name":"goals","title":null,"description":"User's goals. Requires your own WakaTime personal OAuth token as _apiKey.","inputs":[{"name":"_apiKey","type":"string","required":false,"description":"Your WakaTime personal OAuth access token (Bearer). Required for account data (current user, summaries, durations, heartbeats, goals, projects, commits); optional for public profiles and stats."},{"name":"page","type":"number","required":false,"description":null},{"name":"user_id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":87},{"name":"projects","title":null,"description":"User's projects. Requires your own WakaTime personal OAuth token as _apiKey.","inputs":[{"name":"_apiKey","type":"string","required":false,"description":"Your WakaTime personal OAuth access token (Bearer). Required for account data (current user, summaries, durations, heartbeats, goals, projects, commits); optional for public profiles and stats."},{"name":"q","type":"string","required":false,"description":null},{"name":"user_id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":87},{"name":"leaders","title":null,"description":"Fetch WakaTime's public coding leaderboard; optionally filter by language or country_code and paginate; returns ranked users with display names and weekly coding totals.","inputs":[{"name":"country_code","type":"string","required":false,"description":null},{"name":"language","type":"string","required":false,"description":null},{"name":"page","type":"number","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":59},{"name":"commits","title":null,"description":"List the commits WakaTime has recorded for one project belonging to a WakaTime user, given user_id (or \"current\") and the project name, with optional author, branch, and page. Returns each commit hash, message, author, branch, timestamps, and the coding time WakaTime attributes to it. Answers what has been committed to a project tracked by WakaTime and how much editor time went into it. Requires your own WakaTime personal OAuth token as _apiKey.","inputs":[{"name":"_apiKey","type":"string","required":false,"description":"Your WakaTime personal OAuth access token (Bearer). Required for account data (current user, summaries, durations, heartbeats, goals, projects, commits); optional for public profiles and stats."},{"name":"author","type":"string","required":false,"description":null},{"name":"branch","type":"string","required":false,"description":null},{"name":"page","type":"number","required":false,"description":null},{"name":"project","type":"string","required":true,"description":null},{"name":"user_id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":191},{"name":"editors","title":null,"description":"Fetch WakaTime's public editor usage statistics showing relative popularity of code editors and IDEs across all WakaTime users.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":32},{"name":"meta","title":null,"description":"Fetch WakaTime API metadata including current server time and available timezones; useful for validating timezone strings before passing them to summaries or durations.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":35}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T07:08:37.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-29","recent":[{"id":"chg_01a1aa89-c224-73f1-a217-23079e111e09","kind":"check.reverified","summary":"Stability (unverified → 0.23)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime#chg-chg_01a1aa89-c224-73f1-a217-23079e111e09"},{"id":"chg_01a1aa89-c225-7d73-9aed-1e4299eafdd7","kind":"score.total_changed","summary":"Trust score (76 → 79)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime#chg-chg_01a1aa89-c225-7d73-9aed-1e4299eafdd7"},{"id":"chg_01a18ba4-4f8f-74a9-9bb2-333e7aac9dfa","kind":"score.total_changed","summary":"Trust score (61 → 76)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime#chg-chg_01a18ba4-4f8f-74a9-9bb2-333e7aac9dfa"},{"id":"chg_01a18ba4-4f8d-7a35-8a38-2ed85f9c7438","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime#chg-chg_01a18ba4-4f8d-7a35-8a38-2ed85f9c7438"},{"id":"chg_01a18966-04f6-78bb-8a5e-a3eb89f57c44","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime#chg-chg_01a18966-04f6-78bb-8a5e-a3eb89f57c44"},{"id":"chg_01a18741-9d54-7e72-8313-029b7b6b93ca","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime#chg-chg_01a18741-9d54-7e72-8313-029b7b6b93ca"},{"id":"chg_01a186b8-376e-783c-9ca9-61c6778e2255","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime#chg-chg_01a186b8-376e-783c-9ca9-61c6778e2255"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime/changelog.json"},"links":{"html":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime","markdown":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime.md","changelogJson":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime/changelog.json","changelogRss":"https://verifymcp.io/servers/pipeworx-io-wakatime/pipeworx-mcp-wakatime.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@pipeworx/mcp-wakatime"},{"label":"Socket report","href":"https://socket.dev/npm/package/@pipeworx/mcp-wakatime"},{"label":"Repository","href":"https://github.com/pipeworx-io/mcp-wakatime"},{"label":"Website","href":"https://pipeworx.io/packs/wakatime"}]}}