Connectors · Accounting & finance
Pennylane MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Pennylane and the rest of your systems. It gives your agent 175 Pennylane actions (97 reads, 70 writes and 8 that wait for a confirmation) and holds the Pennylane credential itself, so the agent never does. It paces Pennylane's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "pennylane.customer_invoices.list", intent: "check which Pennylane account is connected"}# List customer invoices · read · 1 upstream call- 175actionsin one signed file
- 97readlook, never change
- 70writecreate and update
- 8wait for a yesdestructive, confirmed first
Set up
Connect Pennylane in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Pennylane.
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
access_tokenPennylane API token: in Pennylane open Settings > Connectivity > Developers and generate a Company API token (pick…company_idYour Pennylane company id
account { op: "connections.requirements", service: "pennylane" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "pennylane.customer_invoices.list" }# list customer invoices · read · 1 upstream callcheck { action: "pennylane.customer_invoices.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Pennylane at a glance
- Sign-in
- Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
access_token- Setup fields
company_id- Limits we pace to
- 25 calls per 5 seconds, per connection
- API covered
- Pennylane Company API 2.0 (OpenAPI 3.0.1)
app.pennylane.com - Built from
- Pennylane's documentation, read 23 October 2026pennylane.readme.iopennylane.readme.io
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 97 of 97 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 9, so ask can line Pennylane up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Pennylane.
175 actions in 33 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 97readlook, never change
- 70writecreate and update
- 8destructivewait for a confirmation
Customer invoices
239 read · 12 write · 2 destructive
List customer invoices · Create a customer invoice · Retrieve a customer invoice · Update a customer invoice
Supplier invoices
156 read · 8 write · 1 destructive
List supplier invoices · Retrieve a supplier invoice · Update a supplier invoice · List invoice lines for a supplier invoice
Customers
126 read · 5 write · 1 destructive
List customers (company and individual) · Create a customer (company or individual) · Retrieve a customer · Update a customer (company or individual)
Changelogs
1111 read · 0 write · 0 destructive
Get customer invoices changes events · Get customer changes events · Get ledger entry category change events · Get ledger entry change events
Quotes
95 read · 4 write · 0 destructive
List quotes · Create a quote · Retrieve a quote · Update a quote
Commercial documents
85 read · 3 write · 0 destructive
Create a commercial document · List commercial documents · Retrieve a commercial document · Update a commercial document
Ledger entry lines
74 read · 2 write · 1 destructive
List ledger entry lines · Retrieve a Ledger entry line · List categories of a Ledger Entry line · Letter ledger entry lines
Transactions
74 read · 3 write · 0 destructive
List transactions · Create a transaction · Retrieve a transaction · Update a transaction
25 more areas · 83 actions
- Billing subscriptions 6
- Exports 6
- Ledger entries 6
- Suppliers 6
- Category groups 5
- Gocardless mandates 5
- Sepa mandates 5
- Webhook subscriptions 5
- Categories 4
- Ledger accounts 4
- Pro account 4
- Products 4
- Bank accounts 3
- Company customers 3
- Individual customers 3
- Journals 3
- Purchase requests 3
- Bank establishments 1
- Billing email templates 1
- Company 1
- Customer invoice templates 1
- Fiscal years 1
- Me 1
- Pa registrations 1
- Trial balance 1
Top actions
The Pennylane API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 55 of Pennylane's 57 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
pennylane.customer_invoices.listList customer invoices | List customer invoices. | read | finance.invoice.list101 connectors |
pennylane.quotes.listList quotes | List quotes. | read | finance.quote.list52 connectors |
pennylane.customers.listList customers (company and individual) | List customers (company and individual). | read | crm.company.list162 connectors |
pennylane.ledger_accounts.listList Ledger Accounts | List Ledger Accounts. | read | finance.ledger_account.list36 connectors |
pennylane.bank_accounts.listList bank accounts | List bank accounts. | read | finance.bank_account.list35 connectors |
pennylane.supplier_invoices.listList supplier invoices | List supplier invoices. | read | finance.bill.list31 connectors |
pennylane.ledger_entries.listList Ledger Entries | List Ledger Entries. | read | finance.journal_entry.list25 connectors |
pennylane.products.listList products | List products. | read | finance.billing_item.list24 connectors |
pennylane.customer_invoices.createCreate a customer invoice | Create a customer invoice. | write | finance.invoice.create74 connectors |
pennylane.quotes.createCreate a quote | Create a quote. | write | finance.quote.create52 connectors |
pennylane.customers.createCreate a customer (company or individual) | Create a customer (company or individual). | write | crm.company.create142 connectors |
pennylane.customer_invoices.deleteDelete draft invoice | Delete draft invoice. | destructive | finance.invoice.delete56 connectors |
Try it
Prompts to paste into Claude.
Each one names the Pennylane actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Pennylane invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
pennylane.customer_invoices.list - Writewrite
Create a customer invoice in Pennylane. Show me exactly what you will send before you save it.
calls
pennylane.customer_invoices.create - Across systemsread
Which Pennylane companies have invoices in ConnectWise PSA, and how many each?
calls
pennylane.customers.listconnectwise_manage.invoices.list
Across your systems
Pennylane, joined to the rest of your business.
One ask fetches from Pennylane and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which Pennylane companies have invoices in ConnectWise PSA, and how many each?
pennylane.customers.list+connectwise_manage.invoices.list, oncrm.company· ConnectWise PSAWhich Pennylane companies have tickets in HubSpot CRM, and how many each?
pennylane.customers.list+hubspot_crm.tickets.list, oncrm.company· HubSpot CRM
crm.company 227finance.invoice 91finance.quote 45finance.ledger_account 32finance.bill 27finance.bank_account 25finance.billing_item 14finance.journal_entry 9ask { intent: "which Pennylane companies have invoices in ConnectWise PSA, and how many each", steps: [ { action: "pennylane.customers.list", as: "co", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { join: { left: "co", right: "inv", on: "crm.company", group_by: "co.name", select: ["co.name", "count(inv.id) as invoices"] } } ]}Governance for Pennylane
Destructive actions wait for a yes.
8 Pennylane actions are destructive. These are all of them:
- Delete draft invoice
pennylane.customer_invoices.delete - Delete an SEPA mandate
pennylane.sepa_mandates.delete - Delete a webhook subscription
pennylane.webhook_subscriptions.delete - Delete a contact of a customer
pennylane.customers.contacts_delete - Unletter ledger entry lines
pennylane.ledger_entry_lines.unletter - Unmatch a transaction to a customer invoice
pennylane.customer_invoices.matched_transactions_delete - Unmatch a transaction to a supplier invoice
pennylane.supplier_invoices.matched_transactions_delete - Cancel a Gocardless mandate
pennylane.gocardless_mandates.cancel
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete draft invoice?
intent: the user asked me to delete draft invoice
account { op: "keys.create", name: "pennylane-agent", allowed_actions: ["pennylane.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "pennylane.customer_invoices.delete", approver: "[email protected]" }, { match: "pennylane.sepa_mandates.delete", approver: "[email protected]" }, { match: "pennylane.webhook_subscriptions.delete", approver: "[email protected]" } ]}Cost
What Pennylane costs on actionlake.
Every Pennylane action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Pennylane refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 175 Pennylane actions
- 175actions pageeach page of a long list is one call
- 97reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Pennylane action.
175 actions by area: the id your agent calls, what it does, and its effect.
Customer invoices23
pennylane.customer_invoices.appendices_listList appendices of a customer invoicereadpennylane.customer_invoices.categories_listList categories of a customer invoicereadpennylane.customer_invoices.categories_updateCategorize a customer invoicewritepennylane.customer_invoices.createCreate a customer invoicewritepennylane.customer_invoices.create_from_quoteCreate a customer invoice from a quotewritepennylane.customer_invoices.custom_header_fields_listList custom header fields for a customer invoicereadpennylane.customer_invoices.deleteDelete draft invoicedestructivepennylane.customer_invoices.finalizeTurn the draft invoice into a finalized invoice.writepennylane.customer_invoices.getRetrieve a customer invoicereadpennylane.customer_invoices.importImport an invoice with file attachedwritepennylane.customer_invoices.invoice_line_sections_listList invoice line sections for a customer invoicereadpennylane.customer_invoices.invoice_lines_listList invoice lines for a customer invoicereadpennylane.customer_invoices.link_credit_noteLink a credit note to a customer invoicewritepennylane.customer_invoices.listList customer invoicesreadpennylane.customer_invoices.mark_as_paidMark a customer invoice as paidwritepennylane.customer_invoices.matched_transactions_createMatch a transaction to a customer invoicewritepennylane.customer_invoices.matched_transactions_deleteUnmatch a transaction to a customer invoicedestructivepennylane.customer_invoices.matched_transactions_listList matched transactions for a customer invoicereadpennylane.customer_invoices.payments_listList payments for a customer invoicereadpennylane.customer_invoices.send_by_emailSend a customer invoice by emailwritepennylane.customer_invoices.send_to_paSend a customer e-invoice to PAwritepennylane.customer_invoices.updateUpdate a customer invoicewritepennylane.customer_invoices.update_importedUpdate an Imported customer invoicewrite
Supplier invoices15
pennylane.supplier_invoices.categories_listList categories of a supplier invoicereadpennylane.supplier_invoices.categories_updateCategorize a supplier invoicewritepennylane.supplier_invoices.e_invoice_statusUpdate e-invoice status for a supplier invoicewritepennylane.supplier_invoices.getRetrieve a supplier invoicereadpennylane.supplier_invoices.importImport a supplier invoice with a file attachedwritepennylane.supplier_invoices.invoice_lines_listList invoice lines for a supplier invoicereadpennylane.supplier_invoices.linked_purchase_requests_createLink a purchase request to a supplier invoicewritepennylane.supplier_invoices.listList supplier invoicesreadpennylane.supplier_invoices.matched_transactions_createMatch a transaction to a supplier invoicewritepennylane.supplier_invoices.matched_transactions_deleteUnmatch a transaction to a supplier invoicedestructivepennylane.supplier_invoices.matched_transactions_listList matched transactions for a supplier invoicereadpennylane.supplier_invoices.payment_statusUpdate a supplier invoice payment statuswritepennylane.supplier_invoices.payments_listList payments for a supplier invoicereadpennylane.supplier_invoices.updateUpdate a supplier invoicewritepennylane.supplier_invoices.validate_accountingValidate the accounting of a supplier invoicewrite
Customers12
pennylane.customers.categories_listList categories of a customerreadpennylane.customers.categories_updateCategorize a customerwritepennylane.customers.contacts_createCreate a contact of a customerwritepennylane.customers.contacts_deleteDelete a contact of a customerdestructivepennylane.customers.contacts_getRetrieve a contact of a customerreadpennylane.customers.contacts_listList contacts of a customerreadpennylane.customers.contacts_updateUpdate a contact of a customerwritepennylane.customers.createCreate a customer (company or individual)writepennylane.customers.electronic_billing_addresses_listList eligible electronic billing addresses for a customerreadpennylane.customers.getRetrieve a customerreadpennylane.customers.listList customers (company and individual)readpennylane.customers.updateUpdate a customer (company or individual)write
Changelogs11
pennylane.changelogs.customer_invoices_listGet customer invoices changes eventsreadpennylane.changelogs.customers_listGet customer changes eventsreadpennylane.changelogs.ledger_entries_categories_listGet ledger entry category change eventsreadpennylane.changelogs.ledger_entries_listGet ledger entry change eventsreadpennylane.changelogs.ledger_entry_lines_categories_listGet ledger entry line category change eventsreadpennylane.changelogs.ledger_entry_lines_listGet ledger entry line change eventsreadpennylane.changelogs.products_listGet product change eventsreadpennylane.changelogs.quotes_listGet quotes changes eventsreadpennylane.changelogs.supplier_invoices_listGet supplier invoices changes eventsreadpennylane.changelogs.suppliers_listGet supplier changes eventsreadpennylane.changelogs.transactions_listGet transaction change eventsread
Quotes9
pennylane.quotes.appendices_listList appendices of a quotereadpennylane.quotes.createCreate a quotewritepennylane.quotes.getRetrieve a quotereadpennylane.quotes.invoice_line_sections_listList invoice line sections for a quotereadpennylane.quotes.invoice_lines_listList invoice lines for a quotereadpennylane.quotes.listList quotesreadpennylane.quotes.send_by_emailSend a quote by emailwritepennylane.quotes.updateUpdate a quotewritepennylane.quotes.update_statusUpdate status of a quotewrite
Commercial documents8
pennylane.commercial_documents.appendices_listList appendices of a commercial documentreadpennylane.commercial_documents.createCreate a commercial documentwritepennylane.commercial_documents.getRetrieve a commercial documentreadpennylane.commercial_documents.invoice_line_sections_listList invoice line sections for a commercial documentreadpennylane.commercial_documents.invoice_lines_listList invoice lines for a commercial documentreadpennylane.commercial_documents.listList commercial documentsreadpennylane.commercial_documents.send_by_emailSend a commercial document by emailwritepennylane.commercial_documents.updateUpdate a commercial documentwrite
Ledger entry lines7
pennylane.ledger_entry_lines.categories_listList categories of a Ledger Entry linereadpennylane.ledger_entry_lines.categories_updateLink Analytical Categories to a Ledger Entry linewritepennylane.ledger_entry_lines.getRetrieve a Ledger entry linereadpennylane.ledger_entry_lines.letterLetter ledger entry lineswritepennylane.ledger_entry_lines.lettered_ledger_entry_lines_listList ledger entry lines lettered to a given ledger entry linereadpennylane.ledger_entry_lines.listList ledger entry linesreadpennylane.ledger_entry_lines.unletterUnletter ledger entry linesdestructive
Transactions7
pennylane.transactions.categories_listList categories of a bank transactionreadpennylane.transactions.categories_updateCategorize a bank transactionwritepennylane.transactions.createCreate a transactionwritepennylane.transactions.getRetrieve a transactionreadpennylane.transactions.listList transactionsreadpennylane.transactions.matched_invoices_listList invoices matched to a bank transactionreadpennylane.transactions.updateUpdate a transactionwrite
Billing subscriptions6
pennylane.billing_subscriptions.createCreate a billing subscriptionwritepennylane.billing_subscriptions.getGet a billing subscriptionreadpennylane.billing_subscriptions.invoice_line_sections_listList the invoice line sections of a billing subscriptionreadpennylane.billing_subscriptions.invoice_lines_listList invoice lines for a billing subscriptionreadpennylane.billing_subscriptions.listList billing subscriptionsreadpennylane.billing_subscriptions.updateUpdate a billing subscriptionwrite
Exports6
pennylane.exports.analytical_general_ledgers_createCreate an Analytical General Ledger exportwritepennylane.exports.analytical_general_ledgers_getRetrieve an Analytical General Ledger exportreadpennylane.exports.fecs_createCreate an FEC exportwritepennylane.exports.fecs_getRetrieve an FEC exportreadpennylane.exports.general_ledgers_createCreate a General Ledger exportwritepennylane.exports.general_ledgers_getRetrieve a General Ledger exportread
Ledger entries6
pennylane.ledger_entries.createCreate a ledger entrywritepennylane.ledger_entries.dms_files_listList DMS files of a Ledger Entryreadpennylane.ledger_entries.getRetrieve a Ledger entryreadpennylane.ledger_entries.ledger_entry_lines_listList ledger entry lines of a Ledger Entryreadpennylane.ledger_entries.listList Ledger Entriesreadpennylane.ledger_entries.updateUpdate a ledger entrywrite
Suppliers6
pennylane.suppliers.categories_listList categories of a supplierreadpennylane.suppliers.categories_updateCategorize a supplierwritepennylane.suppliers.createCreate a Supplierwritepennylane.suppliers.getRetrieve a supplierreadpennylane.suppliers.listList suppliersreadpennylane.suppliers.updateUpdate a supplierwrite
Category groups5
pennylane.category_groups.categories_listList categories of a category groupreadpennylane.category_groups.createCreate a category groupwritepennylane.category_groups.getRetrieve a category groupreadpennylane.category_groups.listList category groupsreadpennylane.category_groups.updateUpdate a category groupwrite
Gocardless mandates5
pennylane.gocardless_mandates.associateAssociate a GoCardless mandate to a customerwritepennylane.gocardless_mandates.cancelCancel a Gocardless mandatedestructivepennylane.gocardless_mandates.getGet a Gocardless mandatereadpennylane.gocardless_mandates.listList gocardless mandatesreadpennylane.gocardless_mandates.mail_request_createSend a GoCardless mandate email requestwrite
Sepa mandates5
pennylane.sepa_mandates.createCreate an SEPA mandatewritepennylane.sepa_mandates.deleteDelete an SEPA mandatedestructivepennylane.sepa_mandates.getGet an SEPA mandatereadpennylane.sepa_mandates.listList SEPA mandatesreadpennylane.sepa_mandates.updateUpdate an SEPA mandatewrite
Webhook subscriptions5
pennylane.webhook_subscriptions.createCreate a webhook subscriptionwritepennylane.webhook_subscriptions.deleteDelete a webhook subscriptiondestructivepennylane.webhook_subscriptions.getGet a webhook subscriptionreadpennylane.webhook_subscriptions.listList webhook subscriptionsreadpennylane.webhook_subscriptions.updateUpdate a webhook subscriptionwrite
Categories4
pennylane.categories.createCreate a categorywritepennylane.categories.getRetrieve a categoryreadpennylane.categories.listList categoriesreadpennylane.categories.updateUpdate a categorywrite
Ledger accounts4
pennylane.ledger_accounts.createCreate a ledger accountwritepennylane.ledger_accounts.getGet a ledger accountreadpennylane.ledger_accounts.listList Ledger Accountsreadpennylane.ledger_accounts.updateUpdate a ledger accountwrite
Pro account4
pennylane.pro_account.mandate_migrations_createMigrate a mandate to Pro Accountwritepennylane.pro_account.mandate_migrations_listList mandate migration candidatesreadpennylane.pro_account.mandate_request_createSend a Pro Account SEPA mandate requestwritepennylane.pro_account.mandates_listList Pro Account payment mandatesread
Products4
pennylane.products.createCreate a productwritepennylane.products.getRetrieve a productreadpennylane.products.listList productsreadpennylane.products.updateUpdate a productwrite
Bank accounts3
pennylane.bank_accounts.createCreate a bank accountwritepennylane.bank_accounts.getRetrieve a bank accountreadpennylane.bank_accounts.listList bank accountsread
Company customers3
pennylane.company_customers.createCreate a company customerwritepennylane.company_customers.getRetrieve a company customerreadpennylane.company_customers.updateUpdate a company customerwrite
Individual customers3
pennylane.individual_customers.createCreate an individual customerwritepennylane.individual_customers.getRetrieve an individual customerreadpennylane.individual_customers.updateUpdate an individual customerwrite
Journals3
pennylane.journals.createCreate a journalwritepennylane.journals.getRetrieve a journalreadpennylane.journals.listList journalsread
Purchase requests3
pennylane.purchase_requests.getRetrieve a purchase requestreadpennylane.purchase_requests.importImport a purchase order.writepennylane.purchase_requests.listList purchase requestsread
Bank establishments1
pennylane.bank_establishments.listList bank establishmentsread
Billing email templates1
pennylane.billing_email_templates.listList billing email templatesread
Company1
pennylane.company.features_getCompany featuresread
Customer invoice templates1
pennylane.customer_invoice_templates.listList customer invoice templatesread
Fiscal years1
pennylane.fiscal_years.listList Company's Fiscal Yearsread
Me1
pennylane.me.getUser Profileread
Pa registrations1
pennylane.pa_registrations.listList PA Registrationsread
Trial balance1
pennylane.trial_balance.listGet the trial balanceread
Questions
The Pennylane MCP server, answered.
Is there a Pennylane MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 175 Pennylane actions across customer invoices, supplier invoices, customers and changelogs, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Pennylane.
What do I need to connect Pennylane?
Pennylane API token: in Pennylane open Settings > Connectivity > Developers and generate a Company API token (pick…. Plus your company id. The free call account { op: "connections.requirements", service: "pennylane" } lists exactly what to paste.
Can an AI agent delete or change things in Pennylane?
Only if its key allows it, and only with an explicit confirmation. 8 Pennylane actions are destructive, including delete draft invoice, delete an SEPA mandate and delete a webhook subscription. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Pennylane API limit?
actionlake paces every call to the limits in the Pennylane service file: 25 calls per 5 seconds per connection. Repeated reads are answered from cache (97 Pennylane actions can be), which never reaches Pennylane.
What does a Pennylane action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (175 Pennylane actions page). Cache hits, searches, dry runs and calls Pennylane refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Pennylane API does it cover?
The Pennylane Company API 2.0 (OpenAPI 3.0.1) at app.pennylane.com. It is built from Pennylane's documentation as read on 23 October 2026. 175 actions in 33 areas, each one in the signed service file (version 1.0.0).
Can I combine Pennylane with my other systems?
Yes. ask joins Pennylane to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. Pennylane maps crm.company, which 227 other connectors also map.
Does actionlake keep my Pennylane data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Pennylane credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Pennylane today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.