Tolteck API and MCP server Let your AI agent write the quote and chase the invoice.

Tolteck publishes no public API and has no official MCP server (checked 14 Nov 2026). Cotlet runs a hosted Tolteck MCP server with 13 tools that ChatGPT and Claude use in your own Tolteck account. Emails to your clients and credit notes wait for your OK.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Tolteck
Tolteck logo Tolteck Cloud Browser

13 tools Read and write

Quotes and invoices

What can your AI agent do in Tolteck? The paperwork a tradesperson does after the day on site.

  • Turn a job description into a quote

  • Bill the deposit once a quote is signed

  • Email a quote or invoice to the client

  • Chase the invoices awaiting payment

  • Set paid invoices to "Payée"

  • Add a client from an email signature

No public API, no MCP

Does Tolteck have an MCP server or an API? The official Tolteck routes, checked 14 November 2026.

Tolteck publishes no public API: neither tolteck.com nor its help center documents one. Tolteck has no official MCP server, and the Zapier and n8n directories list no Tolteck app. Data leaves Tolteck as an Excel export or a PDF, made by hand.

  • Tolteck sells one offer with every feature: 25 EUR before tax a month, or 19 EUR a month billed yearly, with a one-month free trial.
  • Quote lines come from your own library of materials, labor and works, with supplier suggestions from Point.P and Cedeo.
  • Tolteck is a Paris-registered company of the Saint-Gobain group, and its screens are in French.
Tolteck by hand and Cotlet compared
What you need Tolteck aloneCotlet
Ask ChatGPT or Claude to do the work No API or MCP server Hosted MCP server
Quotes and deposit invoices By hand, line by line 13 tools, emails after your OK
Unpaid invoice reminders One invoice at a time On request or every week
Run from n8n or a script Excel export only REST, same key

Checked 14 Nov 2026. Sources: Tolteck website · Tolteck pricing · Tolteck legal notice · Help: main features · Help: How to Export Data from Tolteck · Help: unpaid invoice reminders

Set up once

How does the Tolteck MCP server work? The Tolteck MCP server by Cotlet: your agent works in your own Tolteck account.

  1. 1Sign in to Tolteck

    Once, in a browser we host for you.

  2. 2Connect your AI agent

    One address in its settings.

  3. 3Hand it the signed quote

    It bills the deposit, you check the amount.

Your agent works in your own signed-in Cloud Browser. Emails to clients and credit notes wait for your OK. Who can see your session

Any MCP client

How to connect Tolteck to your AI agent

  1. 1

    Sign in to Tolteck in a Cloud Browser. Open tolteck.app in your Cotlet Cloud Browser and sign in with the user who makes your quotes and invoices.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.

  3. 3

    Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.

Tolteck shares the address https://cotlet.dev/mcp/v1 with every other app you turn on, so one connector covers them all. Turned on Tolteck after connecting? Refresh the connector and its 13 tools appear.

ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: tolteck_read
7 read, 6 write

All 13 Tolteck MCP tools

Each tool does what one Tolteck screen does: the "Devis & factures" tab, the client base, your materials library and the dashboard. Reads run at once; sending an email and issuing a credit note ask first.

Quotes and invoices5

