{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T00:38:05.256Z","url":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial","markdownUrl":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial.md","server":{"slug":"mohamedaly-cloud-masr-pay-mcp-unofficial","name":"FawryPay cash payments (unofficial)","registryName":"io.github.mohamedaly-cloud/masr-pay-mcp-unofficial","description":"Unofficial MCP server for FawryPay Pay-at-Fawry cash payments in Egypt. Not affiliated with Fawry.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"masr-pay-mcp-unofficial","type":"pypi","identifier":"masr-pay-mcp-unofficial","withdrawn":false,"url":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial","version":"0.1.0","transport":"stdio","scoredAt":"2026-11-05T06:22:02.191Z"},"score":{"total":54,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":54},{"date":"2026-11-04","total":54},{"date":"2026-11-03","total":54},{"date":"2026-11-02","total":54},{"date":"2026-11-01","total":48}]},"categories":[{"name":"Supply Chain Security","score":50,"verdict":"partial","reasons":["Malware scan not yet available for this package.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","1 of 28 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_no_verdict"}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"28","unhealthy":"1"}}]},{"name":"Provenance & Transparency","score":45,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 3 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"3"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":64,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 781 tokens (~390/item across 2 items; 2 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"390","items":"2","tools":"2","tokens":"781","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 2 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 3 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"2"}},{"code":"toolsafety.manipulation_clean","args":{"units":"3","judged":"3"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["Malware scan not yet available for this package.","Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"malware":[],"components":[{"slug":"masr-pay-mcp-unofficial","type":"pypi","identifier":"masr-pay-mcp-unofficial","withdrawn":false,"score":54,"current":true,"url":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial","markdownUrl":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"masr-pay-mcp-unofficial"},{"label":"Version","value":"0.1.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"create_cash_payment","title":"Create a Pay-at-Fawry cash payment","description":"Create a Fawry reference number so a customer can pay an order in CASH at any Fawry outlet in Egypt.\n\nUse it when the user wants to charge someone who will pay cash (e.g. \"charge Ahmed 350 EGP for\norder 42, he'll pay cash\"). Returns a 9-digit reference number, the total the customer pays\n(order amount plus any Fawry fees, in EGP) and the deadline; pass these on to the customer.\nNothing is charged until the customer pays at the outlet.\n\nEach order_id can be used for only one payment. Failures: a rejected merchant code or signature\nmeans the server's credentials are wrong (not the customer's fault); a duplicate order_id means\nthat order already has a payment, so use get_payment_status instead. Amounts above the\nserver's per-payment limit (default 50,000 EGP) are refused before anything is sent to Fawry.","inputs":[{"name":"amount_egp","type":null,"required":true,"description":"Amount in Egyptian pounds (EGP), at most two decimals, e.g. 350 or 99.50."},{"name":"customer_email","type":"string","required":true,"description":"Customer's email address."},{"name":"customer_mobile","type":"string","required":true,"description":"Customer's Egyptian mobile, e.g. 01012345678 (+20 forms are accepted)."},{"name":"customer_name","type":null,"required":false,"description":"Optional customer name."},{"name":"description","type":"string","required":true,"description":"What the payment is for, e.g. 'Order 42'."},{"name":"expiry_hours","type":"number","required":false,"description":"Hours the customer has to pay (default 72, max 720)."},{"name":"language","type":"string","required":false,"description":"Language for Fawry's customer-facing messages: 'en-gb' or 'ar-eg'."},{"name":"order_id","type":"string","required":true,"description":"The merchant's own order number, e.g. '42' or 'ORD-2026-0042' (letters, digits, . _ - only). It identifies the payment in every later call."}],"outputs":[{"name":"amount_egp","type":"string","required":true,"description":null},{"name":"customer_instructions","type":"string","required":true,"description":"A ready-to-send message for the customer."},{"name":"environment","type":"string","required":true,"description":"'mock', 'staging' or 'production'. Only production is real money."},{"name":"expires_at_cairo","type":null,"required":true,"description":null},{"name":"expires_at_utc","type":null,"required":true,"description":null},{"name":"fawry_fees_egp","type":null,"required":true,"description":null},{"name":"order_id","type":"string","required":true,"description":null},{"name":"raw_status","type":"string","required":true,"description":"Status exactly as Fawry returned it."},{"name":"reference_number","type":"string","required":true,"description":"The 9-digit number the customer pays with at Fawry."},{"name":"status","type":null,"required":true,"description":null},{"name":"total_to_pay_egp","type":"string","required":true,"description":"What the customer pays at the outlet (amount + fees)."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":396},{"name":"get_payment_status","title":"Check a Pay-at-Fawry payment","description":"Check whether the customer has paid an order (e.g. \"did Ahmed pay for order 42?\").\n\nLook up by the same order_id used in create_cash_payment. Returns a normalized status\n(awaiting_payment, paid, expired, canceled, refunded, failed or unknown), the raw Fawry status,\nwhen it was paid, and amounts in EGP. Safe to call as often as needed; it changes nothing.\n\"Order not found\" means no payment was ever created for that order_id.","inputs":[{"name":"order_id","type":"string","required":true,"description":"The merchant's own order number, e.g. '42' or 'ORD-2026-0042' (letters, digits, . _ - only). It identifies the payment in every later call."}],"outputs":[{"name":"amount_egp","type":"string","required":true,"description":null},{"name":"environment","type":"string","required":true,"description":null},{"name":"fawry_fees_egp","type":null,"required":true,"description":null},{"name":"is_paid","type":"boolean","required":true,"description":null},{"name":"order_id","type":"string","required":true,"description":null},{"name":"paid_at_cairo","type":null,"required":true,"description":null},{"name":"paid_at_utc","type":null,"required":true,"description":null},{"name":"raw_status","type":"string","required":true,"description":"Status exactly as Fawry returned it."},{"name":"reference_number","type":null,"required":true,"description":null},{"name":"refunded_amount_egp","type":null,"required":true,"description":null},{"name":"status","type":null,"required":true,"description":"awaiting_payment | paid | expired | canceled | refunded | failed | unknown"},{"name":"summary","type":"string","required":true,"description":"One-sentence plain-English answer."},{"name":"total_to_pay_egp","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":160}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:22:02.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":"no_attestation","reasonLabel":"No attestation published","discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":28,"partial":false,"deprecated":null,"stale":null,"noRepo":1}},"mismatches":[],"changelog":{"trackingSince":"2026-11-01","recent":[{"id":"chg_01a1a0e0-6012-7105-8079-46dc7663151d","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial#chg-chg_01a1a0e0-6012-7105-8079-46dc7663151d"},{"id":"chg_01a19aa1-39bf-708f-a12f-81e4fdd5bfbd","kind":"check.verdict","summary":"Source repository (fail → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial#chg-chg_01a19aa1-39bf-708f-a12f-81e4fdd5bfbd"},{"id":"chg_01a19aa1-39c0-71c4-948c-afc673912e39","kind":"score.total_changed","summary":"Trust score (48 → 54)","materiality":"functional","direction":"improvement","scoreDelta":6,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial#chg-chg_01a19aa1-39c0-71c4-948c-afc673912e39"},{"id":"chg_01a1971e-4c69-7c78-9ef8-57a6a794e622","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial#chg-chg_01a1971e-4c69-7c78-9ef8-57a6a794e622"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial/changelog.json"},"links":{"html":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial","markdown":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial.md","changelogJson":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial/changelog.json","changelogRss":"https://verifymcp.io/servers/mohamedaly-cloud-masr-pay-mcp-unofficial/masr-pay-mcp-unofficial.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/masr-pay-mcp-unofficial/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/masr-pay-mcp-unofficial"},{"label":"Repository","href":"https://github.com/mohamedaly-cloud/masr-pay-mcp-unofficial"}]}}