protogrid

Search / io.github.EarthyPunyapat/invoiceflow

InvoiceFlow

R1· needs a key

Create invoices, clients, and Stripe payment links from any agent. 7 tools. No email or deletes.

v1.0.0 · active · repository · website · descriptor JSON · versions

An agent can connect on its own if it already holds INVOICEFLOW_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality73new
Trust97of 100
Uptime, 30 days100%
Latency p50383 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "invoiceflow": {
      "type": "http",
      "url": "https://invoiceflow-ten-azure.vercel.app/api/mcp",
      "headers": {
        "Authorization": "Bearer ${INVOICEFLOW_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http invoiceflow https://invoiceflow-ten-azure.vercel.app/api/mcp --header "Authorization: Bearer ${INVOICEFLOW_TOKEN}"
[mcp_servers.invoiceflow]
url = "https://invoiceflow-ten-azure.vercel.app/api/mcp"
bearer_token_env_var = "INVOICEFLOW_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "invoiceflow": {
      "type": "remote",
      "url": "https://invoiceflow-ten-azure.vercel.app/api/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:INVOICEFLOW_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "invoiceflow": {
      "type": "http",
      "url": "https://invoiceflow-ten-azure.vercel.app/api/mcp",
      "headers": {
        "Authorization": "Bearer ${INVOICEFLOW_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=invoiceflow&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vaW52b2ljZWZsb3ctdGVuLWF6dXJlLnZlcmNlbC5hcHAvYXBpL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke0lOVk9JQ0VGTE9XX1RPS0VOfSJ9fQ%3D%3D"
}
{
  "servers": {
    "invoiceflow": {
      "type": "http",
      "url": "https://invoiceflow-ten-azure.vercel.app/api/mcp",
      "headers": {
        "Authorization": "Bearer ${INVOICEFLOW_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "invoiceflow": {
      "httpUrl": "https://invoiceflow-ten-azure.vercel.app/api/mcp",
      "headers": {
        "Authorization": "Bearer ${INVOICEFLOW_TOKEN}"
      }
    }
  }
}
extensions:
  "invoiceflow":
    enabled: true
    name: "invoiceflow"
    type: streamable_http
    uri: "https://invoiceflow-ten-azure.vercel.app/api/mcp"
    headers:
      "Authorization": "Bearer ${INVOICEFLOW_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${INVOICEFLOW_TOKEN}. The registry never accepts secret values.

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: invoiceflow_create_client (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); invoiceflow_list_clients (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); invoiceflow_share_invoice (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 865 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 5 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 865 tokens to load them all · tool set e7be4e915682 · tools last changed 2026-11-04 · checked 2026-11-07 18:35 UTC

Tool changes

  • invoiceflow_share_invoicechangeddescriptionmeaning changed
    before

    Get the payable Stripe Checkout link for an invoice. This is what you give a human so they can actually pay. Does not email anyone.

    after · 33% of words in common

    Get the public payment page link for an invoice that is SENT or OVERDUE (drafts cannot be shared). The page shows a Pay button when the account owner has connected Stripe. Does not email anyone.

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 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-6d-ago

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://invoiceflow-ten-azure.vercel.app/api/mcp streamable-httpapi_key ${INVOICEFLOW_TOKEN}yes100%383 ms2025-11-252026-11-07

Tools (7)

invoiceflow_create_clientCreate a customer record. A client is required before an invoice can be created. Returns the new client id.
invoiceflow_create_invoiceCreate a DRAFT invoice for an existing client. Amounts are INTEGER CENTS: unitPrice 25000 means $250.00, not $25,000. Do not send totals - the server derives subtotal and total from the line items. Does not email anyone.
invoiceflow_get_invoiceFetch one invoice by id, including line items and derived totals.
invoiceflow_list_clientsList existing clients. Use this before create_client to avoid making duplicate customer records.
invoiceflow_list_invoicesList invoices with their status and totals. Invoices belonging to other accounts are not visible and return as absent, not as errors.
invoiceflow_share_invoiceGet the public payment page link for an invoice that is SENT or OVERDUE (drafts cannot be shared). The page shows a Pay button when the account owner has connected Stripe. Does not email anyone.
invoiceflow_whoamiCheck which InvoiceFlow account this key belongs to and that the key works. Call this first; it is the cheapest way to fail early.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.EarthyPunyapat/invoiceflow",
  "title": "InvoiceFlow",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://invoiceflow-ten-azure.vercel.app/api/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Bearer token: `Bearer ifk_...` where ifk_... is an InvoiceFlow API key. Without it the server lists tools but every call explains what is missing."
        }
      ]
    }
  ],
  "version": "1.0.0",
  "repository": {
    "url": "https://github.com/EarthyPunyapat/invoiceflow",
    "source": "github"
  },
  "websiteUrl": "https://invoiceflow-ten-azure.vercel.app",
  "description": "Create invoices, clients, and Stripe payment links from any agent. 7 tools. No email or deletes."
}