@tailormade/teamleader-focus-mcp
npm
v3.7.5
Published by @tailormade — no publish provenance, so origin is unverified, but the source is public: the repository link below is self-declared yet readable, so you can inspect the code before adopting it.
MCP server for Teamleader Focus CRM API — 112 tools covering contacts, companies, deals, tickets, invoices, subscriptions, meetings, projects, time tracking, files, notes, and smart cache-first task resolution.
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:
The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.
2. Client adoption risk — 100 − 7 = 93. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −6 | capability blast radius (high) — client exposure if the model is manipulated |
| −1 | publisher verification (public source) — no provenance, but the source is public and inspectable |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
This server (without client built-ins) exposes a complete data-exfiltration chain: teamleader_download_credit_note → teamleader_list_files → teamleader_reopen_project_task. Untrusted input is ingested, private data is read, and it can be sent to an external sink via the agent composing the tools (→). Static analysis proves the primitive exists, not that a specific run will occur.
Fix: Remove one leg of the trifecta: isolate untrusted-input tools from secret-reading tools and from egress tools, or require human approval between them.
Location: flow teamleader_download_credit_note → teamleader_list_files → teamleader_reopen_project_task
Tool "teamleader_upload_file" can both read sensitive data and send data to an external destination. Even without an explicit untrusted-input leg, this is a single-call data-exfiltration path if the model is ever manipulated.
Fix: Separate reading from sending; require explicit user confirmation before egress of file/secret contents.
Location: flow teamleader_upload_file
Tool "teamleader_unlink_contact_from_company" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool teamleader_unlink_contact_from_company
Tool "teamleader_delete_file" can write, overwrite or delete files (keyword "delete_file" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool teamleader_delete_file
Tool "teamleader_unlink_contact_from_company" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool teamleader_unlink_contact_from_company
Tool "teamleader_delete_file" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool teamleader_delete_file
Each tool and what it can reach — statically extracted from the published source.
teamleader_list_filesingests untrusted inputreads sensitive datateamleader_upload_filereads sensitive datanetwork egressteamleader_delete_filewrites filesteamleader_download_credit_noteingests untrusted inputteamleader_download_fileingests untrusted inputteamleader_download_invoiceingests untrusted inputteamleader_download_quotationingests untrusted inputteamleader_get_credit_noteingests untrusted inputteamleader_get_fileingests untrusted inputteamleader_get_quotationingests untrusted inputteamleader_list_credit_notesingests untrusted inputteamleader_list_ordersingests untrusted inputteamleader_list_project_linesingests untrusted inputteamleader_reopen_project_tasknetwork egressteamleader_reopen_project_v2network egressteamleader_unlink_contact_from_companywrites filesteamleader_update_project_v2network egressteamleader_accept_quotationno sensitive capabilityteamleader_add_callno sensitive capabilityteamleader_add_productno sensitive capabilityteamleader_add_project_customerno sensitive capabilityteamleader_add_project_dealno sensitive capabilityteamleader_add_project_line_to_groupno sensitive capabilityteamleader_add_project_ownerno sensitive capabilityteamleader_add_project_quotationno sensitive capabilityteamleader_add_timetrackingno sensitive capabilityteamleader_assign_materialno sensitive capabilityteamleader_assign_projectno sensitive capabilityteamleader_assign_project_groupno sensitive capabilityteamleader_assign_project_taskno sensitive capabilityteamleader_book_invoiceno sensitive capabilityteamleader_cache_statsno sensitive capabilityteamleader_cancel_eventno sensitive capabilityteamleader_clear_cacheno sensitive capabilityteamleader_close_project_v2no sensitive capabilityteamleader_complete_callno sensitive capabilityteamleader_complete_meetingno sensitive capabilityteamleader_complete_project_taskno sensitive capabilityteamleader_complete_taskno sensitive capabilityteamleader_copy_invoiceno sensitive capabilityteamleader_create_companyno sensitive capabilityteamleader_create_contactno sensitive capabilityteamleader_create_dealno sensitive capabilityteamleader_create_deal_phaseno sensitive capabilityteamleader_create_deal_pipelineno sensitive capabilityteamleader_create_eventno sensitive capabilityteamleader_create_invoiceno sensitive capabilityteamleader_create_materialno sensitive capabilityteamleader_create_meeting_reportno sensitive capabilityteamleader_create_noteno sensitive capabilityteamleader_create_project_groupno sensitive capabilityteamleader_create_project_task_v2no sensitive capabilityteamleader_create_project_v2no sensitive capabilityteamleader_create_quotationno sensitive capabilityteamleader_create_subscriptionno sensitive capabilityteamleader_create_taskno sensitive capabilityteamleader_create_ticketno sensitive capabilityteamleader_credit_invoiceno sensitive capabilityteamleader_credit_invoice_partiallyno sensitive capabilityteamleader_deactivate_subscriptionno sensitive capabilityteamleader_delete_companyno sensitive capabilityteamleader_delete_contactno sensitive capabilityteamleader_delete_dealno sensitive capabilityteamleader_delete_deal_phaseno sensitive capabilityteamleader_delete_deal_pipelineno sensitive capabilityteamleader_delete_invoiceno sensitive capabilityteamleader_delete_materialno sensitive capabilityteamleader_delete_meetingno sensitive capabilityteamleader_delete_productno sensitive capabilityteamleader_delete_project_taskno sensitive capabilityteamleader_delete_project_v2no sensitive capabilityteamleader_delete_quotationno sensitive capabilityteamleader_delete_taskno sensitive capabilityteamleader_delete_timetrackingno sensitive capabilityteamleader_duplicate_deal_phaseno sensitive capabilityteamleader_duplicate_deal_pipelineno sensitive capabilityteamleader_duplicate_materialno sensitive capabilityteamleader_duplicate_project_groupno sensitive capabilityteamleader_duplicate_project_taskno sensitive capabilityteamleader_duplicate_project_v2no sensitive capabilityteamleader_find_taskno sensitive capabilityteamleader_get_callno sensitive capabilityteamleader_get_companyno sensitive capabilityteamleader_get_contactno sensitive capabilityteamleader_get_dealno sensitive capabilityteamleader_get_departmentno sensitive capabilityteamleader_get_eventno sensitive capabilityteamleader_get_invoiceno sensitive capabilityteamleader_get_materialno sensitive capabilityteamleader_get_meetingno sensitive capabilityteamleader_get_orderno sensitive capabilityteamleader_get_productno sensitive capabilityteamleader_get_project_groupno sensitive capabilityteamleader_get_project_taskno sensitive capabilityteamleader_get_project_v2no sensitive capabilityteamleader_get_subscriptionno sensitive capabilityteamleader_get_taskno sensitive capabilityteamleader_get_ticketno sensitive capabilityteamleader_get_ticket_messageno sensitive capabilityteamleader_get_timetrackingno sensitive capabilityteamleader_import_ticket_messageno sensitive capabilityteamleader_internal_message_ticketno sensitive capabilityteamleader_link_contact_to_companyno sensitive capabilityteamleader_list_activity_typesno sensitive capabilityteamleader_list_bookkeeping_submissionsno sensitive capabilityteamleader_list_business_typesno sensitive capabilityteamleader_list_call_outcomesno sensitive capabilityteamleader_list_callsno sensitive capabilityteamleader_list_commercial_discountsno sensitive capabilityteamleader_list_companiesno sensitive capabilityteamleader_list_contactsno sensitive capabilityteamleader_list_currenciesno sensitive capabilityteamleader_list_deal_phasesno sensitive capabilityteamleader_list_deal_pipelinesno sensitive capabilityteamleader_list_deal_sourcesno sensitive capabilityteamleader_list_dealsno sensitive capabilityteamleader_list_departmentsno sensitive capabilityteamleader_list_document_templatesno sensitive capabilityteamleader_list_eventsno sensitive capabilityteamleader_list_expensesno sensitive capabilityteamleader_list_invoicesno sensitive capabilityteamleader_list_lost_reasonsno sensitive capabilityteamleader_list_mail_templatesno sensitive capabilityteamleader_list_materialsno sensitive capabilityteamleader_list_meetingsno sensitive capabilityteamleader_list_notesno sensitive capabilityteamleader_list_payment_methodsno sensitive capabilityteamleader_list_payment_termsno sensitive capabilityteamleader_list_price_listsno sensitive capabilityteamleader_list_product_categoriesno sensitive capabilityteamleader_list_productsno sensitive capabilityteamleader_list_project_groupsno sensitive capabilityteamleader_list_project_tasks_v2no sensitive capabilityteamleader_list_projects_v2no sensitive capabilityteamleader_list_quotationsno sensitive capabilityteamleader_list_subscriptionsno sensitive capabilityteamleader_list_tagsno sensitive capabilityteamleader_list_tasksno sensitive capabilityteamleader_list_tax_ratesno sensitive capabilityteamleader_list_teamsno sensitive capabilityteamleader_list_ticket_messagesno sensitive capabilityteamleader_list_ticket_statusesno sensitive capabilityteamleader_list_ticketsno sensitive capabilityteamleader_list_timetrackingno sensitive capabilityteamleader_list_units_of_measureno sensitive capabilityteamleader_list_withholding_tax_ratesno sensitive capabilityteamleader_list_work_typesno sensitive capabilityteamleader_load_tasksno sensitive capabilityteamleader_log_timeno sensitive capabilityteamleader_loginno sensitive capabilityteamleader_lose_dealno sensitive capabilityteamleader_mark_deal_pipeline_defaultno sensitive capabilityteamleader_move_dealno sensitive capabilityteamleader_move_deal_phaseno sensitive capabilityteamleader_register_paymentno sensitive capabilityteamleader_remove_paymentsno sensitive capabilityteamleader_remove_project_customerno sensitive capabilityteamleader_remove_project_dealno sensitive capabilityteamleader_remove_project_ownerno sensitive capabilityteamleader_remove_project_quotationno sensitive capabilityteamleader_remove_task_from_groupno sensitive capabilityteamleader_reopen_taskno sensitive capabilityteamleader_reply_ticketno sensitive capabilityteamleader_schedule_meetingno sensitive capabilityteamleader_schedule_taskno sensitive capabilityteamleader_send_credit_note_peppolno sensitive capabilityteamleader_send_invoiceno sensitive capabilityteamleader_send_invoice_peppolno sensitive capabilityteamleader_send_quotationno sensitive capabilityteamleader_tag_companyno sensitive capabilityteamleader_tag_contactno sensitive capabilityteamleader_task_actionno sensitive capabilityteamleader_unassign_materialno sensitive capabilityteamleader_unassign_projectno sensitive capabilityteamleader_unassign_project_groupno sensitive capabilityteamleader_unassign_project_taskno sensitive capabilityteamleader_untag_companyno sensitive capabilityteamleader_untag_contactno sensitive capabilityteamleader_update_booked_invoiceno sensitive capabilityteamleader_update_callno sensitive capabilityteamleader_update_companyno sensitive capabilityteamleader_update_contactno sensitive capabilityteamleader_update_contact_company_linkno sensitive capabilityteamleader_update_dealno sensitive capabilityteamleader_update_deal_phaseno sensitive capabilityteamleader_update_deal_pipelineno sensitive capabilityteamleader_update_eventno sensitive capabilityteamleader_update_invoiceno sensitive capabilityteamleader_update_materialno sensitive capabilityteamleader_update_meetingno sensitive capabilityteamleader_update_noteno sensitive capabilityteamleader_update_productno sensitive capabilityteamleader_update_project_groupno sensitive capabilityteamleader_update_project_taskno sensitive capabilityteamleader_update_quotationno sensitive capabilityteamleader_update_subscriptionno sensitive capabilityteamleader_update_taskno sensitive capabilityteamleader_update_ticketno sensitive capabilityteamleader_update_timetrackingno sensitive capabilityteamleader_win_dealno sensitive capabilityCross-tool combinations that form a data-exfiltration primitive (untrusted input → sensitive source → external sink).
Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v3.7.5 latest |
A 93/100 | 6 | 1.13.0 | 2026-09-07 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan @tailormade/teamleader-focus-mcp --online
Free public tax reference data — GST/VAT, income, company and capital-gains tax rules for 50+ countries.
The approval gate for unattended UCP buying agents — a policy/approval MCP proxy in front of a merchant's UCP checkout endpoint.
Autotask PSA MCP server. Generic entity query/get/create/update across the full REST API plus convenience tools for tickets, companies, contacts, projects, tasks and time entries. AI-safe with readonly mode and destructive-action confirmation. stdio + opt
MCP server for B2C Commerce developer experience tools
Search, compare and contact real-world companies through a public MCP business directory.
Norwegian business register (Brønnøysundregistrene) as an MCP server — companies, roles, subunits and annual accounts, with the register's silent traps encoded as guards.