Pennylane MCP

Connect compatible AI assistants to Pennylane data through the Model Context Protocol.

Connect a compatible AI assistant to your Pennylane data through the open Model Context Protocol (MCP).

Pennylane MCP

Connect any compatible AI assistant — Claude, Cursor, ChatGPT, VS Code, and others — directly to your Pennylane accounting data through the open Model Context Protocol (MCP), an open standard created by Anthropic that works like a universal connector between AI assistants and the tools they use.

Once connected, your assistant can read your books in plain language: pull up invoices, inspect bank transactions, read your trial balance and financial statements, check VAT and tax returns, and build analyses on top of live, up-to-date data — without you ever leaving the conversation. No need to export your data from Pennylane and import them into your AI chat. Your assistant is now able to fetch Pennylane's data on its own.

⚠️

Read before you connect. Connecting the MCP server means your Pennylane data can be shared with the third-party AI assistant you use. Review the Terms and disclosures before authorizing access.

Endpointhttps://mcp.pennylane.com/mcp
TransportStreamable HTTP
AuthenticationOAuth 2.1 + PKCE (details)
Data accessRead-only

Contents

Overview

The Pennylane MCP server exposes a curated set of tools — discrete read actions the assistant can call, such as "list customer invoices" or "get the trial balance" — that let an AI assistant (an LLM) read your Pennylane data. It is built for:

  • Accounting firms — read across the client dossiers in your portfolio, from one connection.
  • Companies — read across your own data, from one connection (on a paid plan, Essentiel and above).

A tool may use one or several Pennylane API operations downstream, so it does not map one-to-one to an API endpoint. Tools return business-ready data — an invoice with its lines, VAT and payments; a trial balance for a period — rather than raw technical data straight from the API.

Read-only for now. In its current version the server only reads your data — it never creates, edits, or deletes anything in your account. Write capabilities are planned for a later version; until then, for write access use the Pennylane API directly.

Relationship to the Pennylane API

The MCP server is a conversational, read-only layer for AI assistants. For programmatic integrations, write operations, or endpoints not exposed here, use the Pennylane API directly.

Connect your assistant

Connecting the Pennylane MCP server takes two things: the server URL and a one-time OAuth authorization in your browser. There are no API keys to copy or manage.

Server URLhttps://mcp.pennylane.com/mcp
TransportStreamable HTTP (remote — nothing to install)
AuthenticationOAuth 2.1 + PKCE (details)

On first use, whichever client you pick opens a Pennylane sign-in page. You sign in, choose the firm (or company) to connect, and confirm the requested permissions. The connection is then kept alive by your client — you won't need to sign in on every request.

Pick your client below.

Claude Desktop

  1. Go to Settings → Connectors → Add custom connector.
  2. Fill in:
    • Name: Pennylane
    • URL: https://mcp.pennylane.com/mcp
  3. Click Add.
  4. Sign in through the Pennylane page that opens in your browser and confirm access.

Custom connectors require a Claude Pro, Max, Team, or Enterprise plan.

Claude Code

  1. In your terminal, add the server:

    claude mcp add --transport http pennylane https://mcp.pennylane.com/mcp
  2. Launch Claude, type /mcp, choose pennylane → Authenticate, and sign in through your browser. You should then see ✔ Connected.

Cursor

  1. Open Settings → MCP → Add new MCP server or Edit config.

  2. Add this block:

    {
      "mcpServers": {
        "pennylane": {
          "url": "https://mcp.pennylane.com/mcp"
        }
      }
    }
  3. Save, then log in via the browser, review the permissions, and confirm.

ChatGPT Desktop

  1. Go to Settings → Plugins → MCPs → + Add server
  2. Create the connector, fill in:
    • Name: Pennylane
    • Type: Streamable HTTP
    • URL: https://mcp.pennylane.com/mcp
  3. Save the configuration
  4. Authorize Pennylane — ChatGPT opens an OAuth window. Sign in, connect, and consent. On success the connector shows a Connected status.
  5. Use it in chat — start a new conversation, open the connector picker in the composer, and enable Pennylane.

Mistral Le Chat

  1. Open the Mistral console at console.mistral.ai and open Connectors.
  2. Click Add connector, choose the Custom MCP type, and paste the server URL https://mcp.pennylane.com/mcp. Give it a name, for example Pennylane, and save.
  3. Mistral opens the Pennylane OAuth window. Sign in and consent. The connector then shows an Active status.
  4. In a new Le Chat conversation, enable the Pennylane connector in the toolbar.

Notion

  1. In Notion, open Settings → Connections → Notion AI connectors or Add connection → Custom.
  2. Choose Add custom connector and paste the server URL https://mcp.pennylane.com/mcp. Name it Pennylane and save.
  3. Notion opens the Pennylane OAuth window. Sign in and consent. The connector then shows as Connected.
  4. Open Notion AI and enable the Pennylane connector.

