Alpaca Trading API integration for Model Context Protocol (MCP)
Currency 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
Convert currencies on the daily European Central Bank reference rates. No API key, no signup.
Quickstart
Install it the way its author documents:
The full guide: https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/currency.mcpb
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 Currency 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.
Install it the way its author documents:
The full guide: https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/currency.mcpb
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Call this tool for the latest ECB daily reference rates against any base: 1.0812 for USD means 1 base = 1.0812 USD. Crosses go through the euro. Returns the ECB rate date and the cache age.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| base | yes | — | |
| quotes | array | no | Only these currencies, at most 200. Omit for all of them |
Call this tool to convert an amount between any two ECB-quoted currencies, today or on a past date. Returns the converted amount, the cross rate to 6 decimals, the rounding applied and the rate date used.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount | number | yes | Amount in major units of the from currency, e.g. 100 or 12.34 |
| from | yes | — | |
| to | yes | — | |
| date | string | no | ISO date YYYY-MM-DD. Omit for the latest published rate. A weekend or TARGET holiday falls back to the last rate published on or before it, and the answer says so. A date older than the free 90-day wi |
Convert one amount into many currencies off the SAME ECB rate date, each rounded to its own minor units. For several lines at once (mixed-currency invoice lines), call it once per line: every line then shares one rate date. Unknown targets are listed, never failed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount | number | yes | — |
| from | yes | — | |
| to | array | yes | Target currencies |
Call this tool when a rebill or an invoice spans more than one currency, instead of asking the user for rates. Returns the fx_rates object expense_to_invoice takes, plus the rate date to write on the invoice.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| target | yes | — | |
| currencies | array | yes | The other currencies present, e.g. ["EUR", "GBP"]. Direction: each returned rate means 1 unit of that key = X units of the target, so {"EUR": 1.08} is 1 EUR = 1.08 of the target. The target needs no r |
Call this tool for the ECB rate of one currency pair across a window. Returns one row per published day plus the min, max, average and the change. A window wider than the free 90 days is shortened, not refused.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | yes | — | |
| to | yes | — | |
| days | integer | no | Trailing window in calendar days, default 30. Only TARGET business days carry a rate, so 30 days holds about 21 rows. Free reads up to 90 days back; Pro reads the whole series back to 1999-01-04 |
| from_date | string | no | ISO date, inclusive. Overrides days. Free is limited to the last 90 days |
| to_date | string | no | ISO date, inclusive, default today |
| max_rows | integer | no | Cap the table, default 200. min/max/avg still cover the whole window |
Call this tool for the ECB rate of one pair on one date. Returns both directions and the rate date, so a reciprocal is never reported as the published figure. A date beyond the free window is shortened, never refused.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | yes | — | |
| to | yes | — | |
| date | string | yes | ISO date YYYY-MM-DD. If the ECB published nothing that day - every weekend, 1 January, Good Friday, Easter Monday, 1 May, 25 and 26 December - the last rate published on or before it is returned and t |
Every currency in the ECB daily set with its rate against the euro and its decimal places. This is the whole domain: a code not on this list cannot be converted, quoted or historised here.
No parameter schema on file.
Report the ECB rate cache here: which dates are held, how old they are and when they refresh. Reads only. Check it before trusting a rate after time offline; a cache that no longer parses is quarantined and named.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
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 MIT
- 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 Currency 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 | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| 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 (200 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>".
Tool recovery stopped early in scripts/validate.mjs, servers/amortization/src/index.ts, servers/asset-register/src/index.ts and 11 more — the file registers more tools than the scanner reads in one file, so some may be missing from this surface.
servers/clauses/src/store.ts (7 KB) was not read: over the file-count budget.
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 |
|---|---|---|
| business_set | state-write | state-write: declares readOnlyHint: false |
| client_add | state-write | state-write: declares readOnlyHint: false |
| client_delete | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| client_list | no tags | |
| invoice_create | state-write | state-write: declares readOnlyHint: false |
| invoice_from_hours | state-write | state-write: declares readOnlyHint: false |
| invoice_list | no tags | |
| invoice_get | no tags | |
| invoice_mark_paid | state-write | state-write: declares readOnlyHint: false |
| invoice_pdf | no tags | |
| overdue_report | no tags | |
| price_check | no tags | |
| watch_add | state-write | state-write: declares readOnlyHint: false |
| watch_list | no tags | |
| watch_remove | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| watch_refresh | state-write | state-write: declares readOnlyHint: false |
| price_history | state-write | state-write: declares readOnlyHint: false |
| price_add_manual | state-write | state-write: declares readOnlyHint: false |
| alerts_pending | state-write | state-write: declares readOnlyHint: false |
| sheet_info | state-write | state-write: declares readOnlyHint: false |
| sheet_read | no tags | |
| sheet_query | state-write | state-write: declares readOnlyHint: false |
| sheet_stats | state-write | state-write: declares readOnlyHint: false |
| sheet_find | state-write | state-write: declares readOnlyHint: false |
| sheet_write | state-write | state-write: declares readOnlyHint: false |
| sheet_add_column | state-write | state-write: declares readOnlyHint: false |
| sheet_convert | state-write | state-write: declares readOnlyHint: false |
| timer_start | state-write | state-write: declares readOnlyHint: false |
| timer_stop | state-write | state-write: declares readOnlyHint: false |
| timer_status | no tags | |
| entry_add | state-write | state-write: declares readOnlyHint: false |
| entry_log | state-write | state-write: declares readOnlyHint: false |
| summary_day | no tags | |
| summary_week | no tags | |
| summary_client | no tags | |
| target_set | state-write | state-write: declares readOnlyHint: false |
| target_check | no tags | |
| entry_list | no tags | |
| entry_delete | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| entry_edit | state-write | state-write: declares readOnlyHint: false |
| project_set_rate | state-write | state-write: declares readOnlyHint: false |
| report | no tags | |
| export_csv | state-write | state-write: declares readOnlyHint: false |
| entry_mark_billed | state-write | state-write: declares readOnlyHint: false |
| invoice_summary | no tags | |
| license_status | no tags | |
| license_activate | state-write | state-write: declares readOnlyHint: false |
| bank_upload | external-sink | external-sink: keyword "export_to" |
| bank_files | no tags | |
| bank_delete_upload | no tags | |
| doc_upload | untrusted-input | untrusted-input: keyword "fetch", parameter "url" with "fetch" in the description |
| doc_files | no tags | |
| doc_delete_upload | no tags | |
| image_upload | untrusted-input | untrusted-input: keyword "fetch", parameter "url" with "fetch" in the description |
| image_files | no tags | |
| image_delete_upload | no tags | |
| pdf_upload | untrusted-input | untrusted-input: keyword "fetch", parameter "url" with "fetch" in the description |
| pdf_files | no tags | |
| pdf_delete_upload | no tags | |
| sheet_load | untrusted-input | untrusted-input: keyword "download", parameter "url" with "download" in the description |
| sheet_files | no tags | |
| sheet_unload | no tags | |
| zip_upload | no tags | |
| zip_files | no tags | |
| zip_delete_upload | no tags | |
| nonexistent_tool | no tags | |
| asset_add | state-write | state-write: declares readOnlyHint: false |
| asset_schedule | state-write | state-write: declares readOnlyHint: false |
| asset_list | no tags | |
| asset_journal | state-write | state-write: declares readOnlyHint: false |
| asset_report | no tags | |
| loan_create | state-write | state-write: declares readOnlyHint: false |
| loan_schedule | state-write | state-write: declares readOnlyHint: false |
| loan_list | no tags | |
| loan_repay_early | state-write | state-write: declares readOnlyHint: false |
| loan_journal | state-write | state-write: declares readOnlyHint: false |
| loans_report | no tags | |
| work_order_create | no tags | |
| work_order_add_line | no tags | |
| work_order_get | no tags | |
| work_order_status | no tags | |
| completion_report_text | no tags | |
| completion_report_pdf | no tags | |
| work_order_invoice_payload | no tags | |
| work_orders_report | no tags | |
| work_order_delete | no tags | |
| sku_set | state-write | state-write: declares readOnlyHint: false |
| sku_get | no tags | |
| rate_set | no tags | |
| lines_resolve | no tags | |
| price_list_text | no tags | |
| price_list_pdf | no tags | |
| catalogue_report | no tags | |
| sku_delete | no tags | |
| packing_list_create | no tags | |
| packing_expect | no tags | |
| carton_add | no tags | |
| pack_item | no tags | |
| carton_report | no tags | |
| packing_shortfall | no tags | |
| packing_list_status | no tags | |
| packing_slip | no tags | |
| checklist_create | state-write | state-write: declares readOnlyHint: false |
| checklist_item_add | state-write | state-write: declares readOnlyHint: false |
| checklist_show | no tags | |
| run_start | no tags | |
| run_check | no tags | |
| run_show | no tags | |
| run_sign_off | no tags | |
| checklist_item_remove | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| run_delete | no tags | |
| run_report | no tags | |
| run_list | no tags | |
| checklist_delete | no tags | |
| purchase-requisition_create | no tags | |
| purchase-requisition_item_add | no tags | |
| onboarding_hire_add | no tags | |
| onboarding_task_add | no tags | |
| onboarding_task_done | no tags | |
| onboarding_progress | no tags | |
| onboarding_template_apply | no tags | |
| onboarding_overdue | no tags | |
| change_order_create | state-write | state-write: declares readOnlyHint: false |
| change_order_add_line | state-write | state-write: declares readOnlyHint: false |
| change_order_get | state-write | state-write: declares readOnlyHint: false |
| contract_value | no tags | |
| change_order_status | state-write | state-write: declares readOnlyHint: false |
| change_order_document | no tags | |
| change_order_invoice_payload | no tags | |
| change_order_delete | no tags | |
| float_open | no tags | |
| voucher_add | no tags | |
| reconcile | no tags | |
| replenish_request | no tags | |
| float_report | no tags | |
| voucher_delete | no tags | |
| ledger_build | state-write | state-write: declares readOnlyHint: false |
| trial_balance | no tags | |
| ledger_lines | no tags | |
| month_close | no tags | |
| ledger_report | no tags | |
| statement_build | no tags | |
| statement_aging | no tags | |
| dunning_text | no tags | |
| statements_report | no tags | |
| perdiem_rates | no tags | |
| perdiem_calc | no tags | |
| trip_record | no tags | |
| trip_list | no tags | |
| trip_export | no tags | |
| perdiem_report | no tags | |
| deposit_record | no tags | |
| deposit_apply | no tags | |
| deposit_refund | no tags | |
| deposit_balance | no tags | |
| deposit_statement_text | no tags | |
| deposits_report | no tags | |
| deposit_statement_pdf | no tags | |
| credit_note_create | state-write | state-write: declares readOnlyHint: false |
| credit_note_text | no tags | |
| purchase_order_create | no tags | |
| purchase_order_receive | no tags | |
| billing_docs_report | no tags | |
| credit_note_pdf | no tags | |
| zip_create | no tags | |
| zip_list | no tags | |
| zip_extract | no tags | |
| zip_extract_text | no tags | |
| zip_history | no tags | |
| qr_create | state-write | state-write: declares readOnlyHint: false |
| qr_payment_sepa | no tags | |
| barcode_create | no tags | |
| invoice_payment_qr | no tags | |
| code_list | no tags | |
| quote_create | no tags | |
| quote_list | no tags | |
| quote_send_text | no tags | |
| quote_accept | no tags | |
| quote_report | no tags | |
| statement_import | state-write | state-write: declares readOnlyHint: false |
| category_rules | no tags | |
| statement_summary | no tags | |
| recurring_detect | no tags | |
| image_info | no tags | |
| image_resize | no tags | |
| image_thumbnails | no tags | |
| task_add | no tags | |
| task_move | no tags | |
| board | no tags | |
| task_start_timer | no tags | |
| ics_import | state-write | state-write: declares readOnlyHint: false |
| events_list | no tags | |
| conflicts | no tags | |
| event_to_time_entry | no tags | |
| pdf_info | no tags | |
| pdf_merge | no tags | |
| pdf_stamp | no tags | |
| pdf_text | no tags | |
| clause_search | no tags | |
| contract_assemble | no tags |
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
It installs from its repository rather than from a versioned package, so the command cannot be pinned to a release. The history below is for reading; the current release on file is 0.22.6.
No release note was published with this version.
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 Currency 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.