Parseo MCP by usefulapi

Upload invoices for OCR; read, export and correct extracted invoices in Parseo.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
94%
Integridad del esquema
84%
Calidad de los nombres
100%
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

~4,910Tokens (definiciones de herramientas)
~1.6 KBTamaño de respuesta típico
Impacto significativo en la atención (3.84% 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": {
    "parseo": {
      "url": "https://parseo.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://parseo.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (23)

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

Show the team, plan, scopes and rate limit of the API key in use. Good first call to check that the key works. Parseo: GET /me.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_get_credit_balance

Show the credit balance, the low-balance threshold and this billing cycle's usage. Jobs with awaiting_credits wait for this balance to rise. Parseo: GET /me/credits.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_get_quota

Show credits, plan limits and current usage in one reply. Parseo: GET /me/quota.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_get_usage(days)

Show invoice usage per day for the last N days (1-90). Parseo: GET /usage.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "days": {
      "description": "Trailing days to aggregate (1-90).",
      "type": "integer",
      "minimum": 1,
      "maximum": 90
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_list_invoices(status, direction, exported, changed_since_export, is_export_valid, ...)

List invoices of the client in use, with filters for status, direction, export state, dates, amounts and names. The list omits line items: fetch one invoice for its full content. Requires invoice:read. Parseo: GET /invoices.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Processing status.",
      "type": "string",
      "enum": [
        "queued",
        "awaiting_credits",
        "processing",
        "processed",
        "failed"
      ]
    },
    "direction": {
      "description": "purchase = incoming bill, sale = outgoing invoice.",
      "type": "string",
      "enum": [
        "purchase",
        "sale"
      ]
    },
    "exported": {
      "description": "false = invoices nobody has exported yet (an import queue).",
      "type": "boolean"
    },
    "changed_since_export": {
      "description": "true = exported invoices corrected after their export.",
      "type": "boolean"
    },
    "is_export_valid": {
      "description": "true = only invoices that pass export validation.",
      "type": "boolean"
    },
    "created_from": {
      "description": "Created at or after this time.",
      "type": "string",
      "minLength": 10,
      "maxLength": 40
    },
    "created_to": {
      "description": "Created at or before this time.",
      "type": "string",
      "minLength": 10,
      "maxLength": 40
    },
    "contact_id": {
      "description": "Only invoices with this contact (con_...).",
      "type": "string",
      "pattern": "^con_[A-Za-z0-9_-]{1,80}$"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "description": "ISO 4217 code, for example EUR."
    },
    "total_min": {
      "description": "Total amount at or above this value.",
      "type": "number"
    },
    "total_max": {
      "description": "Total amount at or below this value.",
      "type": "number"
    },
    "invoice_number": {
      "description": "Exact invoice number, or 'prefix:ABC' for a prefix match.",
      "type": "string",
      "maxLength": 200
    },
    "seller_name": {
      "description": "Part of the seller name (case-insensitive).",
      "type": "string",
      "maxLength": 200
    },
    "buyer_name": {
      "description": "Part of the buyer name (case-insensitive).",
      "type": "string",
      "maxLength": 200
    },
    "sort": {
      "description": "Sort order.",
      "type": "string",
      "enum": [
        "createdAt:asc",
        "createdAt:desc",
        "invoiceDate:asc",
        "invoiceDate:desc",
        "totalAmount:asc",
        "totalAmount:desc"
      ]
    },
    "expand": {
      "description": "'seller', 'buyer' or 'seller,buyer': replace contact ids with contact objects.",
      "type": "string",
      "maxLength": 20
    },
    "limit": {
      "description": "Items per page (1-200).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "Cursor from the previous page (pagination.nextCursor).",
      "type": "string",
      "maxLength": 2000
    },
    "client_id": {
      "description": "Client id (cl_...) for a team-wide key. Omit it to use the client set at login.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_get_invoice(invoice_id, fields, expand, client_id)

Get one invoice with its extracted data, line items, export block and assignment status. Use it after a job completes (invoiceId). Requires invoice:read. Parseo: GET /invoices/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "pattern": "^inv_[A-Za-z0-9_-]{1,80}$",
      "description": "Invoice id (inv_...), from the job or the list."
    },
    "fields": {
      "description": "Comma-separated top-level fields to return, for example id,status,totalAmount.",
      "type": "string",
      "maxLength": 500
    },
    "expand": {
      "description": "'seller', 'buyer' or 'seller,buyer': replace contact ids with contact objects.",
      "type": "string",
      "maxLength": 20
    },
    "client_id": {
      "description": "Client id (cl_...) for a team-wide key. Omit it to use the client set at login.",
      "type": "string"
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_get_invoice_status(invoice_id, client_id)

Get the processing status of one invoice (queued, processing, processed or failed). Requires invoice:read. Parseo: GET /invoices/{id}/status.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "pattern": "^inv_[A-Za-z0-9_-]{1,80}$",
      "description": "Invoice id (inv_...)."
    },
    "client_id": {
      "description": "Client id (cl_...) for a team-wide key. Omit it to use the client set at login.",
      "type": "string"
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_export_invoice(invoice_id, format, client_id)

Export one invoice as JSON (default), XML, or an accounting-system format (for example rivile, odoo, b1). Non-JSON formats return the text in 'body'. Fetching does not mark the invoice as exported. Requires invoice:export. Parseo: GET /invoices/{id}/export.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "pattern": "^inv_[A-Za-z0-9_-]{1,80}$",
      "description": "Invoice id (inv_...)."
    },
    "format": {
      "description": "Export format. Default json.",
      "type": "string",
      "enum": [
        "json",
        "xml",
        "rivile",
        "finvalda",
        "centas",
        "agnum",
        "pragma_4",
        "b1",
        "directo",
        "odoo",
        "optimum"
      ]
    },
    "client_id": {
      "description": "Client id (cl_...) for a team-wide key. Omit it to use the client set at login.",
      "type": "string"
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_list_jobs(status, client_id, created_from, created_to, limit, ...)

List upload jobs with their status (processing, awaiting_credits, completed, failed). Use it to find a job that has no invoice yet. Parseo: GET /jobs.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "processing",
        "awaiting_credits",
        "completed",
        "failed"
      ]
    },
    "client_id": {
      "description": "Only jobs of this client (cl_... id).",
      "type": "string",
      "maxLength": 100
    },
    "created_from": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40,
      "description": "ISO 8601 timestamp, for example 2026-10-01T00:00:00Z."
    },
    "created_to": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40,
      "description": "ISO 8601 timestamp, for example 2026-10-01T00:00:00Z."
    },
    "limit": {
      "description": "Items per page (1-100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "cursor": {
      "description": "Cursor from the previous page (pagination.nextCursor).",
      "type": "string",
      "maxLength": 2000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_get_job(job_id)

Get one upload job. Poll it until status is completed (invoiceId is set), failed (error is set) or awaiting_credits (parked until credits arrive, not an error). Parseo: GET /jobs/{jobId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "pattern": "^job_[A-Za-z0-9_-]{1,80}$",
      "description": "Job id (job_...), from the upload reply."
    }
  },
  "required": [
    "job_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_list_clients(limit, cursor)

List the clients (end customers) of the team. Each client has an id (cl_...) for X-Client-Id. Requires client:read. Parseo: GET /clients.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Items per page (1-200).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "Cursor from the previous page (pagination.nextCursor).",
      "type": "string",
      "maxLength": 2000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_get_client(client_id)

Get one client with its company details. Requires client:read. Parseo: GET /clients/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "pattern": "^cl_[A-Za-z0-9_-]{1,80}$",
      "description": "Client id (cl_...)."
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_list_contacts(client_id, limit, cursor)

List buyer and supplier contacts, optionally for one client. Requires contact:read. Parseo: GET /contacts.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "description": "Only contacts of this client (cl_... id).",
      "type": "string",
      "maxLength": 100
    },
    "limit": {
      "description": "Items per page (1-200).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "Cursor from the previous page (pagination.nextCursor).",
      "type": "string",
      "maxLength": 2000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_get_contact(contact_id)

Get one contact (buyer or supplier). Requires contact:read. Parseo: GET /contacts/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "string",
      "pattern": "^con_[A-Za-z0-9_-]{1,80}$",
      "description": "Contact id (con_...)."
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢parseo_list_audit_logs(api_key_id, action, resource_type, created_from, created_to, ...)

Query the team audit log: who did what, and when (for example invoice.created or api_key.rotated). Requires audit:read. Parseo: GET /audit-logs.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "api_key_id": {
      "description": "Only actions of this API key (ak_... id).",
      "type": "string",
      "maxLength": 100
    },
    "action": {
      "description": "Exact action name, for example invoice.created.",
      "type": "string",
      "maxLength": 100
    },
    "resource_type": {
      "type": "string",
      "enum": [
        "invoice",
        "contact",
        "api-key",
        "webhook",
        "client"
      ]
    },
    "created_from": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40,
      "description": "ISO 8601 timestamp, for example 2026-10-01T00:00:00Z."
    },
    "created_to": {
      "type": "string",
      "minLength": 10,
      "maxLength": 40,
      "description": "ISO 8601 timestamp, for example 2026-10-01T00:00:00Z."
    },
    "limit": {
      "description": "Items per page (1-200).",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "Cursor from the previous page (pagination.nextCursor).",
      "type": "string",
      "maxLength": 2000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴parseo_upload_invoice(filename, file_base64, direction, partner_invoice_id, idempotency_key, ...)

Upload one invoice file (PDF, PNG, JPG or WebP, up to 7.5 MB) for OCR. It returns a job at once (HTTP 202); the invoice exists only after the job completes. Uses credits. Pass the same idempotency_key to retry safely. Requires invoice:write. Parseo: POST /invoices.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "filename": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[^/\\\\\\x00-\\x1f]+$"
    },
    "file_base64": {
      "type": "string",
      "minLength": 4,
      "maxLength": 10000000,
      "description": "The file's bytes, base64-encoded."
    },
    "direction": {
      "description": "purchase = incoming bill, sale = outgoing invoice. Leave it out to use Parseo's default.",
      "type": "string",
      "enum": [
        "purchase",
        "sale"
      ]
    },
    "partner_invoice_id": {
      "description": "Your own id for this invoice, stored in metadata.partnerInvoiceId.",
      "type": "string",
      "maxLength": 200
    },
    "idempotency_key": {
      "description": "Retry key: send the same key on a retry of the same upload. Parseo keeps the first result for 24 hours.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._:-]{1,200}$"
    },
    "client_id": {
      "description": "Client id (cl_...) for a team-wide key. Omit it to use the client set at login.",
      "type": "string"
    }
  },
  "required": [
    "filename",
    "file_base64"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴parseo_upload_invoices_batch(files, idempotency_key, client_id)

Upload up to 10 invoice files in one call (PDF, PNG, JPG or WebP, up to 7.5 MB each). Each result has its own jobId and status. Uses credits. Pass the same idempotency_key to retry safely. Requires invoice:write. Parseo: POST /invoices/batch.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "files": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[^/\\\\\\x00-\\x1f]+$"
          },
          "file_base64": {
            "type": "string",
            "minLength": 4,
            "maxLength": 10000000,
            "description": "The file's bytes, base64-encoded."
          }
        },
        "required": [
          "filename",
          "file_base64"
        ]
      },
      "description": "1-10 files."
    },
    "idempotency_key": {
      "description": "Retry key: send the same key on a retry of the same upload. Parseo keeps the first result for 24 hours.",
      "type": "string",
      "pattern": "^[A-Za-z0-9._:-]{1,200}$"
    },
    "client_id": {
      "description": "Client id (cl_...) for a team-wide key. Omit it to use the client set at login.",
      "type": "string"
    }
  },
  "required": [
    "files"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡parseo_update_invoice(invoice_id, invoice_number, invoice_series, invoice_date, due_date, ...)

Correct the extracted fields of one invoice. Send only the fields to change; a changed exported invoice shows changedSinceExport. Requires invoice:write. Parseo: PATCH /invoices/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "pattern": "^inv_[A-Za-z0-9_-]{1,80}$",
      "description": "Invoice id (inv_...)."
    },
    "invoice_number": {
      "type": "string",
      "maxLength": 200
    },
    "invoice_series": {
      "type": "string",
      "maxLength": 100
    },
    "invoice_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "due_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "description": "ISO 4217 code, for example EUR."
    },
    "direction": {
      "type": "string",
      "enum": [
        "purchase",
        "sale"
      ]
    },
    "subtotal": {
      "type": "number"
    },
    "total_amount": {
      "type": "number"
    },
    "amount_due": {
      "type": "number"
    },
    "seller_contact_id": {
      "type": "string",
      "pattern": "^con_[A-Za-z0-9_-]{1,80}$"
    },
    "buyer_contact_id": {
      "type": "string",
      "pattern": "^con_[A-Za-z0-9_-]{1,80}$"
    },
    "metadata": {
      "description": "Your own key-value data, stored with the invoice.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "client_id": {
      "description": "Client id (cl_...) for a team-wide key. Omit it to use the client set at login.",
      "type": "string"
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡parseo_mark_invoice_exported(invoice_id, external_reference, client_id)

Record that your system imported this invoice, so it leaves the export queue (exported=false). Repeat calls do not add exports. Use it only after your import succeeded. Requires invoice:export. Parseo: POST /invoices/{id}/exported.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "pattern": "^inv_[A-Za-z0-9_-]{1,80}$",
      "description": "Invoice id (inv_...)."
    },
    "external_reference": {
      "description": "Your own id for the imported document, for example ERP-2026-00412.",
      "type": "string",
      "maxLength": 200
    },
    "client_id": {
      "description": "Client id (cl_...) for a team-wide key. Omit it to use the client set at login.",
      "type": "string"
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴parseo_create_client(name, description, company_registration_number, vat_number, address, ...)

Create a client (an end customer of your team). Use its id (cl_...) as client_id on invoice calls. Requires client:write. Parseo: POST /clients.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Client name."
    },
    "description": {
      "type": "string",
      "maxLength": 1000
    },
    "company_registration_number": {
      "type": "string",
      "maxLength": 100
    },
    "vat_number": {
      "type": "string",
      "maxLength": 100
    },
    "address": {
      "type": "string",
      "maxLength": 500
    },
    "email": {
      "type": "string",
      "maxLength": 200
    },
    "phone": {
      "type": "string",
      "maxLength": 100
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡parseo_update_client(client_id, name, description, company_registration_number, vat_number, ...)

Change the details of one client. Send only the fields to change. Requires client:write. Parseo: PATCH /clients/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "pattern": "^cl_[A-Za-z0-9_-]{1,80}$",
      "description": "Client id (cl_...)."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 1000
    },
    "company_registration_number": {
      "type": "string",
      "maxLength": 100
    },
    "vat_number": {
      "type": "string",
      "maxLength": 100
    },
    "address": {
      "type": "string",
      "maxLength": 500
    },
    "email": {
      "type": "string",
      "maxLength": 200
    },
    "phone": {
      "type": "string",
      "maxLength": 100
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴parseo_create_contact(client_id, name, company_id, vat_id, email, ...)

Create a buyer or supplier contact for one client. Requires contact:write. Parseo: POST /contacts.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "pattern": "^cl_[A-Za-z0-9_-]{1,80}$",
      "description": "The client this contact belongs to (cl_...)."
    },
    "name": {
      "type": "string",
      "maxLength": 200
    },
    "company_id": {
      "description": "Company registration id.",
      "type": "string",
      "maxLength": 100
    },
    "vat_id": {
      "type": "string",
      "maxLength": 100
    },
    "email": {
      "type": "string",
      "maxLength": 200
    },
    "phone": {
      "type": "string",
      "maxLength": 100
    },
    "address": {
      "type": "string",
      "maxLength": 500
    },
    "party_type": {
      "type": "string",
      "enum": [
        "individual",
        "company"
      ]
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡parseo_update_contact(contact_id, name, company_id, vat_id, email, ...)

Change the details of one contact. Send only the fields to change. Requires contact:write. Parseo: PATCH /contacts/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "string",
      "pattern": "^con_[A-Za-z0-9_-]{1,80}$",
      "description": "Contact id (con_...)."
    },
    "name": {
      "type": "string",
      "maxLength": 200
    },
    "company_id": {
      "description": "Company registration id.",
      "type": "string",
      "maxLength": 100
    },
    "vat_id": {
      "type": "string",
      "maxLength": 100
    },
    "email": {
      "type": "string",
      "maxLength": 200
    },
    "phone": {
      "type": "string",
      "maxLength": 100
    },
    "address": {
      "type": "string",
      "maxLength": 500
    },
    "party_type": {
      "type": "string",
      "enum": [
        "individual",
        "company"
      ]
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada23 herramientas