{"$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-06T18:46:06.685Z","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill.md","server":{"slug":"io-usefulapi-fastbill","name":"FastBill MCP by usefulapi","registryName":"io.usefulapi/fastbill","description":"Read FastBill customers, invoices, estimates, expenses; create customers, invoices, projects.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"fastbill","type":"remote","identifier":"https://fastbill.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill","version":"1.11.4","transport":null,"scoredAt":"2026-11-06T13:03:13.592Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":-44,"history":[{"date":"2026-11-06","total":18},{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":18},{"date":"2026-10-31","total":65},{"date":"2026-10-30","total":62},{"date":"2026-10-29","total":61},{"date":"2026-10-28","total":61},{"date":"2026-10-27","total":60},{"date":"2026-10-26","total":60}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","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":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"fastbill","type":"remote","identifier":"https://fastbill.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill.md"}],"facts":[{"label":"Endpoint","value":"https://fastbill.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.11.4"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"fastbill_list_customers","title":"List customers","description":"List customers (name, address, e-mail, VAT id, payment terms and bank details as stored in FastBill). Filter by search term (organization, name, address, zip, e-mail or tags), customer number, country or city. customer.get.","inputs":[{"name":"city","type":"string","required":false,"description":null},{"name":"country_code","type":"string","required":false,"description":"ISO 3166 alpha-2 country code, e.g. DE."},{"name":"customer_number","type":"string","required":false,"description":"Exact customer number."},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."},{"name":"term","type":"string","required":false,"description":"Search term matched against organization, first/last name, address, zip code, e-mail and tags."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":188},{"name":"fastbill_get_customer","title":"Get customer","description":"One customer by FastBill customer id. customer.get with CUSTOMER_ID.","inputs":[{"name":"customer_id","type":"integer","required":true,"description":"FastBill customer id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":36},{"name":"fastbill_list_contacts","title":"List contacts","description":"List contact persons of customers (name, position, e-mail, phone). Filter by customer, search term or contact id. contact.get.","inputs":[{"name":"contact_id","type":"integer","required":false,"description":"One contact id."},{"name":"customer_id","type":"integer","required":false,"description":"Only contacts of this customer id."},{"name":"customer_number","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."},{"name":"term","type":"string","required":false,"description":"Search term matched against organization, name, address, zip code, e-mail and tags."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":153},{"name":"fastbill_list_invoices","title":"List invoices","description":"List outgoing invoices, drafts and credit notes with totals, state (draft, unpaid, overdue, paid, canceled), dates and line items. Filter by customer, number, type, date ranges (invoice date, due date, paid date, last update). invoice.get.","inputs":[{"name":"customer_id","type":"integer","required":false,"description":null},{"name":"end_date","type":"string","required":false,"description":"Invoices dated up to this day."},{"name":"end_due_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"end_lastupdate","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"end_paid_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"invoice_number","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."},{"name":"start_date","type":"string","required":false,"description":"Invoices dated on or after this day."},{"name":"start_due_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"start_lastupdate","type":"string","required":false,"description":"Changed on or after this day."},{"name":"start_paid_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"type","type":"string","required":false,"description":"outgoing = finalized invoice, draft, credit = credit note."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":278},{"name":"fastbill_get_invoice","title":"Get invoice","description":"One invoice by FastBill invoice id, with all line items, VAT, payments and the document URL. invoice.get with INVOICE_ID.","inputs":[{"name":"invoice_id","type":"integer","required":true,"description":"FastBill invoice id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":50},{"name":"fastbill_list_recurring_invoices","title":"List recurring invoices","description":"List recurring invoice templates (customer, interval data, totals, items). recurring.get.","inputs":[{"name":"invoice_id","type":"integer","required":false,"description":"One recurring invoice id."},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":100},{"name":"fastbill_list_estimates","title":"List estimates","description":"List estimates (quotes) with state (a created, b sent, c negotiation, d accepted, e rejected, f invoiced), totals and items. estimate.get.","inputs":[{"name":"customer_id","type":"integer","required":false,"description":null},{"name":"end_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"estimate_id","type":"integer","required":false,"description":null},{"name":"estimate_number","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."},{"name":"start_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":155},{"name":"fastbill_list_expenses","title":"List expenses","description":"List expense entries (supplier, category, net/VAT/gross, dates, document URL). Filter by invoice number or date ranges. expense.get.","inputs":[{"name":"end_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"end_paid_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"invoice_id","type":"integer","required":false,"description":null},{"name":"invoice_number","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."},{"name":"start_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"start_paid_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":173},{"name":"fastbill_list_revenues","title":"List revenues","description":"List revenue entries (income booked in FastBill: customer, totals, dates, payments). Takes the same filters as invoices. revenue.get.","inputs":[{"name":"customer_id","type":"integer","required":false,"description":null},{"name":"end_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"end_paid_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"invoice_number","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."},{"name":"start_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"start_paid_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":171},{"name":"fastbill_list_articles","title":"List products","description":"List products and services (article number, type, title, unit price, VAT, unit). article.get.","inputs":[{"name":"article_id","type":"integer","required":false,"description":null},{"name":"article_number","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":106},{"name":"fastbill_list_projects","title":"List projects","description":"List projects (name, customer, hourly rate, VAT, start/end date). project.get.","inputs":[{"name":"customer_id","type":"integer","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."},{"name":"project_id","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":103},{"name":"fastbill_list_time_entries","title":"List time entries","description":"List work time entries (customer, project, date, minutes, billable minutes, comment, invoice). Without filters FastBill returns the latest entries of the current month. time.get.","inputs":[{"name":"customer_id","type":"integer","required":false,"description":null},{"name":"date","type":"string","required":false,"description":"One day."},{"name":"end_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."},{"name":"project_id","type":"integer","required":false,"description":null},{"name":"start_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"time_id","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":167},{"name":"fastbill_list_templates","title":"List document templates","description":"List the invoice/estimate templates (template id, name, hash). Use a template id with the create tools. Ids change whenever a template is edited. template.get.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota."},{"name":"offset","type":"integer","required":false,"description":"Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":103},{"name":"fastbill_create_customer","title":"Create customer","description":"WRITE: create a customer. customer_type is required; a business needs organization, a consumer needs last_name. Bank details are not accepted by this tool. FastBill does not check for duplicates, so search with fastbill_list_customers first. customer.create.","inputs":[{"name":"academic_degree","type":"string","required":false,"description":null},{"name":"address","type":"string","required":false,"description":null},{"name":"address_2","type":"string","required":false,"description":null},{"name":"city","type":"string","required":false,"description":null},{"name":"country_code","type":"string","required":false,"description":"ISO 3166 alpha-2, e.g. DE."},{"name":"currency_code","type":"string","required":false,"description":null},{"name":"customer_number","type":"string","required":false,"description":"Own customer number (FastBill assigns one if omitted)."},{"name":"customer_type","type":"string","required":true,"description":"business or consumer."},{"name":"days_for_payment","type":"integer","required":false,"description":"Days until payment is due (stored with payment_type 1 only)."},{"name":"email","type":"string","required":false,"description":null},{"name":"first_name","type":"string","required":false,"description":null},{"name":"last_name","type":"string","required":false,"description":"Required for a consumer."},{"name":"mobile","type":"string","required":false,"description":null},{"name":"organization","type":"string","required":false,"description":"Company name (required for a business customer)."},{"name":"payment_type","type":"integer","required":false,"description":"1 transfer, 3 cash, 4 PayPal, 5 advance payment, 6 credit card (direct debit needs bank details: set it in FastBill)."},{"name":"phone","type":"string","required":false,"description":null},{"name":"position","type":"string","required":false,"description":null},{"name":"salutation","type":"string","required":false,"description":null},{"name":"tags","type":"string","required":false,"description":"Comma-separated tags."},{"name":"vat_id","type":"string","required":false,"description":"VAT identification number."},{"name":"website","type":"string","required":false,"description":null},{"name":"zipcode","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":321},{"name":"fastbill_update_customer","title":"Update customer","description":"WRITE: update fields of an existing customer; only the fields you pass change. Bank details are not accepted by this tool. customer.update.","inputs":[{"name":"academic_degree","type":"string","required":false,"description":null},{"name":"address","type":"string","required":false,"description":null},{"name":"address_2","type":"string","required":false,"description":null},{"name":"city","type":"string","required":false,"description":null},{"name":"country_code","type":"string","required":false,"description":"ISO 3166 alpha-2, e.g. DE."},{"name":"currency_code","type":"string","required":false,"description":null},{"name":"customer_id","type":"integer","required":true,"description":"FastBill customer id."},{"name":"customer_number","type":"string","required":false,"description":"Own customer number (FastBill assigns one if omitted)."},{"name":"customer_type","type":"string","required":false,"description":null},{"name":"days_for_payment","type":"integer","required":false,"description":"Days until payment is due (stored with payment_type 1 only)."},{"name":"email","type":"string","required":false,"description":null},{"name":"first_name","type":"string","required":false,"description":null},{"name":"last_name","type":"string","required":false,"description":"Required for a consumer."},{"name":"mobile","type":"string","required":false,"description":null},{"name":"organization","type":"string","required":false,"description":"Company name (required for a business customer)."},{"name":"payment_type","type":"integer","required":false,"description":"1 transfer, 3 cash, 4 PayPal, 5 advance payment, 6 credit card (direct debit needs bank details: set it in FastBill)."},{"name":"phone","type":"string","required":false,"description":null},{"name":"position","type":"string","required":false,"description":null},{"name":"salutation","type":"string","required":false,"description":null},{"name":"tags","type":"string","required":false,"description":"Comma-separated tags."},{"name":"vat_id","type":"string","required":false,"description":"VAT identification number."},{"name":"website","type":"string","required":false,"description":null},{"name":"zipcode","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":306},{"name":"fastbill_create_invoice","title":"Create invoice","description":"WRITE: create an invoice for a customer from line items. FastBill stores it as a draft; it gets its number and becomes final only with fastbill_complete_invoice, and it is never sent by this tool. Check the result with fastbill_get_invoice. invoice.create.","inputs":[{"name":"cash_discount_days","type":"integer","required":false,"description":null},{"name":"cash_discount_percent","type":"number","required":false,"description":null},{"name":"contract_reference","type":"string","required":false,"description":null},{"name":"currency_code","type":"string","required":false,"description":null},{"name":"customer_id","type":"integer","required":true,"description":"FastBill customer id (see fastbill_list_customers)."},{"name":"customer_order_reference","type":"string","required":false,"description":null},{"name":"delivery_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"discount_percent","type":"number","required":false,"description":"Document discount in percent."},{"name":"introtext","type":"string","required":false,"description":"Introduction text above the items."},{"name":"invoice_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"invoice_title","type":"string","required":false,"description":null},{"name":"is_gross","type":"boolean","required":false,"description":"True when unit_price values are gross."},{"name":"items","type":"array","required":true,"description":"Line items (1-100)."},{"name":"service_period_end","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"service_period_start","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"template_id","type":"integer","required":false,"description":"Template id from fastbill_list_templates."},{"name":"vat_case","type":"string","required":false,"description":"VAT case (default standard)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":275},{"name":"fastbill_complete_invoice","title":"Finalize invoice","description":"WRITE, NOT REVERSIBLE: turn a draft invoice into a final invoice. FastBill assigns the invoice number and PDF; a final invoice can no longer be edited (it can only be canceled in FastBill). Nothing is sent to the customer. Only call this after the user confirmed the draft. invoice.complete.","inputs":[{"name":"invoice_id","type":"integer","required":true,"description":"FastBill id of the DRAFT invoice."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89},{"name":"fastbill_set_invoice_paid","title":"Mark invoice paid","description":"WRITE: mark a final invoice as paid, with the payment date and method. invoice.setpaid.","inputs":[{"name":"invoice_id","type":"integer","required":true,"description":"FastBill invoice id."},{"name":"paid_date","type":"string","required":false,"description":"Date the payment arrived (default: FastBill's choice, today)."},{"name":"payment_method","type":"string","required":false,"description":"e.g. paypal, cash, bank name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":81},{"name":"fastbill_create_estimate","title":"Create estimate","description":"WRITE: create an estimate (quote) for a customer from line items. It is not sent. estimate.create.","inputs":[{"name":"currency_code","type":"string","required":false,"description":null},{"name":"customer_id","type":"integer","required":true,"description":"FastBill customer id (see fastbill_list_customers)."},{"name":"discount_percent","type":"number","required":false,"description":"Document discount in percent."},{"name":"estimate_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"introtext","type":"string","required":false,"description":"Introduction text above the items."},{"name":"is_gross","type":"boolean","required":false,"description":"True when unit_price values are gross."},{"name":"items","type":"array","required":true,"description":"Line items (1-100)."},{"name":"template_id","type":"integer","required":false,"description":"Template id from fastbill_list_templates."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":144},{"name":"fastbill_create_article","title":"Create product","description":"WRITE: create a product or service (article number, title and unit price are required). article.create.","inputs":[{"name":"article_number","type":"string","required":true,"description":"Unique article number."},{"name":"currency_code","type":"string","required":false,"description":null},{"name":"description","type":"string","required":false,"description":null},{"name":"is_gross","type":"boolean","required":false,"description":"True when unit_price is gross."},{"name":"tags","type":"string","required":false,"description":null},{"name":"title","type":"string","required":true,"description":null},{"name":"type","type":"string","required":false,"description":null},{"name":"unit","type":"string","required":false,"description":null},{"name":"unit_price","type":"number","required":true,"description":null},{"name":"vat_percent","type":"number","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":116},{"name":"fastbill_create_project","title":"Create project","description":"WRITE: create a project for a customer (name and customer are required). project.create.","inputs":[{"name":"currency_code","type":"string","required":false,"description":null},{"name":"customer_id","type":"integer","required":true,"description":"FastBill customer id."},{"name":"end_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"hour_price","type":"number","required":false,"description":"Hourly rate."},{"name":"project_name","type":"string","required":true,"description":null},{"name":"start_date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"vat_percent","type":"number","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":103},{"name":"fastbill_create_time_entry","title":"Create time entry","description":"WRITE: book a work time entry on a project (customer, project and start time are required). time.create.","inputs":[{"name":"article_id","type":"integer","required":false,"description":"The service (article id) of the entry."},{"name":"billable_minutes","type":"integer","required":false,"description":null},{"name":"comment","type":"string","required":false,"description":null},{"name":"customer_id","type":"integer","required":true,"description":null},{"name":"date","type":"string","required":false,"description":"A date, yyyy-mm-dd."},{"name":"end_time","type":"string","required":false,"description":"Date and time, YYYY-MM-DD hh:mm:ss."},{"name":"minutes","type":"integer","required":false,"description":"Duration in minutes (not calculated from the times)."},{"name":"project_id","type":"integer","required":true,"description":null},{"name":"start_time","type":"string","required":true,"description":"Date and time, YYYY-MM-DD hh:mm:ss."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":148}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T13:03:13.000Z","track":"remote","endpoint":"https://fastbill.usefulapi.io/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"fastbill.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-26","recent":[{"id":"chg_01a1afbd-5977-7408-bad3-b6dbca4cdec5","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a1afbd-5977-7408-bad3-b6dbca4cdec5"},{"id":"chg_01a19609-76ef-7cc1-931b-7091353ed7f3","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a19609-76ef-7cc1-931b-7091353ed7f3"},{"id":"chg_01a19609-76f0-7def-9893-5fa76bda3f04","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a19609-76f0-7def-9893-5fa76bda3f04"},{"id":"chg_01a19609-76f1-775b-a851-ec640f981c64","kind":"check.unverifiable","summary":"Stability (0.17 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a19609-76f1-775b-a851-ec640f981c64"},{"id":"chg_01a19609-76f1-7d4d-bf7c-1c91237fad2a","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a19609-76f1-7d4d-bf7c-1c91237fad2a"},{"id":"chg_01a19609-76f2-7367-aa51-740f9674d867","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a19609-76f2-7367-aa51-740f9674d867"},{"id":"chg_01a19609-76f2-79ec-af5c-32b0d6843807","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a19609-76f2-79ec-af5c-32b0d6843807"},{"id":"chg_01a19609-76f3-709a-9da1-78b8efd4e1c6","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a19609-76f3-709a-9da1-78b8efd4e1c6"},{"id":"chg_01a19609-76f3-7866-8fb4-3c75a0899f69","kind":"score.total_changed","summary":"Trust score (65 → 18)","materiality":"functional","direction":"regression","scoreDelta":-47,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a19609-76f3-7866-8fb4-3c75a0899f69"},{"id":"chg_01a193fd-f7d9-7bbd-9bd2-9171cfdb74fd","kind":"check.verdict","summary":"Authorization (partial → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7d9-7bbd-9bd2-9171cfdb74fd"},{"id":"chg_01a193fd-f7da-7748-b1f2-299c39ee26ef","kind":"check.verdict","summary":"MCP protocol (fail → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7da-7748-b1f2-299c39ee26ef"},{"id":"chg_01a193fd-f7da-7e9b-9808-f23ed8c4c00f","kind":"prompt.added","summary":"New prompt “draft_an_invoice_from_a_job”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7da-7e9b-9808-f23ed8c4c00f"},{"id":"chg_01a193fd-f7db-754f-aac2-3de2642cdd9c","kind":"prompt.added","summary":"New prompt “finalize_a_checked_draft”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7db-754f-aac2-3de2642cdd9c"},{"id":"chg_01a193fd-f7db-7bc3-a4bf-8b3ed53e4136","kind":"prompt.added","summary":"New prompt “find_overdue_invoices_and_who_owes_them”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7db-7bc3-a4bf-8b3ed53e4136"},{"id":"chg_01a193fd-f7dc-71de-a55b-8b69b416dd96","kind":"prompt.added","summary":"New prompt “log_billable_time_on_a_project”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7dc-71de-a55b-8b69b416dd96"},{"id":"chg_01a193fd-f7dc-7859-bc58-2a9e1357772f","kind":"prompt.added","summary":"New prompt “record_a_payment”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7dc-7859-bc58-2a9e1357772f"},{"id":"chg_01a193fd-f7dc-7de3-9ad8-642217bf24b4","kind":"prompt.added","summary":"New prompt “review_last_month_s_expenses_and_revenue”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7dc-7de3-9ad8-642217bf24b4"},{"id":"chg_01a193fd-f7dd-7471-a743-f9823647809e","kind":"server.version_changed","summary":"Server version (1.7.0 → 1.9.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7dd-7471-a743-f9823647809e"},{"id":"chg_01a193fd-f7dd-7a49-b8a5-48274d5d6167","kind":"protocol.version_changed","summary":"MCP protocol version (2025-06-18 → 2025-11-25)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7dd-7a49-b8a5-48274d5d6167"},{"id":"chg_01a193fd-f7de-70d5-ac66-ab12a6db584a","kind":"score.total_changed","summary":"Trust score (62 → 65)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill#chg-chg_01a193fd-f7de-70d5-ac66-ab12a6db584a"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill","markdown":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-fastbill/fastbill.xml","external":[{"label":"Remote endpoint","href":"https://fastbill.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/fastbill/"}]}}