@procurementexpress.com/mcp
npm
v3.0.1
Published by @procurementexpress.com — 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 ProcurementExpress API
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 − 4 = 96. 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 |
|---|---|
| −3 | capability blast radius (moderate) — 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.
Untrusted-input tools ([download_evidence_pack, generate_purchase_order_pdf]) co-exist with external-action tools ([upload_file_to_purchase_order, upload_file_to_comment, create_webhook, update_webhook, delete_webhook]). A prompt injection could cause unwanted external actions, though no direct sensitive-data leak path was found.
Evidence: untrusted [download_evidence_pack, generate_purchase_order_pdf] → sinks [upload_file_to_purchase_order, upload_file_to_comment, create_webhook, update_webhook,
Fix: Require confirmation for state-changing/egress actions triggered after processing untrusted content.
Location: flow download_evidence_pack → upload_file_to_purchase_order
Tool "create_webhook" takes a URL/host parameter "url" with no allowlist/pattern. An outbound-request tool with an unbounded destination enables SSRF and cloud-metadata access (e.g. 169.254.169.254).
Fix: Allowlist destinations or constrain the parameter; block private/link-local addresses server-side.
Location: tool create_webhook · inputSchema.properties.url
Tool "update_webhook" takes a URL/host parameter "url" with no allowlist/pattern. An outbound-request tool with an unbounded destination enables SSRF and cloud-metadata access (e.g. 169.254.169.254).
Fix: Allowlist destinations or constrain the parameter; block private/link-local addresses server-side.
Location: tool update_webhook · inputSchema.properties.url
Each tool and what it can reach — statically extracted from the published source.
create_webhooknetwork egressdelete_webhooknetwork egressdownload_evidence_packingests untrusted inputgenerate_purchase_order_pdfingests untrusted inputupdate_webhooknetwork egressupload_file_to_commentnetwork egressupload_file_to_purchase_ordernetwork egressaccept_invoiceno sensitive capabilityadd_invoice_commentno sensitive capabilityadd_purchase_order_commentno sensitive capabilityapprove_invoiceno sensitive capabilityapprove_purchase_orderno sensitive capabilityarchive_approval_flowno sensitive capabilityarchive_invoiceno sensitive capabilityarchive_purchase_orderno sensitive capabilityauthenticateno sensitive capabilitybulk_check_complianceno sensitive capabilitybulk_create_productsno sensitive capabilitybulk_save_purchase_ordersno sensitive capabilitycancel_inviteno sensitive capabilitycancel_invoiceno sensitive capabilitycancel_purchase_orderno sensitive capabilitycancel_receiving_itemsno sensitive capabilitycheck_complianceno sensitive capabilitycheck_sam_govno sensitive capabilitycomplete_purchase_order_deliveryno sensitive capabilitycreate_approval_flowno sensitive capabilitycreate_budgetno sensitive capabilitycreate_chat_messageno sensitive capabilitycreate_custom_fieldno sensitive capabilitycreate_departmentno sensitive capabilitycreate_digital_invoiceno sensitive capabilitycreate_evidence_packno sensitive capabilitycreate_invoiceno sensitive capabilitycreate_paymentno sensitive capabilitycreate_po_paymentno sensitive capabilitycreate_policyno sensitive capabilitycreate_productno sensitive capabilitycreate_purchase_orderno sensitive capabilitycreate_supplierno sensitive capabilitycreate_tax_rateno sensitive capabilitydearchive_invoiceno sensitive capabilitydelete_approval_flowno sensitive capabilitydelete_chat_messageno sensitive capabilitydelete_custom_fieldno sensitive capabilitydelete_policyno sensitive capabilitydelete_purchase_orderno sensitive capabilityforward_purchase_orderno sensitive capabilitygenerate_compliance_memono sensitive capabilityget_approval_flowno sensitive capabilityget_approval_flow_entityno sensitive capabilityget_approval_flow_version_detailsno sensitive capabilityget_budgetno sensitive capabilityget_bulk_check_statusno sensitive capabilityget_chart_of_accountno sensitive capabilityget_companyno sensitive capabilityget_company_detailsno sensitive capabilityget_compliance_scan_detailno sensitive capabilityget_current_userno sensitive capabilityget_custom_fieldno sensitive capabilityget_departmentno sensitive capabilityget_evidence_packno sensitive capabilityget_invite_limitno sensitive capabilityget_invoiceno sensitive capabilityget_paymentno sensitive capabilityget_pending_request_countno sensitive capabilityget_po_approval_flow_linkno sensitive capabilityget_po_auto_approversno sensitive capabilityget_po_available_approversno sensitive capabilityget_policyno sensitive capabilityget_productno sensitive capabilityget_purchase_orderno sensitive capabilityget_qbo_classno sensitive capabilityget_qbo_customerno sensitive capabilityget_supplierno sensitive capabilityget_tax_rateno sensitive capabilityget_top_suppliersno sensitive capabilityget_upload_statusno sensitive capabilityget_webhookno sensitive capabilityinvite_userno sensitive capabilityjustify_compliance_violationno sensitive capabilitylist_all_approversno sensitive capabilitylist_all_currenciesno sensitive capabilitylist_approval_flow_runsno sensitive capabilitylist_approval_flow_versionsno sensitive capabilitylist_approval_flowsno sensitive capabilitylist_approversno sensitive capabilitylist_budgetsno sensitive capabilitylist_chart_of_accountsno sensitive capabilitylist_chat_messagesno sensitive capabilitylist_companiesno sensitive capabilitylist_compliance_scan_historyno sensitive capabilitylist_currenciesno sensitive capabilitylist_custom_fieldsno sensitive capabilitylist_departmentsno sensitive capabilitylist_employeesno sensitive capabilitylist_invoice_purchase_order_itemsno sensitive capabilitylist_invoice_purchase_ordersno sensitive capabilitylist_invoicesno sensitive capabilitylist_pending_invitesno sensitive capabilitylist_policiesno sensitive capabilitylist_policy_templatesno sensitive capabilitylist_product_skusno sensitive capabilitylist_productsno sensitive capabilitylist_purchase_ordersno sensitive capabilitylist_qbo_classesno sensitive capabilitylist_qbo_customersno sensitive capabilitylist_send_to_supplier_templatesno sensitive capabilitylist_supplier_approvalsno sensitive capabilitylist_suppliersno sensitive capabilitylist_tax_ratesno sensitive capabilitylist_webhooksno sensitive capabilityoverride_and_approve_purchase_orderno sensitive capabilitypublish_approval_flowno sensitive capabilityreceive_purchase_order_itemsno sensitive capabilityreject_invoiceno sensitive capabilityreject_purchase_orderno sensitive capabilityrerun_approval_flowsno sensitive capabilityrerun_invoice_approval_flowno sensitive capabilityresend_inviteno sensitive capabilityrevoke_tokenno sensitive capabilityset_active_companyno sensitive capabilityunpublish_approval_flowno sensitive capabilityupdate_approval_flowno sensitive capabilityupdate_budgetno sensitive capabilityupdate_current_userno sensitive capabilityupdate_custom_fieldno sensitive capabilityupdate_custom_field_positionsno sensitive capabilityupdate_departmentno sensitive capabilityupdate_invoiceno sensitive capabilityupdate_policyno sensitive capabilityupdate_productno sensitive capabilityupdate_purchase_orderno sensitive capabilityupdate_supplierno sensitive capabilityupdate_tax_rateno sensitive capabilityvalidate_tokenno 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.0.1 latest |
A 96/100 | 3 | 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 @procurementexpress.com/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.