nenoDevelopers
⌘K
v1

MCP

Neno MCP server

1.0.0MCP 2026-07-28

Neno MCP connects a compatible AI assistant to the companies you choose in Neno. The connection uses your own permissions. Its available tools depend on the access you approved and your permissions in each company.

Server URL
https://mcp.neno.build/mcp
Authentication
OAuth sign-in, or an API key neno_api_…
Transport
Streamable HTTP, stateless

Server URL: https://mcp.neno.co/mcp (sandbox: https://mcp.neno.build/mcp). Transport: Streamable HTTP, stateless, protocol revision 2026-07-28 and the 2025 revisions. Authentication: OAuth sign-in, or an API key starting neno_api_live_ or neno_api_test_.

What it can do

The server has 15 tools across 9 scopes. You agree to the scopes when you connect a client, and each tool still checks your own permissions in the company.

Bills
Look up, list and count bills, see spend per supplier, and file new invoices and receipts.
Transactions
List bank transactions and find the ones that aren't reconciled yet.
Tasks
See what your accountant is waiting for and answer it, with a document when one is needed.
Invoices
Count and list outgoing invoices by draft, unpaid, overdue and paid.
Reports
Read the management report your accountant approved.
Companies
See which companies the connection covers.

MCP or the REST API

The REST API is for code you write. It returns JSON. The MCP server is for AI assistants. Its tools return text written for a model to read and pass on, and it acts as the person who connected it. Both accept the same neno_api_ keys, and a key's scopes decide what it can do on each.

Companies

When you connect a client, you choose the companies it may act on. Every tool except list_workspaces takes an optional workspace argument with the company's id. With one company it's filled in for you. With several, a call that leaves it out comes back asking which company you mean, if the client can show that question.

Every result starts with the company it applies to, for example Company: Studio Veld BV.

Server conventions

The server sends these rules to the client as its instructions, and the client puts them in its model's context. They're also what to expect when you read results yourself.

  1. Amounts are euros, already formatted (€1.234,56). Ask a tool for a total instead.
  2. Dates are YYYY-MM-DD.
  3. A bill's supplier, amount and due date stay hidden until an accountant has reviewed it. "Details pending review" means the figures are not trustworthy yet, not that they are missing.
  4. Every result names the company it applies to. Pass that on, rather than leaving it implicit.
  5. A list result states how many rows matched and whether it holds all of them. "No more rows remain (nextCursor: null)" is the complete answer to the question as asked — do not repeat the call with a narrower filter looking for rows it left out. A result that hands back a cursor is continued by calling the same tool again with that cursor and the same filters.
  6. A document you are holding as a file takes two calls: create_bill_upload for an upload URL, PUT the file to it, then upload_bill with the token to file a bill, or respond_to_task with the token to answer a task. No tool takes a document inside a tool call, so never shrink, re-encode or split one. If you cannot PUT, create_bill_upload says what to tell the user.
  7. A bill already sitting in the user's own mailbox is better forwarded than uploaded: call get_bill_forwarding_address and forward the supplier's original message there, from one of the authorized addresses it names. Mail from any other address is dropped without a bounce.
Results are plain text with no output schema, and their wording can change. If you need structured data in your own code, use the REST API.

Where to go next

Connect a client has the setup for Claude, Cursor, VS Code and API keys.
Scopes and permissions explains what a connection is allowed to do.
Tool reference lists every tool with its arguments and an example.