Local MCP tools for work: Outlook, Harvest, and AI-powered daily planning
Warning. Serious findings were identified. Review the full report before connecting. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
DIGI-UW
Source: github_code
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
Playwright downloads and installs browsers without verifying the authenticity of the SSL certificate
HARVEST_ACCESS_TOKENHARVEST_ACCOUNT_IDJIRA_API_TOKENJIRA_BASE_URLJIRA_EMAILJIRA_TOKENOUTLOOK_TIMEZONEWORK_MCP_PROFILEDependencies
6 dependencies, 1 flagged: playwright
Tool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
22/22 tools missing one or more hints — warmup (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); harvest_status (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); harvest_refresh (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +19 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Destructive tools are labelled
8 tools perform destructive updates without destructiveHint — harvest_list_projects deletes at line 53 (unlinkSync(TOKEN_FILE)); harvest_list_tasks deletes at line 53 (unlinkSync(TOKEN_FILE)); harvest_list_time_entries deletes at line 53 (unlinkSync(TOKEN_FILE))
Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.
Descriptions match behaviour
8 tools describe read intent but their handlers mutate — harvest_list_projects (line 53: unlinkSync(TOKEN_FILE)); harvest_list_tasks (line 53: unlinkSync(TOKEN_FILE)); harvest_list_time_entries (line 53: unlinkSync(TOKEN_FILE))
Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.
Tool inputs are validated
14/22 tool handlers declare input schemas (64%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tool handlers catch errors
12/22 tool handlers wrap calls in try/catch (55%)
Wrap each tool handler body in try/catch and return a structured error response.
README present
No README found
Add a README.md describing the server and its tools.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tests exist
No test files found
Add tests that exercise each declared tool.
Production dependencies are patched
0 critical, 4 high severity in production deps — @modelcontextprotocol/sdk@1.12.1 (high), @modelcontextprotocol/sdk@1.12.1 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Domain consistency
npm scope @work-tools doesn't match GitHub owner digi-uw
Use the same org name across GitHub, npm, and your homepage so users can verify the publisher.
Tool description accuracy
8 tools have description/behavior mismatches: harvest_list_projects: description implies read-only but handler writes/deletes/executes; harvest_list_tasks: description implies read-only but handler writes/deletes/executes; harvest_list_time_entries: description implies read-only but handler writes/deletes/executes
Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/digi-uw-work-tools-f9r6zs)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check