Alpaca Trading API integration for Model Context Protocol (MCP)
Ekwo OS is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Double-entry books an agent keeps as the user: invoices, VAT returns, 130 country packs.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user ekwo-os-mcp '--' npx -y @ekwo-ai/mcp
# 2 — ask your agent for something these tools do
# list_companies, get_company, list_accounts and 57 more
Ekwo OS costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Ekwo OS as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user ekwo-os-mcp '--' npx -y @ekwo-ai/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Nothing is required, but it can take SUPABASE_URL (https://<ref>.supabase.co of your own project), SUPABASE_ANON_KEY (The anon (publishable) key. Never the service_role key: the server refuses it.), EKWO_EMAIL (The user the assistant acts as), EKWO_PASSWORD (That user's password), EKWO_ACCESS_TOKEN (An access token, instead of email and password), EKWO_DB_URL (Direct Postgres connection, for a self-hosted database without PostgREST), EKWO_ACT_AS_USER_ID (Required with EKWO_DB_URL: the auth.users id the server acts for) if you want to set them.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
60 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
The companies of this installation that you are a member of, with your role on each. Start here: every other tool needs a company_id. Returns id, name, country, currency and your role. It does not list companies you were never invited to — those are invisible, not hidden. Next: get_company on the…
No parameter schema on file.
Everything needed before booking in a company: its financial years and whether they are closed, its lock dates, its journals, and the accounts that play the receivable, payable, suspense and retained-earnings roles. Read this before creating a document if you do not already know the journals and…
No parameter schema on file.
The accounts a company actually works with, filtered by code prefix, by account type, or by a search on the name. Use it to find the income or expense account a document line should carry. By default it returns the working chart — the accounts that carry entries, that the company's settings or an…
No parameter schema on file.
Customers, suppliers and other third parties of a company, by name, by type or by VAT number. Use it before creating a document: a document is booked against a contact, and creating a second contact for a customer who already exists splits their account. Nobody matches: create_contact. Found:…
No parameter schema on file.
Invoices, credit notes and quotes of a company, filtered by type, state, settlement state, contact or date range. state is the document (draft, posted, cancelled) and payment_state is the settlement (not_paid, partially_paid, paid) — two different questions. Returns headers and totals, not…
No parameter schema on file.
One document with its lines, the account and tax of each line, the legal mentions its country requires on it, that country's payment and e-invoicing rules, and — when it has been posted — the ledger entry it produced with every ledger line. Use it to check what a document will book, what it did…
No parameter schema on file.
The signed-in user’s own preferences — which company an interface opens on, the language they read labels in, their timezone and how they like a date and a number written — and the language chain to read labels with: theirs, then the company’s, then the country pack’s. Every one of them may be…
No parameter schema on file.
The keys a company has issued to machines, what each one may do, when it was last used and whether it is still live. Only somebody who manages members sees them, and no secret is in here: a key is shown once, when it is issued.
No parameter schema on file.
The people invited into a company and not yet on its books, with the preset and the capabilities each was invited with, and whether the invitation is still pending, expired, accepted or withdrawn. Only somebody who manages members sees them. The token is never in here: it is shown once, when the…
No parameter schema on file.
The links a company has published onto its own sales documents, with how many times each was opened and when it was last opened. No token is in here: a link is shown once, when it is made. Use it to answer "did the customer open the invoice?" and to find the link to withdraw.
No parameter schema on file.
Statement lines of a company, pending by default — the ones still waiting to be dealt with. amount is signed: positive is money in. A statement line is not a ledger entry; recording a payment is what books it.
No parameter schema on file.
Opening balance, movements of the period and closing balance for every account, from posted entries only. The debit and credit totals are equal on a healthy ledger; if they are not, say so rather than explaining it away.
No parameter schema on file.
Every posted line of an account over a period, with the balance carried forward from before it and a running balance. Give account_code for one account; leave it out for all of them, which on a real company is a lot of lines.
No parameter schema on file.
What customers still owe (or what is still owed to suppliers), bucketed by how overdue it is. It reads unmatched ledger lines, not invoices, so it ties back to the balance sheet: an invoice counts as settled only once its payment has been matched.
No parameter schema on file.
The boxes of the VAT return for a period, with their names: the base and tax boxes are summed from what the postings wrote on the ledger lines, the totals are derived from them by the declaration form of the country pack. No country rule lives in this tool, nor in the function behind it. Name a…
No parameter schema on file.
Who, in another Member State, was supplied without VAT over a period, and for how much: one line per customer VAT number and per nature — goods, services — read from the treatment of the tax on each sale line, with credit notes deducted. The totals tie back to the European Union boxes of…
No parameter schema on file.
What falls due between two dates in every company you may read the declarations of — the question a firm asks of all the books it keeps, and the one a person asks of the single company they run. "Portfolio" is meant as an accounting firm means it — its client portfolio — and is nothing but that:…
No parameter schema on file.
Which declarations, across your portfolio — every company you may read the declarations of, which for an accounting firm is its clients — had entries posted into their period after they were filed — with the company named, how many entries, and how many of the filed figures now disagree. A period…
No parameter schema on file.
The schemes this company can be presented on: those of its country and of its chart of accounts, plus the generic framework by account type that fits any chart. Ask this before financial_statement rather than guessing a code.
No parameter schema on file.
A balance sheet or an income statement for a period, on the scheme the country pack declares — the Belgian abbreviated model, the French liasse — or on the generic framework by account type. Each line is summed from the accounts its rules catch and the totals are derived from the lines; no country…
No parameter schema on file.
The Fichier des Écritures Comptables for a period: the eighteen columns of the arrêté du 29 juillet 2013, as text, with the checks a tax inspector applies first (mandatory fields, one side per line, entries balancing) and the filename the format wants. The file comes back in the answer; writing it…
No parameter schema on file.
The country packs this installation holds, with their version, how much anyone has read them, and the register of texts each was built from — the title, the official publisher, an absolute link and the day somebody opened it, per text. Use it whenever you are asked where a rate, a chart of…
No parameter schema on file.
The schema version, the instance this is, how this server is connected and as whom, and the companies you can see. Use it first when something does not add up — an empty company list usually means the user was never invited rather than that the books are empty.
No parameter schema on file.
Who changed what, and when. Every change to the configuration and reference data of a company — the chart of accounts, the journals, the taxes and the accounts they post to, the bank accounts, the contacts, the products, the financial years, the members and their roles, the country pack version —…
No parameter schema on file.
The catalogue of a company: what it sells and buys, with the code, the unit, the price, the account each books to and the tax each carries. Search it before writing a line by hand — a product fills in the text, the price, the account and the tax, and keeps two invoices for the same thing…
No parameter schema on file.
Adds an item to the catalogue: a code unique in the company, a name, a unit, a price, and optionally the account and the tax a sale or a purchase of it carries. It changes nothing already booked — a product is what a new line is filled in from, never a rule applied to the past. Search first: a…
No parameter schema on file.
Changes a catalogue row — its name, price, unit, account, tax — or retires it with active: false. Documents already written keep the text, the price and the account they were invoiced with; an invoice is a statement about the day it was raised, and this tool cannot rewrite one. Retiring is the way…
No parameter schema on file.
Adds a customer, supplier or other third party to a company. Search first: a duplicate contact splits a customer account in two and the aged balance stops making sense. payment_terms_days drives the due date a posted invoice gets when none is given. Next: create_document with the id it returns.
No parameter schema on file.
Creates a draft invoice, credit note or quote with its lines, and returns it with the totals the database computed — never with totals you supplied. A line may name a product_code, which fills in its text, price, unit, account and tax; anything the line carries wins over that. With no product and…
No parameter schema on file.
Replaces every line of a draft document with the set you give, and returns the document with its recomputed totals. Lines take product_code the same way create_document does. Drafts only: a posted document is never edited; cancel_document undoes it with a credit note.
No parameter schema on file.
Books a draft document: base lines, VAT lines from the tax configuration, and the customer or supplier counterpart, numbered and posted. A posted entry is never edited; a mistake is undone by cancel_document, which puts the document back to draft only where its country allows it and nothing has…
No parameter schema on file.
Undoes a posted sale or purchase invoice in one call, the one way its country and its facts allow, and says which in undone_by. 'draft': the country's posted_edit_policy lets a posted document go back to draft and nothing about this one has left — never sent nor on Peppol, not paid, not declared,…
No parameter schema on file.
Undoes a posted entry in one call: writes its mirror in the same journal — every line on the other side — naming it, posts it under the next number, and matches the two. The original keeps its number and its lines. Dated on the original's day unless you give a date; refused by name when that…
No parameter schema on file.
Records money in or out, books it (bank against the customer or supplier account) and, unless you say otherwise, matches it against that contact's oldest open invoices up to the amount paid. Matching is what makes an invoice count as paid. The entry it produces cannot be unposted, though the…
No parameter schema on file.
Matches a debit line against a credit line on the same reconcilable account, for an amount, defaulting to the smaller of the two open amounts. Use it to settle an invoice against a payment by hand. Matching changes no account and stays possible after a period is locked.
No parameter schema on file.
Removes one matching, putting the residual back on both lines. The entries themselves are untouched. It is what cancel_document and reverse_entry ask for first when what they would undo is matched.
No parameter schema on file.
Registers a bank account of the company from its identifier — an IBAN, an ABA routing number and an account number, a sort code and an account number, whatever the banks of the company's country use; the pack of the country says which, and it is checked — and wires it to the bank journal and to…
No parameter schema on file.
The bank accounts of a company, with their identifier and the scheme it is written in, the journal they book through and the ledger account behind each. Read it before recording a payment on a particular account, and to find out whether the company has one at all.
No parameter schema on file.
Records one statement line by hand, for an installation without a bank feed. amount is signed: positive is money in. It books nothing — the line waits as pending until a payment is recorded.
No parameter schema on file.
Reads a bank statement file and writes its statements and lines. format says what the file is — camt.053 (the ISO 20022 XML statement), coda or cfonb120, which are the ones this server reads today — and content is the file as text. It is never guessed from the content. It books nothing:…
No parameter schema on file.
Creates a company on a country pack: its chart of accounts, its journals and its taxes are copied in, its first financial year is opened on the month that country opens one on, and you become its first member. Creating a company is an instance-level act — it needs an instance administrator, and…
No parameter schema on file.
Changes what a company says about itself on its documents: the names it goes by, its address and identifiers, its logo, its stated capital, its activity code and the bank account customers are asked to pay into. Only the fields you name change. It touches nothing in the ledger, and it needs…
No parameter schema on file.
Writes the signed-in user’s own preferences and nobody else’s. Only the fields you name change: leave one out and it is untouched, pass null and it is cleared, which puts that question back to the company and then to the country pack. It changes nothing in the books.
No parameter schema on file.
Invites an address into a company with a preset — viewer reads, client reads and hands pieces over, accountant keeps the books, owner also administers — and any capability granted on top of it. It returns a token once and stores only its hash, so hand the token to the person you invited: they…
No parameter schema on file.
Issues a key so a script — a nightly import, a till, a bank feed — can work in one company without a person signing in. It carries an explicit list of capabilities and nothing else, it can never reach another company, and it cannot hold a capability you do not hold yourself — at issuance and at…
No parameter schema on file.
Stops a key working, now and for good. There is no un-withdraw: a secret that has been out of the building is issued again rather than brought back. Whatever the machine was doing with it stops, so say so before calling it.
No parameter schema on file.
Withdraws an invitation that has not been accepted, so its token stops working. An invitation that has already become a membership is refused: a member is taken out with remove_member.
No parameter schema on file.
Removes a member from a company, now: they stop reading and writing its books. Needs members.manage, except to leave a company yourself. The last owner of a company is refused, themself included; make somebody else owner with set_member_role first. Their pending invitations are not touched. Say…
No parameter schema on file.
Changes the preset of a member of a company — viewer reads, client reads and hands pieces over, accountant keeps the books, owner also administers. Needs members.manage. The capabilities granted or revoked on that member so far are cleared, and the ones you pass are granted on top of the new…
No parameter schema on file.
Publishes a posted sales invoice, credit note or quote behind a link the customer opens without an account and without a password: the token in the url is the whole secret. It returns that token once and stores only its hash, so give the url to the customer and say it cannot be read back. The page…
No parameter schema on file.
Stops a link working, now and for good. Whoever holds it sees exactly what they would see for a link that never existed. There is no un-withdraw: a secret that has been out of the building is issued again rather than brought back, so say so before calling it.
No parameter schema on file.
Adds accounts to the working chart of a company, so list_accounts offers them whether or not anything has been booked on them. Pass pinned: false to take one back out. Pinning is display and nothing else: an unpinned account may still be booked on, and a pinned one is still hidden once it is…
No parameter schema on file.
Moves the accounting lock date, the VAT lock date, or both. After this, nothing can be booked, changed or deleted on or before that date — including corrections you may want later. Only an owner of the company may do it. Always ask the user first, and never lock a period you have just posted into…
No parameter schema on file.
No parameter schema on file.
Turns the trial balance of whatever kept the books before into the opening entry of a fiscal year, on the opening journal, dated on its first day. Lines are {account_code, debit, credit}; total debit must equal total credit. Balance-sheet accounts only, unless allow_result_accounts is set, which…
No parameter schema on file.
Closes a year: the result of the year leaves the income statement the way the country model says — straight to retained earnings, into a current-year result account, or through the appropriation accounts — every income and expense account goes back to zero, and the year stops accepting entries.…
No parameter schema on file.
Undoes a close that was run too early: the entries it wrote are reversed, never deleted, and the year accepts entries again. Refused once a later year is closed or holds entries of its own, because re-opening changes a result those years stand on. Always ask the user before calling it.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under AGPL-3.0
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Ekwo OS or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (60 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| list_companies | no tags | |
| get_company | no tags | |
| list_accounts | no tags | |
| search_contacts | no tags | |
| list_documents | no tags | |
| get_document | no tags | |
| render_invoice_pdf | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| get_preferences | no tags | |
| list_api_keys | no tags | |
| list_invitations | no tags | |
| list_shares | no tags | |
| list_bank_transactions | no tags | |
| trial_balance | no tags | |
| general_ledger | no tags | |
| aged_balance | no tags | |
| vat_return | no tags | |
| ec_sales_list | no tags | |
| portfolio_upcoming_filings | no tags | |
| portfolio_filings_touched_since | no tags | |
| list_statements | no tags | |
| financial_statement | no tags | |
| financial_analysis | no tags | |
| generate_fec | no tags | |
| describe_pack | no tags | |
| status | no tags | |
| read_audit_log | no tags | |
| search_products | no tags | |
| create_product | state-write | state-write: declares readOnlyHint: false |
| update_product | state-write | state-write: declares readOnlyHint: false |
| create_contact | state-write | state-write: declares readOnlyHint: false |
| create_document | state-write | state-write: declares readOnlyHint: false |
| update_document_lines | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| post_document | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| cancel_document | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| reverse_entry | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| record_payment | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| reconcile | state-write | state-write: declares readOnlyHint: false |
| unreconcile | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| settle_from_statement | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| create_bank_account | state-write | state-write: declares readOnlyHint: false |
| list_bank_accounts | no tags | |
| create_bank_transaction | state-write | state-write: declares readOnlyHint: false |
| import_bank_statement | state-write | state-write: declares readOnlyHint: false |
| create_company | state-write | state-write: declares readOnlyHint: false |
| update_company_profile | state-write | state-write: declares readOnlyHint: false |
| set_preferences | state-write | state-write: declares readOnlyHint: false |
| invite_member | state-write | state-write: declares readOnlyHint: false |
| create_api_key | state-write | state-write: declares readOnlyHint: false |
| revoke_api_key | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| revoke_invitation | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| remove_member | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| set_member_role | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| share_document | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| revoke_share | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| pin_accounts | state-write | state-write: declares readOnlyHint: false |
| lock_period | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| import_books | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| opening_balance | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| close_fiscal_year | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| reopen_fiscal_year | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.13.0. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
- The version this listing was on when mcprush began following its releases. The registry was not asked when it shipped, so this row carries no date.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Ekwo OS can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.