← MCP Registry Integrity Report
io.github.WellApp-ai/well-mcp
Verdict: CRITICAL findings present. Endpoint https://api.wellapp.ai/v1/mcp. Tools now: 94 (100 ever seen). Changes recorded: 200. Findings: {"critical":35,"high":127,"low":38}. Last probe: OK at 2026-09-28T18:17 UTC. JSON
Current tools
well_add_contact_channel · well_assign_account · well_assign_missing_invoice_owners · well_claim_statement_draft · well_create_company · well_create_company_candidate · well_create_company_workspace · well_create_invoice_document · well_create_invoice_from_data · well_create_person · well_create_statement_upload · well_delete_company · well_delete_invoice · well_delete_person · well_enqueue_invoice_fetch · well_get_accounting_settings · well_get_connector_coverage · well_get_customer_einvoicing_details · well_get_design_tokens · well_get_entity · well_get_graph · well_get_investment_holdings · well_get_own_company · well_get_schema · well_get_session_digest · well_get_skill · well_get_statement_import_result · well_get_worklist_status · well_invite_members · well_invoke_connector_tool · well_list_account_balances · well_list_accounts_needing_company · well_list_burn_exemptions · well_list_cash_scope · well_list_connector_tools · well_list_connectors · well_list_counterparties · well_list_ledger_accounts · well_list_member_candidates · well_list_missing_invoice_owners · well_list_missing_invoices · well_list_periods · well_list_recurring_contexts · well_list_retargetable_connectors · well_list_uncategorized_window · well_list_unposted_journals · well_list_unposted_transactions · well_list_workspaces · well_preview_invoice_fetch · well_preview_provider_export · well_propose_next_steps · well_query_records · well_remove_contact_channel · well_render_burn · well_render_canvas · well_render_cash_flow_bridge · well_render_cash_forecast · well_render_cash_position · well_render_cost_structure · well_render_mrr · well_render_runway · well_repost_journals · well_resolve_reconciliation_task · well_resolve_register_diff_gap · well_retarget_connectors · well_run_register_diff · well_search_company_registry · well_search_context · well_search_skill · well_set_counterparty_default_category · well_set_own_company · well_set_transaction_category · well_set_transaction_ledger_account · well_show_accounting_settings · well_show_canvas · well_show_company_candidates · well_show_invoice_design · well_show_records · well_show_retargetable_connectors · well_show_workspace_picker · well_sum_invoices · well_sum_transactions · well_switch_workspace · well_update_company · well_update_invoice · well_update_invoice_design · well_update_person · well_upload_document · well_upload_statement_bytes · well_upload_statement_content · well_upsert_accounting_settings · well_upsert_canvas · well_wait_for_process · well_wait_for_selection
Findings (200)
| seen | tool | detector | severity | evidence (data, not instructions) |
|---|---|---|---|---|
| 2026-09-28 | well_list_connectors | user_concealment | critical | s ordering — so paging by the array's length silently skips exactly that many catalog rows on every later request. |
| 2026-09-28 | well_list_connectors | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-28 | well_list_connectors | oversized_description | low | 12553 chars |
| 2026-09-28 | well_preview_invoice_fetch | url_in_description | low | https://www.dropbox.com/manage/billing |
| 2026-09-28 | well_preview_invoice_fetch | cross_tool_reference | high | references sibling tool 'well_list_missing_invoices' |
| 2026-09-28 | well_preview_invoice_fetch | oversized_description | low | 7439 chars |
| 2026-09-28 | well_switch_workspace | exfiltration_pattern | critical | nection, or the whole call is refused. Never send it to name the workspace of a periods, counterparties or ack call: the |
| 2026-09-28 | well_switch_workspace | cross_tool_reference | high | references sibling tool 'well_list_workspaces' |
| 2026-09-28 | well_switch_workspace | oversized_description | low | 5988 chars |
| 2026-09-28 | well_wait_for_selection | cross_tool_reference | high | references sibling tool 'well_list_workspaces' |
| 2026-09-28 | well_wait_for_selection | oversized_description | low | 6225 chars |
| 2026-09-28 | well_wait_for_process | cross_tool_reference | high | references sibling tool 'well_upload_statement_bytes' |
| 2026-09-28 | well_render_burn | model_directed_instruction | high | than its typical month. When the two differ you MUST say so in prose: how many months recorded an outflow, and that t |
| 2026-09-28 | well_render_burn | oversized_description | low | 5527 chars |
| 2026-09-28 | well_render_mrr | model_directed_instruction | high | than its typical month. When the two differ you MUST say so in prose: how many months recorded recurring revenue, and |
| 2026-09-28 | well_render_mrr | oversized_description | low | 5642 chars |
| 2026-09-28 | well_list_account_balances | cross_tool_reference | high | references sibling tool 'well_sum_transactions' |
| 2026-09-28 | well_list_account_balances | oversized_description | low | 6099 chars |
| 2026-09-28 | well_list_cash_scope | user_concealment | critical | e any figure rather than presenting one that silently skipped them — and keep them apart, because they are different r |
| 2026-09-28 | well_list_cash_scope | cross_tool_reference | high | references sibling tool 'well_wait_for_selection' |
| 2026-09-28 | well_render_runway | oversized_description | low | 4558 chars |
| 2026-09-28 | well_list_member_candidates | cross_tool_reference | high | references sibling tool 'well_wait_for_selection' |
| 2026-09-28 | well_list_unposted_transactions | user_concealment | critical | A caller reading one shape against the other silently sees empty fields rather than an error. The period is named in |
| 2026-09-28 | well_list_unposted_transactions | cross_tool_reference | high | references sibling tool 'well_list_periods' |
| 2026-09-28 | well_get_worklist_status | cross_tool_reference | high | references sibling tool 'well_list_connectors' |
| 2026-09-28 | well_get_worklist_status | oversized_description | low | 4750 chars |
| 2026-09-28 | well_get_connector_coverage | user_concealment | critical | s ordering — so paging by the array's length silently skips exactly that many catalog rows on every later request. |
| 2026-09-28 | well_get_connector_coverage | cross_tool_reference | high | references sibling tool 'well_list_connectors' |
| 2026-09-28 | well_get_session_digest | cross_tool_reference | high | references sibling tool 'well_get_skill' |
| 2026-09-28 | well_claim_statement_draft | url_in_description | low | https://wellapp.ai/find-missing-invoices/#claim=... |
| 2026-09-28 | well_claim_statement_draft | cross_tool_reference | high | references sibling tool 'well_get_statement_import_result' |
| 2026-09-28 | well_show_canvas | cross_tool_reference | high | references sibling tool 'well_render_burn' |
| 2026-09-28 | well_upsert_canvas | cross_tool_reference | high | references sibling tool 'well_render_burn' |
| 2026-09-28 | well_render_canvas | cross_tool_reference | high | references sibling tool 'well_render_cost_structure' |
| 2026-09-28 | well_show_invoice_design | cross_tool_reference | high | references sibling tool 'well_update_invoice' |
| 2026-09-28 | well_update_invoice_design | user_concealment | critical | that does not exist, is refused rather than silently ignored. An empty call (no fields) is refused. This does not mi |
| 2026-09-28 | well_update_invoice_design | cross_tool_reference | high | references sibling tool 'well_update_invoice' |
| 2026-09-22 | well_get_schema | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_query_records | user_concealment | critical | name, a bank-issued label — so a name filter silently drops rows and the total reads as complete. On the invoices ro |
| 2026-09-22 | well_query_records | model_directed_instruction | high | id only when a root has no `partyScope` and you must filter on issuer_pk / receiver_pk or the nested company_id you |
| 2026-09-22 | well_query_records | cross_tool_reference | high | references sibling tool 'well_get_schema' |
| 2026-09-22 | well_query_records | oversized_description | low | 6660 chars |
| 2026-09-22 | well_update_company | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_update_invoice | cross_tool_reference | high | references sibling tool 'well_get_schema' |
| 2026-09-22 | well_add_contact_channel | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_remove_contact_channel | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_get_entity | cross_tool_reference | high | references sibling tool 'well_get_schema' |
| 2026-09-22 | well_list_connector_tools | cross_tool_reference | high | references sibling tool 'well_invoke_connector_tool' |
| 2026-09-22 | well_invoke_connector_tool | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_create_invoice_from_data | exfiltration_pattern | critical | y without its id re-resolves it, which can attach the invoice to the wrong company or create a duplicate one. Creating and then |
| 2026-09-22 | well_create_invoice_from_data | model_directed_instruction | high | g company in the workspace, bound directly — ALWAYS send this when you already know the company (e.g. you found it with w |
| 2026-09-22 | well_create_invoice_from_data | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_list_workspaces | cross_tool_reference | high | references sibling tool 'well_show_workspace_picker' |
| 2026-09-22 | well_list_connectors | user_concealment | critical | s ordering — so paging by the array's length silently skips exactly that many catalog rows on every later request. |
| 2026-09-22 | well_list_connectors | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_list_connectors | oversized_description | low | 12188 chars |
| 2026-09-22 | well_run_register_diff | cross_tool_reference | high | references sibling tool 'well_resolve_reconciliation_task' |
| 2026-09-22 | well_resolve_reconciliation_task | user_concealment | critical | dismisses the match — the candidate does not silently re-surface. Each task_id resolves independently; a failure on o |
| 2026-09-22 | well_resolve_reconciliation_task | cross_tool_reference | high | references sibling tool 'well_run_register_diff' |
| 2026-09-22 | well_resolve_register_diff_gap | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_get_investment_holdings | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_render_cost_structure | cross_tool_reference | high | references sibling tool 'well_sum_transactions' |
| 2026-09-22 | well_render_cost_structure | oversized_description | low | 4718 chars |
| 2026-09-22 | well_get_own_company | user_concealment | critical | name, a bank-issued label), so a name filter silently drops rows. Returns `anchor` (`company_id`, `registered_name`, |
| 2026-09-22 | well_get_own_company | cross_tool_reference | high | references sibling tool 'well_create_company' |
| 2026-09-22 | well_list_missing_invoices | cross_tool_reference | high | references sibling tool 'well_list_periods' |
| 2026-09-22 | well_list_missing_invoices | oversized_description | low | 4420 chars |
| 2026-09-22 | well_list_periods | cross_tool_reference | high | references sibling tool 'well_list_missing_invoices' |
| 2026-09-22 | well_list_periods | oversized_description | low | 10185 chars |
| 2026-09-22 | well_preview_invoice_fetch | url_in_description | low | https://www.dropbox.com/manage/billing |
| 2026-09-22 | well_preview_invoice_fetch | cross_tool_reference | high | references sibling tool 'well_list_missing_invoices' |
| 2026-09-22 | well_preview_invoice_fetch | oversized_description | low | 7439 chars |
| 2026-09-22 | well_switch_workspace | exfiltration_pattern | critical | nection, or the whole call is refused. Never send it to name the workspace of a periods, counterparties or ack call: the |
| 2026-09-22 | well_switch_workspace | cross_tool_reference | high | references sibling tool 'well_list_workspaces' |
| 2026-09-22 | well_switch_workspace | oversized_description | low | 5916 chars |
| 2026-09-22 | well_list_counterparties | user_concealment | critical | egorizing a counterparty does not change it; do not tell the user otherwise. This tool only reads. It categorizes nothin |
| 2026-09-22 | well_list_counterparties | cross_tool_reference | high | references sibling tool 'well_query_records' |
| 2026-09-22 | well_list_counterparties | oversized_description | low | 4639 chars |
| 2026-09-22 | well_wait_for_selection | cross_tool_reference | high | references sibling tool 'well_list_workspaces' |
| 2026-09-22 | well_wait_for_selection | oversized_description | low | 6082 chars |
Change history (200)
| when | tool | kind | severity |
|---|---|---|---|
| 2026-09-28 18:17 | well_list_connectors | mutated | critical |
| 2026-09-28 18:17 | well_preview_invoice_fetch | mutated | high |
| 2026-09-28 18:17 | well_switch_workspace | mutated | critical |
| 2026-09-28 18:17 | well_wait_for_selection | mutated | high |
| 2026-09-28 18:17 | well_wait_for_process | added | high |
| 2026-09-28 18:17 | well_render_burn | mutated | high |
| 2026-09-28 18:17 | well_render_mrr | mutated | high |
| 2026-09-28 18:17 | well_list_account_balances | mutated | high |
| 2026-09-28 18:17 | well_render_cash_position | mutated | medium |
| 2026-09-28 18:17 | well_list_cash_scope | mutated | critical |
| 2026-09-28 18:17 | well_render_runway | mutated | medium |
| 2026-09-28 18:17 | well_list_member_candidates | mutated | high |
| 2026-09-28 18:17 | well_list_unposted_transactions | mutated | critical |
| 2026-09-28 18:17 | well_get_worklist_status | mutated | high |
| 2026-09-28 18:17 | well_get_connector_coverage | mutated | critical |
| 2026-09-28 18:17 | well_get_session_digest | mutated | high |
| 2026-09-28 18:17 | well_claim_statement_draft | mutated | high |
| 2026-09-28 18:17 | well_show_canvas | added | high |
| 2026-09-28 18:17 | well_upsert_canvas | added | high |
| 2026-09-28 18:17 | well_preview_provider_export | added | info |
| 2026-09-28 18:17 | well_render_canvas | added | high |
| 2026-09-28 18:17 | well_show_invoice_design | added | high |
| 2026-09-28 18:17 | well_update_invoice_design | added | critical |
| 2026-09-28 18:17 | well_get_runway | removed | info |
| 2026-09-28 18:17 | well_get_cash_position | removed | info |
| 2026-09-28 18:17 | well_get_cost_structure | removed | info |
| 2026-09-28 18:17 | well_get_burn | removed | info |
| 2026-09-28 18:17 | well_get_cash_forecast | removed | info |
| 2026-09-28 18:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-28 12:17 | well_get_runway | removed | info |
| 2026-09-28 12:17 | well_get_cash_position | removed | info |
| 2026-09-28 12:17 | well_get_cost_structure | removed | info |
| 2026-09-28 12:17 | well_get_burn | removed | info |
| 2026-09-28 12:17 | well_get_cash_forecast | removed | info |
| 2026-09-28 12:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-28 06:17 | well_get_runway | removed | info |
| 2026-09-28 06:17 | well_get_cash_position | removed | info |
| 2026-09-28 06:17 | well_get_cost_structure | removed | info |
| 2026-09-28 06:17 | well_get_burn | removed | info |
| 2026-09-28 06:17 | well_get_cash_forecast | removed | info |
| 2026-09-28 06:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-28 00:17 | well_get_runway | removed | info |
| 2026-09-28 00:17 | well_get_cash_position | removed | info |
| 2026-09-28 00:17 | well_get_cost_structure | removed | info |
| 2026-09-28 00:17 | well_get_burn | removed | info |
| 2026-09-28 00:17 | well_get_cash_forecast | removed | info |
| 2026-09-28 00:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-27 18:17 | well_get_runway | removed | info |
| 2026-09-27 18:17 | well_get_cash_position | removed | info |
| 2026-09-27 18:17 | well_get_cost_structure | removed | info |
| 2026-09-27 18:17 | well_get_burn | removed | info |
| 2026-09-27 18:17 | well_get_cash_forecast | removed | info |
| 2026-09-27 18:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-27 12:17 | well_get_runway | removed | info |
| 2026-09-27 12:17 | well_get_cash_position | removed | info |
| 2026-09-27 12:17 | well_get_cost_structure | removed | info |
| 2026-09-27 12:17 | well_get_burn | removed | info |
| 2026-09-27 12:17 | well_get_cash_forecast | removed | info |
| 2026-09-27 12:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-27 06:17 | well_get_runway | removed | info |
| 2026-09-27 06:17 | well_get_cash_position | removed | info |
| 2026-09-27 06:17 | well_get_cost_structure | removed | info |
| 2026-09-27 06:17 | well_get_burn | removed | info |
| 2026-09-27 06:17 | well_get_cash_forecast | removed | info |
| 2026-09-27 06:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-27 00:17 | well_get_runway | removed | info |
| 2026-09-27 00:17 | well_get_cash_position | removed | info |
| 2026-09-27 00:17 | well_get_cost_structure | removed | info |
| 2026-09-27 00:17 | well_get_burn | removed | info |
| 2026-09-27 00:17 | well_get_cash_forecast | removed | info |
| 2026-09-27 00:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-26 18:17 | well_get_runway | removed | info |
| 2026-09-26 18:17 | well_get_cash_position | removed | info |
| 2026-09-26 18:17 | well_get_cost_structure | removed | info |
| 2026-09-26 18:17 | well_get_burn | removed | info |
| 2026-09-26 18:17 | well_get_cash_forecast | removed | info |
| 2026-09-26 18:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-26 12:17 | well_get_runway | removed | info |
| 2026-09-26 12:17 | well_get_cash_position | removed | info |
| 2026-09-26 12:17 | well_get_cost_structure | removed | info |
| 2026-09-26 12:17 | well_get_burn | removed | info |
| 2026-09-26 12:17 | well_get_cash_forecast | removed | info |
| 2026-09-26 12:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-26 06:17 | well_get_runway | removed | info |
| 2026-09-26 06:17 | well_get_cash_position | removed | info |
| 2026-09-26 06:17 | well_get_cost_structure | removed | info |
| 2026-09-26 06:17 | well_get_burn | removed | info |
| 2026-09-26 06:17 | well_get_cash_forecast | removed | info |
| 2026-09-26 06:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-26 00:17 | well_get_runway | removed | info |
| 2026-09-26 00:17 | well_get_cash_position | removed | info |
| 2026-09-26 00:17 | well_get_cost_structure | removed | info |
| 2026-09-26 00:17 | well_get_burn | removed | info |
| 2026-09-26 00:17 | well_get_cash_forecast | removed | info |
| 2026-09-26 00:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-25 12:17 | well_get_runway | removed | info |
| 2026-09-25 12:17 | well_get_cash_position | removed | info |
| 2026-09-25 12:17 | well_get_cost_structure | removed | info |
| 2026-09-25 12:17 | well_get_burn | removed | info |
| 2026-09-25 12:17 | well_get_cash_forecast | removed | info |
| 2026-09-25 12:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-25 06:17 | well_get_runway | removed | info |
| 2026-09-25 06:17 | well_get_cash_position | removed | info |
| 2026-09-25 06:17 | well_get_cost_structure | removed | info |
| 2026-09-25 06:17 | well_get_burn | removed | info |
| 2026-09-25 06:17 | well_get_cash_forecast | removed | info |
| 2026-09-25 06:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-25 00:17 | well_get_runway | removed | info |
| 2026-09-25 00:17 | well_get_cash_position | removed | info |
| 2026-09-25 00:17 | well_get_cost_structure | removed | info |
| 2026-09-25 00:17 | well_get_burn | removed | info |
| 2026-09-25 00:17 | well_get_cash_forecast | removed | info |
| 2026-09-25 00:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-24 18:17 | well_get_runway | removed | info |
| 2026-09-24 18:17 | well_get_cash_position | removed | info |
| 2026-09-24 18:17 | well_get_cost_structure | removed | info |
| 2026-09-24 18:17 | well_get_burn | removed | info |
| 2026-09-24 18:17 | well_get_cash_forecast | removed | info |
| 2026-09-24 18:17 | well_get_cash_flow_bridge | removed | info |
| 2026-09-24 12:17 | well_get_runway | removed | info |
Probe history
09-28 18:17 OK (94) · 09-28 12:17 OK (87) · 09-28 06:17 OK (87) · 09-28 00:17 OK (87) · 09-27 18:17 OK (87) · 09-27 12:17 OK (87) · 09-27 06:17 OK (87) · 09-27 00:17 OK (87) · 09-26 18:17 OK (87) · 09-26 12:17 OK (87) · 09-26 06:17 OK (87) · 09-26 00:17 OK (87) · 09-25 12:17 OK (87) · 09-25 06:17 OK (87) · 09-25 00:17 OK (87) · 09-24 18:17 OK (87) · 09-24 12:17 OK (87) · 09-24 06:17 OK (87) · 09-23 12:17 OK (87) · 09-23 06:17 OK (87) · 09-23 00:17 OK (87) · 09-22 18:17 OK (87) · 09-22 12:17 OK (82) · 09-22 00:17 OK (82) · 09-21 18:17 OK (82) · 09-21 12:17 OK (82) · 09-21 06:17 OK (82) · 09-21 00:17 OK (82) · 09-20 18:17 OK (82) · 09-20 12:17 OK (82)
Get alerted when this server changes: tooldrift.agentexchange.work ($29/mo watch).