InvoiceBloom

Create, send and track invoices for freelancers and small businesses.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
98%
Integridad del esquema
81%
Calidad de los nombres
98%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,237Tokens (definiciones de herramientas)
~1.5 KBTamaño de respuesta típico
Impacto moderado en la atención (1.75% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "invoicebloom": {
      "url": "https://invoicebloom.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://invoicebloom.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (11)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢get_account

Returns the signed-in user's profile: business name, address, saved payment instructions, whether their email is confirmed (required before sending invoices), whether they can take card payments, and client/invoice counts. Call this first to know who you are acting for.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "required": [],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_clients(query)

Lists the user's clients (people or companies they invoice), optionally filtered by a search term matched against name, email and company. Use it to find a client_id before creating an invoice.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional case-insensitive search across name, email and company name."
    }
  },
  "required": [],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_client(name, email, company_name, address, phone, ...)

Creates a new client to invoice. Name and email are required; the email is where invoices are sent. Check list_clients first so you do not create duplicates.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Contact name, up to 100 characters."
    },
    "email": {
      "type": "string",
      "description": "Email address invoices will be sent to."
    },
    "company_name": {
      "type": "string"
    },
    "address": {
      "type": "string",
      "description": "Postal address, printed on invoices."
    },
    "phone": {
      "type": "string"
    },
    "notes": {
      "type": "string",
      "description": "Private notes, never shown to the client."
    }
  },
  "required": [
    "name",
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡update_client(client_id, name, email, company_name, address, ...)

Updates an existing client's details. Only the fields you pass are changed.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "integer"
    },
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "company_name": {
      "type": "string"
    },
    "address": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "notes": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "inactive"
      ]
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_invoices(status, client_id, overdue_only, limit)

Lists the user's invoices, newest first, without line items. Filter by status (draft, sent, paid), by client, or overdue_only for unpaid invoices past their due date (there is no 'overdue' status; use overdue_only). Use get_invoice for full detail.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "sent",
        "paid"
      ]
    },
    "client_id": {
      "type": "integer"
    },
    "overdue_only": {
      "type": "boolean",
      "description": "Only unpaid invoices whose due date has passed."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Defaults to 25."
    }
  },
  "required": [],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_invoice(invoice_id)

Returns one invoice with its line items, totals, status, the client it is for, a public_url the client can open, and a payment link if one exists.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer"
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_invoice(client_id, client_email, line_items, date, due_date, ...)

Creates a draft invoice with line items for an existing client. Identify the client by client_id or client_email (must already exist; use create_client otherwise). Totals are computed server-side: subtotal + tax% + late_fee. Nothing is emailed until you call send_invoice. Returns the invoice, including its invoice_number and public_url.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "integer",
      "description": "ID from list_clients."
    },
    "client_email": {
      "type": "string",
      "description": "Alternative to client_id: email of an existing client."
    },
    "line_items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "What was delivered, e.g. 'Logo design'."
          },
          "quantity": {
            "type": "number",
            "description": "Quantity, greater than 0."
          },
          "unit": {
            "type": "string",
            "description": "Unit label such as 'hours', 'days' or 'units'. Defaults to 'units'."
          },
          "rate": {
            "type": "number",
            "description": "Price per unit."
          }
        },
        "required": [
          "description",
          "quantity",
          "rate"
        ]
      },
      "minItems": 1,
      "description": "At least one line item."
    },
    "date": {
      "type": "string",
      "description": "Invoice date, YYYY-MM-DD. Defaults to today."
    },
    "due_date": {
      "type": "string",
      "description": "Due date, YYYY-MM-DD. Defaults to 30 days from today."
    },
    "tax": {
      "type": "number",
      "description": "Tax as a percentage of the subtotal, e.g. 8.5. Omit for no tax."
    },
    "late_fee": {
      "type": "number",
      "description": "Flat late fee amount added to the total. Omit for none."
    },
    "theme": {
      "type": "string",
      "enum": [
        "minimal",
        "classic",
        "modern",
        "creative",
        "freelancer",
        "contractor",
        "consultant"
      ],
      "description": "Visual template. Defaults to 'minimal'."
    },
    "terms": {
      "type": "string",
      "description": "Payment terms text, e.g. 'Net 30'."
    },
    "payment_instructions": {
      "type": "string",
      "description": "How to pay (bank details etc.). Defaults to the user's saved instructions."
    },
    "business_name": {
      "type": "string",
      "description": "Override the sender name printed on this invoice."
    },
    "business_address": {
      "type": "string",
      "description": "Override the sender address printed on this invoice."
    }
  },
  "required": [
    "line_items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡update_invoice(invoice_id, client_id, client_email, line_items, date, ...)

Updates an invoice. Only fields you pass change. If you pass line_items, they REPLACE the existing line items entirely, so include every item that should remain. Works on draft and sent invoices; re-send with send_invoice if the client needs the new version.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer"
    },
    "client_id": {
      "type": "integer"
    },
    "client_email": {
      "type": "string"
    },
    "line_items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "What was delivered, e.g. 'Logo design'."
          },
          "quantity": {
            "type": "number",
            "description": "Quantity, greater than 0."
          },
          "unit": {
            "type": "string",
            "description": "Unit label such as 'hours', 'days' or 'units'. Defaults to 'units'."
          },
          "rate": {
            "type": "number",
            "description": "Price per unit."
          }
        },
        "required": [
          "description",
          "quantity",
          "rate"
        ]
      },
      "description": "Full replacement list of line items."
    },
    "date": {
      "type": "string",
      "description": "Invoice date, YYYY-MM-DD. Defaults to today."
    },
    "due_date": {
      "type": "string",
      "description": "Due date, YYYY-MM-DD. Defaults to 30 days from today."
    },
    "tax": {
      "type": "number",
      "description": "Tax as a percentage of the subtotal, e.g. 8.5. Omit for no tax."
    },
    "late_fee": {
      "type": "number",
      "description": "Flat late fee amount added to the total. Omit for none."
    },
    "theme": {
      "type": "string",
      "enum": [
        "minimal",
        "classic",
        "modern",
        "creative",
        "freelancer",
        "contractor",
        "consultant"
      ],
      "description": "Visual template. Defaults to 'minimal'."
    },
    "terms": {
      "type": "string",
      "description": "Payment terms text, e.g. 'Net 30'."
    },
    "payment_instructions": {
      "type": "string",
      "description": "How to pay (bank details etc.). Defaults to the user's saved instructions."
    },
    "business_name": {
      "type": "string",
      "description": "Override the sender name printed on this invoice."
    },
    "business_address": {
      "type": "string",
      "description": "Override the sender address printed on this invoice."
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡send_invoice(invoice_id)

Emails the invoice (with a PDF attached) to the client's email address and marks it as sent. This contacts a real person: confirm with the user before calling. Requires at least one line item and a confirmed user email. If the user takes card payments, a Stripe payment link is added first.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer"
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪mark_invoice_paid(invoice_id)

Marks an invoice as paid, for payments received outside InvoiceBloom (bank transfer, cash, cheque). Card payments through the payment link are recorded automatically.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer"
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴delete_invoice(invoice_id)

Permanently deletes an invoice and its line items. Cannot be undone. Confirm with the user before calling; prefer leaving paid invoices in place for their records.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer"
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada11 herramientas