Lovable

  1. Go to Connectors, search custom MCP, then click Custom MCP.
  2. Fill in:
    • Name: Pennylane
    • URL: https://mcp.pennylane.com/mcp
  3. Click Add.
  4. Authenticate through your browser.

Reviewing or removing the connection

You can review and revoke the connection at any time from your Pennylane account settings (connected applications) and from your MCP client. Revoking disconnects the assistant; it does not affect your account data. See Authentication for details.

Authentication

The Pennylane MCP server uses OAuth 2.1 with PKCE — there are no API keys to copy or manage. Your MCP client handles the flow natively, including Dynamic Client Registration.

What you will see

  1. Your client opens a Pennylane page in your browser.
  2. You sign in and review the requested permissions.
  3. The connection is then kept alive by your client — you won't need to sign in on every request.

Company vs. firm connections

The server adapts to the type of account you authorize:

  • Company connection — you connect a single company and the assistant works with
    that company's data. Tools resolve to it automatically. Company access requires a
    paid plan (Essentiel and above), aligned with Pennylane API eligibility; the
    Free, Starter and Basic plans are not eligible.
  • Firm connection — the assistant can act across the client dossiers in your firm
    portfolio. Because a firm token is not tied to a single company, firm-scoped tools
    require a company_id parameter to target a specific client. Use list_companies
    or list_firm_file to find one.

Access is user-based, not token-based: you sign in with your own Pennylane account
and the assistant inherits exactly your permissions. If your user belongs to several
companies, only the eligible ones appear when the assistant discovers your context;
targeting a non-eligible company returns a tool unavailable error.

Permissions and scopes

Access is scoped per data type. Each type of data has its own read scope, for example mcp:customer_invoice:read, mcp:transaction:read, and mcp:trial_balance:read, and you approve them on the consent screen before connecting. The assistant can only reach data types you have granted.

Whatever you grant, the assistant sees your data with exactly the same boundaries as your Pennylane account — it can never reach anything through the MCP that you couldn't already see in the app.

Reviewing and revoking access

You can review and revoke the connection at any time from your Pennylane account settings (connected applications), and from your MCP client. Revoking disconnects the assistant; it does not affect your account data.

Security and limits

Identity and authorization

  • Every request is tied to your OAuth token and your identity. The assistant inherits your role-based permissions and cannot escalate them.
  • Expanding what the assistant can access requires re-authorizing with additional scopes.

Data handling

⚠️

Connecting the MCP server means your Pennylane account data is shared with the third-party AI provider whose assistant you use. Once data reaches that provider, its handling is governed by that provider's terms and privacy policy — not Pennylane's.

The MCP server forwards read requests and returns results; it is not a place where your accounting data is stored for the AI. What the assistant retains, such as conversation history and context, is controlled by your AI client and its vendor — same goes for your AI's servers location.

Read-only surface

The server exposes an allow-listed, read-only set of tools. See Tools reference. It cannot write, and it cannot reach Pennylane endpoints outside that curated list.

Pagination and volume

List tools are paginated, up to 100 records per page via a page parameter, so responses stay bounded. For large datasets, the assistant pages through results rather than pulling everything at once.

Reporting issues

If you discover a security issue, contact Pennylane rather than sharing it publicly.

Capabilities

Everything below is read access only in the current version. Write capabilities are planned for a later release.

Read-only insights

The assistant can retrieve and reason over the same accounting data you see in Pennylane:

  • Company & context — company profile (legal form, SIREN/SIRET, VAT & tax regimes, fiscal years), connected bank accounts, and — for firms — the list of client dossiers in your portfolio.
  • Sales & receivables — customers, customer invoices (with lines, VAT, payments and credit notes), and customer payments.
  • Purchases & payables — suppliers, supplier invoices, and supplier payments.
  • Accounting core — chart of accounts (plan comptable) with balances, journals, ledger entries and their debit/credit lines, bank transactions with reconciliation status, and the trial balance for any period.
  • Products — the product/service catalog.
  • Reporting & tax — income statement and balance sheet, VAT returns, and tax returns (liasse fiscale, IS).
  • Audit trail — recent changes (insert/update/delete) across your data, within a 4-week window.

Typical prompts

"Pull up all unpaid customer invoices and tell me which are overdue."

"What's the balance on account 512 over the last quarter?"

"List supplier invoices above €5,000 for the last fiscal year."

"When is our next VAT return due, and how much do we owe?"

"Show the bank transactions on our main account that aren't yet reconciled."

Reporting and analysis

Because the assistant reads structured accounting data, it's well suited to slicing, summarising, and spotting patterns — the reasoning happens on top of the numbers Pennylane returns.

"Compare this quarter's P&L to the same quarter last year and highlight what moved."

