Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Official MCP server for RiseUp — programmatic read-only access to your own cashflow data from Claude Desktop, Base44, the Claude Agent SDK, and other MCP clients.
Status: v0.1. The package returns real data via the RiseUp API.
Once installed and configured, ask your AI assistant questions like:
The assistant calls the get_budget tool, which fetches your real cashflow data through RiseUp's Exposed API using a Personal Access Token (PAT) you created.
npm install -g @riseup-oss/mcpRequires Node.js 18+.
Visit RiseUp's developer tokens page and create a token. While creating it, select the scopes it should have — select one or more of:
| Scope | Shown on the page as | Enables |
|---|---|---|
budget:read | תקציב | get_budget, get_transactions |
balances:read | יתרות בנק | get_current_bank_balances_data, get_historical_bank_balances_data |
mortgages:read | משכנתא | get_mortgages_data |
benchmarks:read | השוואה ללקוחות דומים | get_benchmarks_data |
A tool called without its scope fails with a 403 that names the missing scope. Scopes can't be added to an existing token — to use more tools later, create a new token with the scopes you need.
Copy the token. It is shown only once.
The token looks like riseup_pat_<32-bytes-base64url>.
#### Claude Desktop
Add to your claude_desktop_config.json (on macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"riseup": {
"command": "npx",
"args": ["-y", "@riseup-oss/mcp"],
"env": {
"RISEUP_PAT": "riseup_pat_paste_your_token_here"
}
}
}
}Fully quit Claude Desktop (Cmd+Q on macOS) and reopen — closing the window isn't enough. Claude Desktop reads claude_desktop_config.json only at startup, so any change to RISEUP_PAT or other env values needs a full restart to take effect. After restart, the get_budget tool should appear.
#### Claude Agent SDK
import { Claude } from '@anthropic-ai/claude-agent-sdk';
const claude = new Claude({
mcpServers: {
riseup: {
command: 'npx',
args: ['-y', '@riseup-oss/mcp'],
env: { RISEUP_PAT: process.env.RISEUP_PAT },
},
},
});| Variable | Required | Default | Description |
|---|---|---|---|
RISEUP_PAT | yes | — | Your riseup_pat_… Personal Access Token |
RISEUP_API_BASE | no | https://input.riseup.co.il | Override for staging / dev environments |
| Tool | Scope | Description |
|---|---|---|
get_budget | budget:read | Get the customer's budget for a given month. Accepts YYYY-MM, current, or previous. Returns envelopes (categories) with planned amounts and their actual transactions. |
get_transactions | budget:read | Get individual cashflow transactions filtered by cashflowMonth (YYYY-MM), transactionDate (YYYY-MM-DD), or businessName (case-insensitive substring), latest first. Filters combine with AND; maxTransactions (default 10000) keeps only the latest N. Each transaction includes its category, expense type, exclusion flag, and your comments / payment-app memo. See the transactions reference. |
get_mortgages_data | mortgages:read | Get the customer's mortgage: remaining balance, interest and principal, monthly payment, parts (tracks), last month's mortgage payments in the cashflow, and potential savings with RiseUp's mortgage product. See the mortgages reference. |
get_current_bank_balances_data | balances:read | Get the current balance of each bank account, with when it was last updated. See the current balances reference. |
get_historical_bank_balances_data | balances:read | Get daily bank balances over the last 1–90 days per account, with min / max / average. See the historical balances reference. |
get_benchmarks_data | benchmarks:read | Compare the customer's spending on eating out, groceries (כלכלה), electricity, insurance, mortgage, loans, communication, car and public transport with similar RiseUp customers. See the benchmarks reference. |
The balance tools need a token with the balances:read scope, get_mortgages_data needs mortgages:read and get_benchmarks_data needs benchmarks:read; get_budget and get_transactions work with budget:read. More tools (get_cashflow) coming in future releases.
Longer-form docs live in docs/:
X-Riseup-Token-Ref correlation header429 shape, how to handle it/developer/tokens.git clone [email protected]:riseup-oss/mcp.git
cd mcp
npm install
npm run build
npm testexamples/smoke-test.mjs drives the built MCP server as a real MCP client (same @modelcontextprotocol/sdk stdio transport Claude Desktop uses), calls get_budget, and prints PII-safe shape signals about the response — useful for verifying the end-to-end pipeline (PAT → RiseUp API → back) without piping an LLM into the loop:
RISEUP_PAT=riseup_pat_... RISEUP_API_BASE=http://127.0.0.1:6040 \
node examples/smoke-test.mjs --date=currentexamples/fetch-budget.mjs is a lower-level alternative that calls the HTTP endpoint directly and dumps the JSON body to stdout for local inspection:
RISEUP_PAT=riseup_pat_... node examples/fetch-budget.mjs 2026-05 > /tmp/budget.jsonBoth default RISEUP_API_BASE to http://127.0.0.1:6040 because Node 18's fetch resolves localhost to ::1 and most servers bind IPv4 only — set explicitly if your local API server is elsewhere.
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.