protogrid

Search / io.github.LKennedyShare/supplier-payment-verifier

Supplier Payment Decision Agent (Ireland)

R0· no sign-in

Free daily IBAN, VIES VAT and CRO checks; paid invoice decisions. x402. Never moves invoice money.

v0.6.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality73new
Trust80of 100
Uptime, 30 days100%
Latency p50212 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "supplier-payment-verifier": {
      "type": "http",
      "url": "https://supplier-payment-verifier-production.up.railway.app/mcp/"
    }
  }
}
claude mcp add --transport http supplier-payment-verifier https://supplier-payment-verifier-production.up.railway.app/mcp/
[mcp_servers.supplier-payment-verifier]
url = "https://supplier-payment-verifier-production.up.railway.app/mcp/"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "supplier-payment-verifier": {
      "type": "remote",
      "url": "https://supplier-payment-verifier-production.up.railway.app/mcp/",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "supplier-payment-verifier": {
      "type": "http",
      "url": "https://supplier-payment-verifier-production.up.railway.app/mcp/"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=supplier-payment-verifier&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc3VwcGxpZXItcGF5bWVudC12ZXJpZmllci1wcm9kdWN0aW9uLnVwLnJhaWx3YXkuYXBwL21jcC8ifQ%3D%3D"
}
{
  "servers": {
    "supplier-payment-verifier": {
      "type": "http",
      "url": "https://supplier-payment-verifier-production.up.railway.app/mcp/"
    }
  }
}
{
  "mcpServers": {
    "supplier-payment-verifier": {
      "httpUrl": "https://supplier-payment-verifier-production.up.railway.app/mcp/"
    }
  }
}
extensions:
  "supplier-payment-verifier":
    enabled: true
    name: "supplier-payment-verifier"
    type: streamable_http
    uri: "https://supplier-payment-verifier-production.up.railway.app/mcp/"
    timeout: 300

Quality 73 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: verify_supplier_payment (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); check_iban (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); check_vat (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 5,975 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 6 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

8 tools, about 5,975 tokens to load them all · tool set d94a441840f2 · tools last changed 2026-10-17 · checked 2026-10-20 13:17 UTC

Tool changes

  • register_signing_keychangeddescription, input schemameaning changed
    before

    Registers an RSA public key (2048-bit or larger, PEM) used to sign payment-decision requests. Keys are immutable per tenant; rotate by registering a new key_id.

    after · 47% of words in common

    Registers an RSA public key (2048-bit or larger, PEM) used to sign payment-decision requests. Keys are immutable per tenant; rotate by registering a new key_id. Returns key_id and registered=true. Use before decide_supplier_payment and use the same tenant/paying wallet for registration and decision. This is not a supplier check, API-key creation or payment authorization. Keep the RSA private key local; a conflicting existing key_id returns a conflict. Inspect and approve the registration fee before calling.

  • decide_supplier_paymentchangeddescription, input schema
    before

    Flagship. Independent third-party decision for an Irish supplier invoice. Runs five gates (CRO status NORMAL, EU VIES VAT, payee-name and IBAN check, PO/GRN/invoice 3-way match, RSA signature) and returns exactly one of EXECUTE_PAYMENT, REJECT_PAYMENT or FLAG_FOR_HUMAN_REVIEW with per-check results, reason codes and a confidence score. The legacy CONFIRMATION_OF_PAYEE result means a payee-name comparison with the CRO legal name and IBAN validation, not bank Confirmation of Payee. ERP_THREE_WAY_MATCH compares caller-supplied documents, not independently verified ERP records. Decides only; never moves money. Register a signing key first via /v1/agent-keys.

    after · 76% of words in common

    Flagship. Independent third-party decision for an Irish supplier invoice. Runs five gates (CRO status NORMAL, EU VIES VAT, payee-name and IBAN check, PO/GRN/invoice 3-way match, RSA signature) and returns exactly one of EXECUTE_PAYMENT, REJECT_PAYMENT or FLAG_FOR_HUMAN_REVIEW with per-check results, reason codes and a confidence score. The legacy CONFIRMATION_OF_PAYEE result means a payee-name comparison with the CRO legal name and IBAN validation, not bank Confirmation of Payee. ERP_THREE_WAY_MATCH compares caller-supplied documents, not independently verified ERP records. Decides only; never moves money. Register a signing key first via /v1/agent-keys. Use this for the complete signed invoice/PO/GRN workflow, not verify_supplier_payment's separate identity/VAT contract or get_verification retrieval. Provider uncertainty requires review, not execution; retain independent payment approval. Supply a stable transaction_id for retries and never automatically repay.

  • check_three_way_matchchangeddescription, input schemameaning changed
    before

    Checks that a purchase order, goods receipt and invoice agree on supplier, currency, amount, line items, unit prices and quantities received. Stateless; you attach the documents. Checks caller-supplied documents, not independently verified ERP records.

    after · 46% of words in common

    Checks that a purchase order, goods receipt and invoice agree on supplier, currency, amount, line items, unit prices and quantities received. Stateless; you attach the documents. Checks caller-supplied documents, not independently verified ERP records. Returns PASSED or FAILED and a reason code; no CRO/VIES lookup, signature validation or bank transfer is performed by this tool. Use decide_supplier_payment when document matching must be combined with supplier identity, VAT, payee and signature checks. Requires an explicitly approved service fee.

  • check_companychangeddescription, input schema
    before

    Looks up an Irish company by CRO number in the Companies Registration Office open data. PASSED only if the company status is NORMAL; dissolved, liquidated or unknown companies FAIL. Returns the registered name. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.

    after · 66% of words in common

    Looks up an Irish company by CRO number in the Companies Registration Office open data. PASSED only if the company status is NORMAL; dissolved, liquidated or unknown companies FAIL. Returns the registered name. Use a CRO company number, not a company name or VAT number. Source uncertainty returns UNAVAILABLE, not a pass. Use check_vat for VIES registration, verify_supplier_payment for claimed-name/identity reconciliation, or decide_supplier_payment for a complete signed invoice decision. No invoice is approved here. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.

  • check_vatchangeddescription, input schema
    before

    Validates the Irish VAT number format and check letter, then confirms registration live with EU VIES. Returns PASSED, FAILED or UNAVAILABLE (VIES outage) with a reason code. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.

    after · 55% of words in common

    Validates the Irish VAT number format and check letter, then confirms registration live with EU VIES. Returns PASSED, FAILED or UNAVAILABLE (VIES outage) with a reason code and available consultation/audit evidence. Use for one VAT number, not company-name matching or invoice approval. check_company checks CRO status; verify_supplier_payment reconciles claimed supplier identity and VAT; decide_supplier_payment runs the full signed invoice workflow. An outage is uncertainty, not invalid registration; do not auto-pay to retry. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.

  • check_ibanchangeddescription, input schema
    before

    Cheapest call. Validates an IBAN (ISO 13616 mod-97 checksum, length and country) before you pay it. Returns PASSED or FAILED with a reason code. Irish (IE) IBANs pass by default. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.005 USDC with explicit approval.

    after · 61% of words in common

    Cheapest call. Validates an IBAN (ISO 13616 mod-97 checksum, length and country) before you pay it. Returns PASSED or FAILED with a reason code. Irish (IE) IBANs pass by default. Use only for bank-account identifier syntax/country checks, not account ownership, bank Confirmation of Payee or supplier identity. Use check_vat for VAT registration, check_company for CRO status, and decide_supplier_payment for the complete signed invoice decision. No bank transfer occurs. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.005 USDC with explicit approval.

  • get_verificationchangeddescription, input schemameaning changed
    before

    Retrieve a verification result belonging to the authenticated tenant. Requires the verification.read scope.

    after · 10% of words in common

    Read an existing identity/VAT verification created by verify_supplier_payment (POST /v1/verifications). Supply its returned verification_id UUID, not a request_id, transaction_id, invoice number or A2A task ID. Returns the stored RELEASE/REVIEW/BLOCK/INSUFFICIENT_EVIDENCE result without rerunning registry checks. The same authenticated tenant must own the result: use the original paying wallet for x402, or an authorized bearer token with verification.read scope. Missing or other-tenant IDs return not found. This does not retrieve decide_supplier_payment decisions and does not create a verification. Retrieval has its own service fee; inspect terms and obtain spending approval before paying. Do not retry payment automatically or infer invoice-payment authorization from a stored advisory result.

  • verify_supplier_paymentchangeddescription, input schemameaning changed
    before

    Verify a supplier's identity and VAT registration and return the advisory decision. Identity registry checks are routed to the Irish CRO for IE only. VAT is verified independently through EU VIES. Requires the verification.submit scope. transaction, customer_assertions and payment_destination are only evaluated when payment checks are enabled on the service; otherwise they may be omitted.

    after · 19% of words in common

    Use for supplier identity and VAT reconciliation, not the full signed five-gate invoice decision. Reconciles the claimed legal name, company registration number and VAT number against the Irish Companies Registration Office (IE) and the EU VIES VAT service, and returns an advisory RELEASE, REVIEW, BLOCK or INSUFFICIENT_EVIDENCE decision with per-check results and reason codes plus verification_id. Use decide_supplier_payment for the signed invoice/PO/GRN workflow, individual check tools for one check, and get_verification only to retrieve this stored result. This creates a verification and may call external sources; it never executes or authorises a bank payment. Requires explicit x402 service-fee approval or an authorized bearer token; do not automatically retry paid calls.

  • check_companychangeddescription
    before

    Looks up an Irish company by CRO number in the Companies Registration Office open data. PASSED only if the company status is NORMAL; dissolved, liquidated or unknown companies FAIL. Returns the registered name.

    after · 60% of words in common

    Looks up an Irish company by CRO number in the Companies Registration Office open data. PASSED only if the company status is NORMAL; dissolved, liquidated or unknown companies FAIL. Returns the registered name. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.

  • check_vatchangeddescription
    before

    Validates the Irish VAT number format and check letter, then confirms registration live with EU VIES. Returns PASSED, FAILED or UNAVAILABLE (VIES outage) with a reason code.

    after · 60% of words in common

    Validates the Irish VAT number format and check letter, then confirms registration live with EU VIES. Returns PASSED, FAILED or UNAVAILABLE (VIES outage) with a reason code. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 80 / 100

no-repository
provenance45
liveness100
freshness100
hygiene80

+website +reachable +uptime-100% +updated-3d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://supplier-payment-verifier-production.up.railway.app/mcp/ streamable-httpnoneyes100%212 ms2025-11-252026-10-20

Tools (8)

check_companyLooks up an Irish company by CRO number in the Companies Registration Office open data. PASSED only if the company status is NORMAL; dissolved, liquidated or unknown companies FAIL. Returns the registered name. Use a CRO company number, not a company name or VAT number. Source uncertainty returns UNAVAILABLE, not a pass. Use check_vat for VIES registration, verify_supplier_payment for claimed-name/identity reconciliation, or decide_supplier_payment for a complete signed invoice decision. No invoice is approved here. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.
check_ibanCheapest call. Validates an IBAN (ISO 13616 mod-97 checksum, length and country) before you pay it. Returns PASSED or FAILED with a reason code. Irish (IE) IBANs pass by default. Use only for bank-account identifier syntax/country checks, not account ownership, bank Confirmation of Payee or supplier identity. Use check_vat for VAT registration, check_company for CRO status, and decide_supplier_payment for the complete signed invoice decision. No bank transfer occurs. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.005 USDC with explicit approval.
check_three_way_matchChecks that a purchase order, goods receipt and invoice agree on supplier, currency, amount, line items, unit prices and quantities received. Stateless; you attach the documents. Checks caller-supplied documents, not independently verified ERP records. Returns PASSED or FAILED and a reason code; no CRO/VIES lookup, signature validation or bank transfer is performed by this tool. Use decide_supplier_payment when document matching must be combined with supplier identity, VAT, payee and signature checks. Requires an explicitly approved service fee.
check_vatValidates the Irish VAT number format and check letter, then confirms registration live with EU VIES. Returns PASSED, FAILED or UNAVAILABLE (VIES outage) with a reason code and available consultation/audit evidence. Use for one VAT number, not company-name matching or invoice approval. check_company checks CRO status; verify_supplier_payment reconciles claimed supplier identity and VAT; decide_supplier_payment runs the full signed invoice workflow. An outage is uncertainty, not invalid registration; do not auto-pay to retry. Free: 10 attempts per UTC day per IP, shared REST/MCP; failures count. Then 0.01 USDC with explicit approval.
decide_supplier_paymentFlagship. Independent third-party decision for an Irish supplier invoice. Runs five gates (CRO status NORMAL, EU VIES VAT, payee-name and IBAN check, PO/GRN/invoice 3-way match, RSA signature) and returns exactly one of EXECUTE_PAYMENT, REJECT_PAYMENT or FLAG_FOR_HUMAN_REVIEW with per-check results, reason codes and a confidence score. The legacy CONFIRMATION_OF_PAYEE result means a payee-name comparison with the CRO legal name and IBAN validation, not bank Confirmation of Payee. ERP_THREE_WAY_MATCH compares caller-supplied documents, not independently verified ERP records. Decides only; never moves money. Register a signing key first via /v1/agent-keys. Use this for the complete signed invoice/PO/GRN workflow, not verify_supplier_payment's separate identity/VAT contract or get_verification retrieval. Provider uncertainty requires review, not execution; retain independent payment approval. Supply a stable transaction_id for retries and never automatically repay.
get_verificationRead an existing identity/VAT verification created by verify_supplier_payment (POST /v1/verifications). Supply its returned verification_id UUID, not a request_id, transaction_id, invoice number or A2A task ID. Returns the stored RELEASE/REVIEW/BLOCK/INSUFFICIENT_EVIDENCE result without rerunning registry checks. The same authenticated tenant must own the result: use the original paying wallet for x402, or an authorized bearer token with verification.read scope. Missing or other-tenant IDs return not found. This does not retrieve decide_supplier_payment decisions and does not create a verification. Retrieval has its own service fee; inspect terms and obtain spending approval before paying. Do not retry payment automatically or infer invoice-payment authorization from a stored advisory result.
register_signing_keyRegisters an RSA public key (2048-bit or larger, PEM) used to sign payment-decision requests. Keys are immutable per tenant; rotate by registering a new key_id. Returns key_id and registered=true. Use before decide_supplier_payment and use the same tenant/paying wallet for registration and decision. This is not a supplier check, API-key creation or payment authorization. Keep the RSA private key local; a conflicting existing key_id returns a conflict. Inspect and approve the registration fee before calling.
verify_supplier_paymentUse for supplier identity and VAT reconciliation, not the full signed five-gate invoice decision. Reconciles the claimed legal name, company registration number and VAT number against the Irish Companies Registration Office (IE) and the EU VIES VAT service, and returns an advisory RELEASE, REVIEW, BLOCK or INSUFFICIENT_EVIDENCE decision with per-check results and reason codes plus verification_id. Use decide_supplier_payment for the signed invoice/PO/GRN workflow, individual check tools for one check, and get_verification only to retrieve this stored result. This creates a verification and may call external sources; it never executes or authorises a bank payment. Requires explicit x402 service-fee approval or an authorized bearer token; do not automatically retry paid calls.

Schemas: list_tools.

Similar MCP servers

More from io.github.LKennedyShare

Official server.json
{
  "name": "io.github.LKennedyShare/supplier-payment-verifier",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "buyerClient": {
        "install": "pip install supplier-payment-assistant",
        "package": "https://pypi.org/project/supplier-payment-assistant/",
        "quickstart": "https://supplier-payment-verifier-production.up.railway.app/buyers.txt",
        "repository": "https://github.com/LKennedyShare/supplier-payment-assistant",
        "paymentPolicy": "Paid tools disabled by default; operator policy and per-session budget required.",
        "frameworkExtras": [
          "langchain",
          "openai"
        ]
      },
      "freeEntryPoint": {
        "tools": [
          "check_iban",
          "check_vat",
          "check_company"
        ],
        "quickstart": "https://supplier-payment-verifier-production.up.railway.app/buyers.txt",
        "sharedAcross": [
          "REST",
          "MCP"
        ],
        "paidContinuation": "Further checks or an optional full signed invoice decision; explicit spending approval required.",
        "attemptsPerOperationPerIpPerUtcDay": 10
      }
    }
  },
  "title": "Supplier Payment Decision Agent (Ireland)",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://supplier-payment-verifier-production.up.railway.app/mcp/",
      "type": "streamable-http"
    }
  ],
  "version": "0.6.0",
  "websiteUrl": "https://github.com/LKennedyShare/supplier-payment-assistant",
  "description": "Free daily IBAN, VIES VAT and CRO checks; paid invoice decisions. x402. Never moves invoice money."
}