"Which five customers account for the most revenue this year?"

"Break down our expenses by account class over the last six months."

"Summarise our receivables and flag anything more than 60 days late."

What it does not do

In its current version the server does not:

  • Write, modify, or delete anything — no creating or editing invoices, no recording payments, no posting entries, no reconciling. All access is read-only.
  • File or submit on your behalf — no VAT filing, no tax submission, no sending emails or documents.
  • Move money — no transfers or payment execution.
  • Reach beyond your permissions — only the data types you granted, within the company or firm you selected.

For anything beyond reading, use the Pennylane API.

Tools reference

Tools return business-ready data rather than raw API payloads. Unless noted, tools work with both company and firm connections; on a firm connection, pass company_id to target a specific client dossier.

Common parameters:

  • company_id — target company. Required on firm connections; inferred from the token on company connections.
  • page — page number for list tools. List tools return 100 records per page unless stated.
  • period_start / period_end — date range filters in YYYY-MM-DD format.

Context and companies

ToolWhat it does
get_contextReturns your working context: company info, connected user, fiscal years, and bank accounts. A good first call to orient the assistant.
get_companyReturns a company's profile: legal name, SIREN/SIRET, legal form, VAT and tax regimes, fiscal year, etc.
list_companiesFirm only. Lists companies in the firm portfolio; filter by name. Use it to find a client's company_id.
list_firm_fileFirm only. Lists client dossiers in the portfolio, with filters for legal form, fiscal regime and VAT frequency.

"What companies are in my portfolio, and which are on a quarterly VAT frequency?"

"Give me the profile and fiscal year of ACME."

Customers and receivables

ToolWhat it does
list_customersLists and filters customers by name, email, SIREN/SIRET, IBAN, or type.
get_customerRetrieves one customer by ID: contact info, address, payment terms.
list_customer_invoicesLists and filters customer invoices by customer, amount, period, label, accountants_status, and sortable fields.
get_customer_invoiceRetrieves one invoice: header, lines, VAT, payments and credit notes. Returns accountants_status (bookkeeping) and payment_status (collection) separately.
list_customer_paymentsLists customer payments by method, period, and amount, and the invoices they settle.

"List this year's invoices for customer Dupont, largest first."

"Show all customer payments received by bank transfer last month."

Suppliers and payables

ToolWhat it does
list_suppliersLists and filters suppliers by name; returns contact and registration details.
get_supplierRetrieves one supplier by ID: contact info, address, registration (SIRET, VAT number), and payment conditions.
list_supplier_invoicesLists and filters supplier invoices (supplier, period, label, payment status).
get_supplier_invoiceRetrieves one supplier invoice: header, lines, VAT breakdown, and linked payments.
list_supplier_paymentsLists supplier payments (supplier, invoice, method, period).
get_supplier_paymentRetrieves one supplier payment: amount, method, status, scheduled date, and the invoice it settles.

"Which supplier invoices are still unpaid for last quarter?"

"Total what we paid supplier X by cheque this year."

Accounting and transactions

ToolWhat it does
list_accountsLists the chart of accounts (plan comptable). Filter by label or number prefix (e.g. 411 for receivables); optional period for balances.
get_ledger_accountRetrieves one account by number (e.g. 401, 512000): label, net balance, total debits/credits and ledger-event count over a period.
get_journalRetrieves a journal by ID or code (e.g. VE, AC, BQ4).
list_ledger_entry_linesLists ledger entry lines (one row per debit/credit), filterable by account, journal, period and amount range.
get_entryRetrieves one journal entry: journal, date, label, debit/credit lines, and lettering.
list_transactionsLists and filters bank transactions (account, dates, amount, direction in/out, processing status).
get_transactionRetrieves one bank transaction: date, amount, label, reconciliation status, and linked accounting entry.
query_trial_balanceTrial balance by account for a period (monthly or quarterly grouping; optional prior-year comparison).

"Show me the trial balance for last quarter with prior-year comparison."

"List all movements on account 606 over €500 this year."

"Which bank transactions last month are still awaiting reconciliation?"

Products

ToolWhat it does
list_productsLists and filters the product/service catalog (search by label or reference).
get_productRetrieves one product/service by ID: label, unit price (excl. VAT), VAT rate, linked account, and unit.

"Find the product 'annual subscription' and its unit price."

Reporting and tax

ToolWhat it does
get_financial_reportRetrieves a financial statement for a period: income_statement, balance_sheet_assets, or balance_sheet_liabilities_and_equity. Returns structured rows with labels and amounts.
get_vat_returnsLists VAT returns, monthly or quarterly: period, status, due date, submitted date, payable amount.
get_tax_returnsLists tax returns (liasse fiscale, IS): period, fiscal category/regime, status, submission info.

"Summarise our income statement for H1 and the biggest expense lines."

