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.
| Endpoint | https://mcp.pennylane.com/mcp |
| Transport | Streamable HTTP |
| Authentication | OAuth 2.1 + PKCE (details) |
| Data access | Read-only |
Contents
- Overview
- Connect your assistant
- Authentication
- Security and limits
- Capabilities
- Tools reference
- Working with the operations tools
- Terms and disclosures
- Support
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 URL | https://mcp.pennylane.com/mcp |
| Transport | Streamable HTTP (remote — nothing to install) |
| Authentication | OAuth 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 · Claude Code · Cursor
- ChatGPT · Codex · Mistral Le Chat · Notion · Lovable
Claude Desktop
- Go to Settings → Connectors → Add custom connector.
- Fill in:
- Name:
Pennylane - URL:
https://mcp.pennylane.com/mcp
- Name:
- Click Add.
- 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
-
In your terminal, add the server:
claude mcp add --transport http pennylane https://mcp.pennylane.com/mcp -
Launch Claude, type
/mcp, choose pennylane → Authenticate, and sign in through your browser. You should then see ✔ Connected.
Cursor
-
Open Settings → MCP → Add new MCP server or Edit config.
-
Add this block:
{ "mcpServers": { "pennylane": { "url": "https://mcp.pennylane.com/mcp" } } } -
Save, then log in via the browser, review the permissions, and confirm.
ChatGPT Desktop
- Go to Settings → Plugins → MCPs → + Add server
- Create the connector, fill in:
- Name:
Pennylane - Type: Streamable HTTP
- URL:
https://mcp.pennylane.com/mcp
- Name:
- Save the configuration
- Authorize Pennylane — ChatGPT opens an OAuth window. Sign in, connect, and consent. On success the connector shows a Connected status.
- Use it in chat — start a new conversation, open the connector picker in the composer, and enable Pennylane.
Mistral Le Chat
- Open the Mistral console at console.mistral.ai and open Connectors.
- Click Add connector, choose the Custom MCP type, and paste the server URL
https://mcp.pennylane.com/mcp. Give it a name, for examplePennylane, and save. - Mistral opens the Pennylane OAuth window. Sign in and consent. The connector then shows an Active status.
- In a new Le Chat conversation, enable the Pennylane connector in the toolbar.
Notion
- In Notion, open Settings → Connections → Notion AI connectors or Add connection → Custom.
- Choose Add custom connector and paste the server URL
https://mcp.pennylane.com/mcp. Name itPennylaneand save. - Notion opens the Pennylane OAuth window. Sign in and consent. The connector then shows as Connected.
- Open Notion AI and enable the Pennylane connector.
Lovable
- Go to Connectors, search custom MCP, then click Custom MCP.
- Fill in:
- Name:
Pennylane - URL:
https://mcp.pennylane.com/mcp
- Name:
- Click Add.
- 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
- Your client opens a Pennylane page in your browser.
- You sign in and review the requested permissions.
- 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 acompany_idparameter to target a specific client. Uselist_companies
orlist_firm_fileto 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 inYYYY-MM-DDformat.
Context and companies
| Tool | What it does |
|---|---|
get_context | Returns your working context: company info, connected user, fiscal years, and bank accounts. A good first call to orient the assistant. |
get_company | Returns a company's profile: legal name, SIREN/SIRET, legal form, VAT and tax regimes, fiscal year, etc. |
list_companies | Firm only. Lists companies in the firm portfolio; filter by name. Use it to find a client's company_id. |
list_firm_file | Firm 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
| Tool | What it does |
|---|---|
list_customers | Lists and filters customers by name, email, SIREN/SIRET, IBAN, or type. |
get_customer | Retrieves one customer by ID: contact info, address, payment terms. |
list_customer_invoices | Lists and filters customer invoices by customer, amount, period, label, accountants_status, and sortable fields. |
get_customer_invoice | Retrieves one invoice: header, lines, VAT, payments and credit notes. Returns accountants_status (bookkeeping) and payment_status (collection) separately. |
list_customer_payments | Lists 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
| Tool | What it does |
|---|---|
list_suppliers | Lists and filters suppliers by name; returns contact and registration details. |
get_supplier | Retrieves one supplier by ID: contact info, address, registration (SIRET, VAT number), and payment conditions. |
list_supplier_invoices | Lists and filters supplier invoices (supplier, period, label, payment status). |
get_supplier_invoice | Retrieves one supplier invoice: header, lines, VAT breakdown, and linked payments. |
list_supplier_payments | Lists supplier payments (supplier, invoice, method, period). |
get_supplier_payment | Retrieves 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
| Tool | What it does |
|---|---|
list_accounts | Lists the chart of accounts (plan comptable). Filter by label or number prefix (e.g. 411 for receivables); optional period for balances. |
get_ledger_account | Retrieves one account by number (e.g. 401, 512000): label, net balance, total debits/credits and ledger-event count over a period. |
get_journal | Retrieves a journal by ID or code (e.g. VE, AC, BQ4). |
list_ledger_entry_lines | Lists ledger entry lines (one row per debit/credit), filterable by account, journal, period and amount range. |
get_entry | Retrieves one journal entry: journal, date, label, debit/credit lines, and lettering. |
list_transactions | Lists and filters bank transactions (account, dates, amount, direction in/out, processing status). |
get_transaction | Retrieves one bank transaction: date, amount, label, reconciliation status, and linked accounting entry. |
query_trial_balance | Trial 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
| Tool | What it does |
|---|---|
list_products | Lists and filters the product/service catalog (search by label or reference). |
get_product | Retrieves 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
| Tool | What it does |
|---|---|
get_financial_report | Retrieves 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_returns | Lists VAT returns, monthly or quarterly: period, status, due date, submitted date, payable amount. |
get_tax_returns | Lists 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
| Tool | What it does |
|---|---|
get_changelog | Recent 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)
| Tool | What it does |
|---|---|
search_operations | Searches 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_operations | Retrieves 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_operationsfinds what is available, thenrun_operationsfetches 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_operationsonly 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 examplemcp: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
search_operationslooks through the full Pennylane catalog and finds the
data source that matches the question.run_operationsretrieves 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:
| Area | Example 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 reconciliation | Autopilot reconciliation conflicts, matching status |
| VAT & tax filings | VAT returns, consistency checks (turnover vs collected VAT), yearly deposits, VAT reimbursements |
| Cash-flow forecasting | Treasury forecast scenarios, projected cash flow |
| Detailed billing | Cash-based accounting, e-invoicing, invoice OCR, attached files / documents |
| Industry-specific data | e.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.
- 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.
- 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.
- 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.
- Pennylane's control is limited once data leaves. After data is transmitted to the AI provider, Pennylane cannot control what happens to it.
- Read-only, no payments. The server cannot move money, file returns, or otherwise act on your behalf. It only reads data.
- AI can be inaccurate. Assistants can misinterpret data or produce incorrect statements. Verify anything material against Pennylane directly.
- Not professional advice. Output is not financial, accounting, tax, or legal advice, and does not replace review by a qualified professional.
- Your responsibility. You are responsible for the client you connect, the permissions you grant, and how you use the results.
- 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.
Updated 2 days ago
