ProfitCollector
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
22 pay-per-call developer, security, network and data utilities using x402 on Base.
| Author | ca.bakhour |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2541 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"ProfitCollector": {
"url": "https://mcp.bakhour.ca/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (31)
get_dns_lookupResolve ONE DNS record type for a domain. For all record types at once use /domain/intelligence; for a bundled DNS+TLS+headers audit use /web/audit or /security/posture; for mail-security plus a scored verdict use /domain/due-diligence.
Parameters:
domain(required) — stringrecord_type— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_jwt_decodeDecode a JWT payload without signature verification.
Parameters:
token(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_subnet_calculateCalculate subnet information from CIDR notation.
Parameters:
cidr(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_json_repairRepair common malformed JSON formatting issues.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_media_image_convertConvert an image between common formats (e.g. PNG/JPEG/WebP) from a URL or base64 payload.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_security_repo_risk_report_standardSBOM inventory plus real OSV.dev dependency-vulnerability matches and dependency-freshness signals for a public Git repository. One-shot alternative to a per-seat secret-scanning subscription.
Parameters:
repo_url(required) — string — Public https://github.com/... or https://gitlab.com/... repository URL.ref— string — Optional branch/tag to analyze. Defaults to the repository's default branch.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_security_repo_risk_report_deepEverything in the standard report, plus a repo-wide secret/credential exposure scan (matched values are never returned).
Parameters:
repo_url(required) — string — Public https://github.com/... or https://gitlab.com/... repository URL.ref— string — Optional branch/tag to analyze. Defaults to the repository's default branch.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_security_repo_risk_report_due_diligenceEverything in the deep report, plus real OpenSSF Scorecard maintainer/governance signals and a prioritized recommendation. An automated baseline positioned against $5,000-$95,000 human technical due diligence.
Parameters:
repo_url(required) — string — Public https://github.com/... or https://gitlab.com/... repository URL.ref— string — Optional branch/tag to analyze. Defaults to the repository's default branch.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_x402_service_trust_reportLive, on-demand check of ONE x402-protected endpoint before you pay it: payment-requirements structure, TLS certificate, payTo on-chain balance, known-asset recognition, resource/host consistency, and discovery-manifest cross-check -- not a cached aggregate reputation score.
Parameters:
target_url(required) — string — The full https:// URL of the x402-protected endpoint to evaluate.target_method— string — HTTP method to request target_url with. Defaults to GET; use POST for action-style endpoints that only 402-challenge on POST.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_freshdep_scanFlags pinned dependencies in a repository's requirements.txt, package-lock.json, or uv.lock published more recently than a freshness threshold -- a supply-chain-compromise tripwire. Free CLI (requirements.txt/package-lock.json only, uv.lock support pending there): github.com/sbakhour/freshdep.
Parameters:
repo_url(required) — string — Full https://github.com/<owner>/<repo> URL to scan.ref— string — Optional branch/tag to check out instead of the default branch.threshold_days— number — Flag anything published more recently than this many days ago. Defaults to 7.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_quebec_invoice_compliance_checkVerifies GST/QST were calculated correctly per Revenu Quebec's current (non-compounded) formula, and flags whether a French invoice version is present per Charter of the French Language s.57/89/91. Pure arithmetic + text check; not legal or tax advice.
Parameters:
subtotal(required) — number — Pre-tax subtotal in CAD.gst_amount(required) — number — GST amount as shown on the invoice.qst_amount(required) — number — QST amount as shown on the invoice.french_text— string — The invoice's French text, if any (optional -- its absence is itself flagged).english_text— string — The invoice's primary/other-language text (optional but needed for the language check).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_quebec_invoice_generateAssembles a bilingual (French/English) Quebec invoice document with GST/QST computed exactly per Revenu Quebec's current formula -- you supply both languages' line-item text, this does not translate. Not legal or tax advice.
Parameters:
invoice_number(required) — string — Your own invoice number/reference.seller_name(required) — string — Seller/business name to display.line_items(required) — array — Each item needs description_en, description_fr (both required -- this assembles, it does not translate), and amount.seller_gst_number— string — GST registration number, optional.seller_qst_number— string — QST registration number, optional.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_json_validateValidate JSON text and return parsing details.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_json_prettyPretty-print valid JSON text.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_json_minifyMinify valid JSON text.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_base64_encodeEncode UTF-8 text using Base64.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_base64_decodeDecode Base64 to UTF-8 text.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_hash_sha256Generate SHA-256 digest from text.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_hash_sha512Generate SHA-512 digest from text.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_uuid_generateGenerate a random UUID version 4.
Parameters:
count— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_url_parseParse a URL into structured components.
Parameters:
url(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_text_statsCalculate character, word, line and byte statistics.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_text_dedupe_linesRemove duplicate lines while preserving original order.
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_timestamp_convertConvert a Unix timestamp to UTC ISO-8601.
Parameters:
timestamp(required) — number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_domain_due_diligenceThe most comprehensive domain assessment: DNS + mail security (SPF/DKIM/DMARC) + TLS + HTTP headers, scored. The only endpoint in this group that adds mail-security analysis. Use for a one-shot decision-grade verdict on an unfamiliar domain; use /dns/lookup, /ssl/check, /security/headers, /web/audit or /security/posture instead for a single fact or a cheaper signal.
Parameters:
domain(required) — string — Public domain name to assess
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_domain_intelligenceCollect ALL common DNS record types (A/AAAA/MX/NS/TXT/CAA) for a domain in one call -- the multi-record bundle version of /dns/lookup.
Parameters:
domain(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_web_auditConsolidated DNS, TLS and HTTP security audit for a public HTTPS website, returned as RAW findings (no score) -- the bundled version of /dns/lookup + /ssl/check + /security/headers. Use /security/posture instead for a 0-100 score/grade.
Parameters:
url(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_security_postureAssess TLS and HTTP security posture for a public HTTPS website -- the SAME inspection as /web/audit, but returns a 0-100 score/grade and findings instead of raw fields.
Parameters:
url(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
post_data_transformNormalize and transform common structured text automatically.
Parameters:
text(required) — stringoperation— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_security_headersInspect HTTP security headers for ONE URL only. For headers combined with TLS and DNS, use /web/audit (raw) or /security/posture (scored).
Parameters:
url(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_ssl_checkInspect the TLS certificate for ONE hostname only. For TLS combined with HTTP headers and DNS, use /web/audit (raw) or /security/posture (scored).
Parameters:
hostname(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.