"List our VAT returns for the year and flag any not yet submitted."

Audit trail

ToolWhat it does
get_changelogRecent changes (insert/update/delete) for a resource type — customers, suppliers, customer_invoices, supplier_invoices, bank_transactions, ledger_events, products — within a rolling 4-week window.

"What changed on our supplier invoices in the last two weeks?"

Operations (advanced access)

ToolWhat it does
search_operationsSearches the full Pennylane data catalog to find the right data source for a request. Supports filtering by keyword, audience (accountant / client), and data area.
run_operationsRetrieves the actual data for a given company once the source has been identified. Can require a company_id.

When are these used? The two tools work as a pair: search_operations finds what is available, then run_operations fetches it. You never call them directly — the
assistant selects the right source and reads the data for you from a simple question in plain language.

Working with the operations tools

Most tools in this MCP expose a curated set of the most common data: customer
invoices, suppliers, ledger entries, trial balance, VAT returns, and so on.

The two operations tools (search_operations + run_operations) go further:
together they open access to the entire content of a company's Pennylane file
not just accounting, but all the business data that surrounds it. When no dedicated
tool covers a request, the assistant uses these two to find the right source and
read it on demand.

Same boundaries as every other tool

Opening access to the full catalog does not widen what the assistant can reach.
The operations tools obey the exact same limits as the rest of this MCP:

  • Read-only. Despite its name, run_operations only ever reads data — it can
    never create, edit, delete, file, or move anything. Write actions are not exposed,
    here or anywhere else in the server.
  • Bounded by your granted scopes. The operations tools can only reach the data
    types you approved on the consent screen (for example mcp:customer_invoice:read).
    Anything you did not grant stays out of reach, exactly as with the dedicated tools.
  • Never beyond your own access. The assistant sees your data with the same
    role-based permissions as your Pennylane account — it can never surface anything
    through these tools that you couldn't already see in the app.

In other words, the operations tools broaden how much of your existing data the assistant can help with — not what it is allowed to see.

How it works

  1. search_operations looks through the full Pennylane catalog and finds the
    data source that matches the question.
  2. run_operations retrieves that data for the specific company (company_id
    is required in almost all cases).

What kind of data can it reach?

This is where the operations tools really stand out. A few examples of what becomes
answerable — all drawn from data actually available through Pennylane:

AreaExample questions you can now ask
Fixed assets"What's the depreciation schedule for my assets?", "Which assets were disposed of this year?", impairments, depreciation optimizations
Loans & financing"What's my loan repayment schedule?", outstanding principal, interest, Defacto loans
Bank reconciliationAutopilot reconciliation conflicts, matching status
VAT & tax filingsVAT returns, consistency checks (turnover vs collected VAT), yearly deposits, VAT reimbursements
Cash-flow forecastingTreasury forecast scenarios, projected cash flow
Detailed billingCash-based accounting, e-invoicing, invoice OCR, attached files / documents
Industry-specific datae.g. agricultural stock valuation and crop rotations — even vertical use cases are covered

These are just a sample. The catalog exposes hundreds of data sources — far more
than could be given a dedicated tool each.

Example prompts

"Give me the depreciation schedule for company X's fixed assets this year."

"What's the outstanding principal and next repayment on our bank loans?"

"Are there any unresolved bank reconciliation conflicts right now?"

"Show me the VAT return for last quarter and check turnover consistency."

"What does our projected cash flow look like over the next 3 months?"

Terms and disclosures

Please read the following before authorizing the Pennylane MCP server.

  1. You are connecting a third-party AI service. The MCP server lets an AI assistant of your choosing connect to your Pennylane data. That assistant is operated by a third party, not by Pennylane.
  2. Your Pennylane data is shared with that third party. When the assistant reads your Pennylane data, it is transmitted to the AI provider that runs your client.
  3. The third party's terms apply to their use of your data. How the AI provider stores, processes, or trains on data it receives is governed by their terms and privacy policy.
  4. Pennylane's control is limited once data leaves. After data is transmitted to the AI provider, Pennylane cannot control what happens to it.
  5. Read-only, no payments. The server cannot move money, file returns, or otherwise act on your behalf. It only reads data.
  6. AI can be inaccurate. Assistants can misinterpret data or produce incorrect statements. Verify anything material against Pennylane directly.
  7. Not professional advice. Output is not financial, accounting, tax, or legal advice, and does not replace review by a qualified professional.
  8. Your responsibility. You are responsible for the client you connect, the permissions you grant, and how you use the results.
  9. Privacy. Pennylane's handling of your data remains governed by Pennylane's privacy policy; you can disconnect the integration at any time.

By connecting the Pennylane MCP server, you acknowledge and accept these terms.

Support

Questions or issues connecting the Pennylane MCP server? Contact Pennylane support or your account manager.


Did this page help you?