Find any devis, facture or avoir with the tab's filters, read its lines and totals, write a new quote or bill a deposit from a signed one.

  • list_documents List the documents of the Quotes & Invoices tab, filtered like the tab. read

    Returns one row per document: id, type, number, site name, client, status, date and total. It reads the same list the tab shows with the same filters, so an unnumbered draft appears without a number. It changes nothing.

    MCP calltolteck_read → list_documents

    REST endpointGET https://cotlet.dev/api/v1/tolteck/documents

    Parameters

    Parameters: list_documents
    NameTypeDescription
    type string string Document type as Tolteck names it: quote (devis), invoice, deposit invoice, interim invoice, progress invoice or credit note (avoir). Omit for all.
    status string string Status as shown in the app, for example Finalisée or Payée. Omit for all.
    from string string Start of the period, YYYY-MM-DD.
    to string string End of the period, YYYY-MM-DD.
    client string string Part of the client name.

    Example response

    {
      "documents": [
        {
          "id": "doc_8f21c4",
          "type": "invoice",
          "number": "F-2026-0017",
          "site": "Rénovation salle de bain",
          "client": "Martin Dupont",
          "status": "Finalisée",
          "date": "2026-10-28",
          "total_ttc": 2400
        },
        {
          "id": "doc_7a90b2",
          "type": "quote",
          "number": "D-2026-0042",
          "site": "Rénovation salle de bain",
          "client": "Martin Dupont",
          "status": "Finalisée",
          "date": "2026-10-10",
          "total_ttc": 4620
        }
      ]
    }
  • get_document Read one quote or invoice with its lines, totals and payment schedule. read

    Returns the header (client, site name, number, status, dates), every line with its quantity and unit price, the totals before and after tax and the deposits listed on the document. It does not download the PDF. It changes nothing.

    MCP calltolteck_read → get_document

    REST endpointGET https://cotlet.dev/api/v1/tolteck/documents/{document_id}

    Parameters

    Parameters: get_document
    NameTypeDescription
    document_id string required string Document id from list_documents.

    Example input

    {
      "document_id": "document_8c41d2"
    }

    Example response

    {
      "id": "doc_7a90b2",
      "type": "quote",
      "number": "D-2026-0042",
      "site": "Rénovation salle de bain",
      "client": "Martin Dupont",
      "status": "Finalisée",
      "lines": [
        {
          "kind": "labor",
          "label": "Main d'œuvre",
          "quantity": 2,
          "unit": "day",
          "unit_price_ht": 320
        },
        {
          "kind": "material",
          "label": "Carrelage et colle",
          "quantity": 1,
          "unit": "lot",
          "unit_price_ht": 3560
        }
      ],
      "total_ht": 4200,
      "vat": 420,
      "total_ttc": 4620
    }
  • create_quote Create a quote for a client with lines and an optional deposit. write

    Returns the quote id, its number and its totals. The quote is saved, not sent: sending is a separate call. Each line is also saved in your materials library, as when you type it by hand. It reaches no one and you can delete it in Tolteck, so it does not wait for your OK.

    MCP calltolteck_write → create_quote

    REST endpointPOST https://cotlet.dev/api/v1/tolteck/clients/{client_id}/quotes

    Parameters

    Parameters: create_quote
    NameTypeDescription
    site_name string required string Name of the site (chantier) the quote belongs to.
    client_id string required string Client id from list_clients or create_client.
    lines array required array Lines as objects: kind (material, labor or work), label, quantity, unit_price_ht.
    deposit_percent number number Deposit as a percentage of the quote. Omit for no deposit.

    Example input

    {
      "site_name": "site name",
      "client_id": "client_8c41d2",
      "lines": "lines"
    }

    Example response

    {
      "document_id": "doc_7a90b2",
      "number": "D-2026-0042",
      "total_ht": 4200,
      "vat": 420,
      "total_ttc": 4620,
      "deposit_ttc": 1386
    }
  • create_deposit_invoice Create a deposit invoice from an existing quote. write

    Does what Actions > Faire une facture d'acompte does on a quote. Returns the invoice id, its number and the amounts. The deposit invoice does not repeat the quote lines. It is created but not sent, and it reaches no one until send_document runs, so it does not wait for your OK.

    MCP calltolteck_write → create_deposit_invoice

    REST endpointPOST https://cotlet.dev/api/v1/tolteck/quotes/{quote_id}/deposit-invoices

    Parameters

    Parameters: create_deposit_invoice
    NameTypeDescription
    quote_id string required string Quote id from list_documents.
    percent number required number Deposit as a percentage of the quote total.

    Example input

    {
      "quote_id": "doc_7a90b2",
      "percent": 30
    }

    Example response

    {
      "document_id": "doc_9d3e51",
      "number": "F-2026-0018",
      "type": "deposit invoice",
      "quote_id": "doc_7a90b2",
      "percent": 30,
      "amount_ht": 1260,
      "vat": 126,
      "amount_ttc": 1386
    }
  • create_credit_note Cancel an invoice in full or in part with a credit note (facture d'avoir). writeAsks first

    Does what Actions > Annuler la facture (full) or Faire une facture d'avoir (partial) does. Returns the credit note number and amount. A credit note is a legal accounting document and stays in your numbering. By default you confirm each call; you can switch that off for this tool.

    MCP calltolteck_write → create_credit_note

    REST endpointPOST https://cotlet.dev/api/v1/tolteck/invoices/{invoice_id}/credit-notes

    Parameters

    Parameters: create_credit_note
    NameTypeDescription
    invoice_id string required string Invoice id from list_documents. It must have been created in Tolteck.
    amount_ttc number number Amount to credit. Omit to cancel the invoice at 100%.

    Example input

    {
      "invoice_id": "invoice_8c41d2"
    }

    Example response

    {
      "document_id": "doc_a41f07",
      "number": "A-2026-0003",
      "type": "credit note",
      "invoice_id": "doc_9d3e51",
      "amount_ttc": 1386
    }

Sending and getting paid3

Email a document from Tolteck, list the "Factures en attente de paiement" and set paid ones to "Payée".

  • send_document Email a quote or invoice to the client from Tolteck. writeAsks first

    Does what Send > Send by email does and returns the recipient and the time. The client replies land in your own mailbox. The email cannot be recalled. By default you confirm each call; you can switch that off for this tool.

    MCP calltolteck_write → send_document

    REST endpointPOST https://cotlet.dev/api/v1/tolteck/documents/{document_id}

    Parameters

    Parameters: send_document
    NameTypeDescription
    document_id string required string Document id from list_documents, create_quote or create_deposit_invoice.
    message string string Text of the email. Omit to use Tolteck's standard text.

    Example input

    {
      "document_id": "document_8c41d2"
    }

    Example response

    {
      "document_id": "doc_8f21c4",
      "number": "F-2026-0017",
      "sent_to": "martin.dupont@example.com",
      "sent_at": "2026-11-14T09:02:00Z"
    }
  • list_unpaid_invoices List finalized invoices that are not paid yet. read

    Returns the same list as Invoices awaiting payment on the dashboard: invoice number, client, amount, issue date and due date. Newest first. A paid invoice leaves the list once it has the status Payée. It changes nothing.

    MCP calltolteck_read → list_unpaid_invoices

    REST endpointGET https://cotlet.dev/api/v1/tolteck/unpaid-invoices

    Parameters

    Parameters: list_unpaid_invoices
    NameTypeDescription
    client string string Part of the client name.

    Example response

    {
      "invoices": [
        {
          "id": "doc_8f21c4",
          "number": "F-2026-0017",
          "client": "Martin Dupont",
          "total_ttc": 2400,
          "issued": "2026-10-28",
          "due": "2026-11-27"
        },
        {
          "id": "doc_6c11e9",
          "number": "F-2026-0012",
          "client": "SCI Les Tilleuls",
          "total_ttc": 960,
          "issued": "2026-09-15",
          "due": "2026-10-15"
        }
      ]
    }
  • mark_invoice_paid Set an invoice to the status Payée. write

    Sets the status Payée. The invoice leaves the unpaid list and counts in your turnover tracking. It reaches no one and you can change the status back in Tolteck, so it does not wait for your OK.

    MCP calltolteck_write → mark_invoice_paid

    REST endpointPOST https://cotlet.dev/api/v1/tolteck/documents/{document_id}/invoice-paid/mark

    Parameters

    Parameters: mark_invoice_paid
    NameTypeDescription
    document_id string required string Invoice id from list_unpaid_invoices.

    Example input

    {
      "document_id": "document_8c41d2"
    }

    Example response

    {
      "document_id": "doc_8f21c4",
      "number": "F-2026-0017",
      "status": "Payée"
    }

Clients3

Search the client base before adding anyone, so no client is created twice.

  • list_clients List the client base of the Clients tab. read

    Returns each client with id, type (individual or company), name, email, phone and city. It shows whether a client already exists, so an agent does not create a duplicate. It changes nothing.

    MCP calltolteck_read → list_clients

    REST endpointGET https://cotlet.dev/api/v1/tolteck/clients

    Parameters

    Parameters: list_clients
    NameTypeDescription
    search string string Part of a name, email or phone.

    Example response

    {
      "clients": [
        {
          "id": "cli_41d7",
          "type": "individual",
          "name": "Martin Dupont",
          "email": "martin.dupont@example.com",
          "phone": "0612345678",
          "city": "Lyon"
        }
      ]
    }
  • get_client Read one client sheet, with its notes and documents. read

    Returns the details of the client sheet (address, phone, email, SIREN or SIRET and VAT number for a company), the notes and the ids of the client's documents. It changes nothing.

    MCP calltolteck_read → get_client

    REST endpointGET https://cotlet.dev/api/v1/tolteck/clients/{client_id}

    Parameters

    Parameters: get_client
    NameTypeDescription
    client_id string required string Client id from list_clients.

    Example input

    {
      "client_id": "client_8c41d2"
    }

    Example response

    {
      "id": "cli_41d7",
      "type": "individual",
      "name": "Martin Dupont",
      "address": "12 rue des Lilas, 69003 Lyon",
      "email": "martin.dupont@example.com",
      "phone": "0612345678",
      "notes": "Key with the neighbor, access by the courtyard",
      "document_ids": [
        "doc_7a90b2",
        "doc_8f21c4"
      ]
    }
  • create_client Create a client sheet. write

    Returns the new client id. Tolteck refuses an email in the wrong format or a phone number with dots, and the error names the field. The sheet reaches no one and you can edit it in the Clients tab, so it does not wait for your OK.

    MCP calltolteck_write → create_client

    REST endpointPOST https://cotlet.dev/api/v1/tolteck/clients

    Parameters

    Parameters: create_client
    NameTypeDescription
    type string required string individual or company.
    name string required string Name of the person or company.
    address string string Postal address.
    email string string Email address, in a valid format.
    phone string string Phone number without dots, for example 0612345678.
    siret string string SIREN or SIRET, for a company.

    Example input

    {
      "type": "type",
      "name": "Jane Doe"
    }

    Example response

    {
      "client_id": "cli_41d7",
      "name": "Martin Dupont",
      "type": "individual",
      "created": true
    }

Library and dashboard2

The materials, labor and works you have quoted before, and the quoted, invoiced and paid figures for a period.

  • list_materials Search your library of materials, labor and works. read

    Returns items from your own library with label, kind and unit price. Tolteck saves every material or work you use in a quote there. Items from supplier price lists you connected appear only if they are in your library. It changes nothing.

    MCP calltolteck_read → list_materials

    REST endpointGET https://cotlet.dev/api/v1/tolteck/materials

    Parameters

    Parameters: list_materials
    NameTypeDescription
    search string string Part of the item name.

    Example response

    {
      "items": [
        {
          "id": "mat_203",
          "kind": "material",
          "label": "Carrelage grès cérame 60x60",
          "unit": "m2",
          "unit_price_ht": 38.5
        },
        {
          "id": "mat_377",
          "kind": "material",
          "label": "Colle carrelage",
          "unit": "bag",
          "unit_price_ht": 24
        }
      ]
    }
  • get_dashboard Read the turnover and activity figures of the dashboard. read

    Returns the figures the dashboard shows for the period, such as quoted, invoiced and paid amounts. Tolteck counts an invoice in turnover once it has the status Payée, so unpaid invoices are not in the paid figure. It changes nothing.

    MCP calltolteck_read → get_dashboard

    REST endpointGET https://cotlet.dev/api/v1/tolteck/dashboard

    Parameters

    Parameters: get_dashboard
    NameTypeDescription
    from string string Start of the period, YYYY-MM-DD.
    to string string End of the period, YYYY-MM-DD.

    Example response

    {
      "from": "2026-10-01",
      "to": "2026-10-31",
      "quoted_ttc": 9180,
      "invoiced_ttc": 6840,
      "paid_ttc": 4440
    }
Encrypted, revocable

Who can see my Tolteck session, and how do I revoke it?

  • What we store

    Your signed-in Tolteck browser profile, AES-256-GCM encrypted, in Finland. Never your password.

  • What your agent gets

    The 13 Tolteck tools. The session cookie stays in the Cloud Browser.

  • What the session sees

    The quotes, invoices and clients your Tolteck user can open, and nothing more.

  • What no tool touches

    Electronic invoicing (Factur-X) and its platform, quote signatures, CEE and MaPrimeRénov' premiums, supplier catalog links, document headers, users and your Tolteck subscription.

  • If Tolteck signs you out

    You sign in again yourself, in the same Cloud Browser.

  • How to cut access

    Disable Tolteck for agents, reset the browser, or change your password.

You type your Tolteck password yourself, and the agent works only in the session that sign-in opens. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

We keep it working

What happens when Tolteck changes? The tools use the same screens you quote and invoice from.

Tolteck updates its screens, for example with the move to electronic invoicing in France. The tools keep working because they go through the pages you use yourself, and Cotlet watches the apps it serves and updates the Tolteck server when a screen changes.

New Tolteck features become available to the agent. It still sees only what your own Tolteck user can see.

Cotlet never sees or stores your password. If Tolteck signs you out, one click in the Cotlet console reopens the Cloud Browser so you can sign in again.

2 tools ask first

Approvals, undo and mistakes Your clients get nothing until you say so.

  1. 01 Find the signed quote list_documents opens it by client or number.
  2. 02 Bill the deposit create_deposit_invoice saves it, not sent.
  3. 03 Show you the amount Before tax, VAT and total, in the chat.
  4. 04 Email after your OK send_document asks first, every time.
Fixing a Tolteck write that went wrong
ActionHow to put it right
Quote saved with a wrong lineNot sent yet: edit or delete it in "Devis & factures"
Invoice set to "Payée" too earlyChange the status back in Tolteck; it returns to the unpaid list
Deposit invoice on the wrong amountCancel it with create_credit_note, then bill the right percentage
Credit note issuedIt keeps its number in your accounts; bill again if needed
Quote or invoice emailedAlready with your client: follow up with them directly

2 of the 6 write tools ask first: emailing a document and issuing a credit note. By default you confirm each call, and you can switch that off per tool. Clients, quotes, deposit invoices and payment statuses save at once, because they reach no one and you can change them in Tolteck.

MCP call
{
  "name": "create_deposit_invoice",
  "arguments": {
    "quote_id": "doc_7a90b2",
    "percent": 30
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/tolteck/quotes/doc_7a90b2/deposit-invoices \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"percent":30}'
Response
{
  "document_id": "doc_9d3e51",
  "number": "F-2026-0018",
  "type": "deposit invoice",
  "quote_id": "doc_7a90b2",
  "percent": 30,
  "amount_ht": 1260,
  "vat": 126,
  "amount_ttc": 1386
}

The example bills 30% of a 4,200 EUR bathroom quote at the 10% renovation VAT rate: 1,260 EUR before tax plus 126 EUR VAT, 1,386 EUR in total, saved and not yet emailed. A cron job or n8n flow can make the same call over REST at /api/v1/tolteck with the same key and price, in JSON. Failed calls are free.

Pay per call

How much does the Tolteck MCP server cost?

About $18 a monthfor a tiler or plumber working alone, about fifteen quotes a month, 3,040 credits. Your Tolteck subscription stays as it is.

Illustrative month, our assumption: successful calls for this workload
JobCallsCredits
New clients from calls and emails2 × 10200
Quotes written from a job description3 × 15450
Quotes emailed to the client1 × 15150
Deposit invoices on signed quotes, sent2 × 8160
Invoices checked and emailed2 × 10200
Weekly unpaid check and reminders4 × 4160
Payments set to "Payée"1 × 18180
Monday look at the dashboard1 × 440
Cloud Browser, 30 days1,500
Total154 calls3,040

The $29 pack covers a typical month for most owners: 5,000 credits for $29. A crew with more quotes out makes more calls.

  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Your Tolteck subscription applies as it is

Credit packs are one-time purchases, not a subscription. The month above is our own example, not measured customer usage.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Tolteck MCP server: other ways to connect What each route does for a tradesperson's paperwork, and where it stops.

Other ways to work with Tolteck, checked 14 Nov 2026
OptionWhat it doesWhere it stops
Tolteck's own AINo AI assistant appears on the features list or the pricing page.Nothing for ChatGPT or Claude to call.
Official APINone: no developer docs on tolteck.com or in the help center.No code route into quotes or invoices.
Zapier and n8nNeither directory lists a Tolteck app (both pages answer 404).No triggers or actions to build on.
"Export to Excel"The "Devis & factures" tab exports filtered documents for your accountant.A read-only file: nothing goes back into Tolteck.
By handOpen each quote or invoice and click "Envoyer".One document at a time, after the day on site.

Only Cotlet lets your agent do the daily Tolteck work on every screen you use, reading and writing, from ChatGPT, Claude or any MCP client, with no API key from Tolteck and on the subscription you already have.

EU company, since 2019

Who runs Cotlet A company you can look up.

Cotlet is run by Take Group sp. z o.o., a software company registered in Poland, EU (VAT PL6342984273) and in business since 2019. Its founders are Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Tolteck tools.

Tolteck MCP server: questions

How do I get access?

Sign up free at https://cotlet.dev/signup?app=tolteck, turn on Tolteck under Integrations in the console and sign in at https://tolteck.app in your Cloud Browser. Then connect your AI agent and ask it which invoices are still awaiting payment. The trial needs no card.

Do I need a special Tolteck plan?

No. Tolteck sells one offer with all features, at a monthly or an annual price, so Cotlet works in whichever plan you have (checked 14 Nov 2026, Tolteck pricing page). It works in your own Tolteck account, with the same rights you have when you sign in yourself.

Can my agent chase unpaid invoices for me?

Yes. Tolteck lists unpaid invoices on the dashboard and sends reminders by email from each invoice, by hand. Your agent does the same with list_unpaid_invoices and send_document. Each email waits for your OK by default.

Tolteck is in French. Can I ask in English?

Yes. The agent reads Tolteck's French screens as they are, statuses such as "Finalisée" and "Payée" included, and answers in your language. Quotes and invoices keep the French wording your clients expect.

Which Tolteck user should I sign in with?

Tolteck lets several users share one account. Sign in as the user who writes and sends the quotes; the agent sees only what that user can see.

Is the MCP server different from the REST API?

Only in how it is called. Both carry the same 13 tools, inputs, answers, API key and price. Agents use MCP; scripts and n8n HTTP steps use REST.

Is Cotlet affiliated with Tolteck?

No. Cotlet is independent and not affiliated with Tolteck or Saint-Gobain.

Hand your next Tolteck deposit invoice to your agent.

Free 7-day trial with 2,000 credits, no card needed.