riskmodels-api-discovery — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited riskmodels-api-discovery (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Apply before implementing or refactoring:
https://riskmodels.app/apisdk/riskmodels/client.pyexamples/python/ or packages/riskmodels/examples/Do not use this skill to answer a stock or portfolio question. The catalog resources (riskmodels:///capabilities, riskmodels:///schemas/{path}, riskmodels:///openapi) are for wiring a client. Live numbers come from the MCP tools (riskmodels_get_stock_snapshot, riskmodels_decompose, riskmodels_compare, riskmodels_get_returns, …) or the matching REST routes. After an MCP OAuth connect, call a data tool first — reading the catalog does not count as activation.
Since @riskmodels/mcp 2.0.0 the catalog is served as MCP resources, not tools (the tool list is in mcp/README.md):
| Step | Resource | Purpose |
|---|---|---|
| 1 | `riskmodels:///capabilities` | Latest index of capabilities: ids, HTTP method, path, parameters, pricing, examples. Read this first so you are not working from an outdated mental model. |
| 2 | `riskmodels:///schemas/list` / `riskmodels:///schemas/{path}` | JSON response schema for an endpoint (e.g. ticker-returns-v2.json). |
| 3 | `riskmodels:///openapi` | Full OpenAPI 3 spec. |
Treat these resources as the provisioning schema for what the API exposes and how it bills—prefer them over remembered URLs when the server is available. Without MCP, read mcp/data/capabilities.json directly.
Regardless of MCP:
The cli-query capability (POST /api/cli/query) allows SELECT-only SQL queries against Supabase tables (security_history, symbols, macro_factors). Use it as a fallback when you need to explore raw data that isn't exposed through a dedicated endpoint — e.g., checking available date ranges, confirming column names, or sampling rows before building a client.
resp = requests.post(
"https://riskmodels.app/api/cli/query",
headers={"Authorization": f"Bearer {api_key}"},
json={"sql": "SELECT ticker, l3_mkt_er, l3_res_er FROM security_history WHERE ticker = 'AAPL' ORDER BY date DESC LIMIT 5"}
)Cost: $0.003/request. Rate-limited to 60/min. SELECT only — no writes.
RISKMODELS_API_KEY, RISKMODELS_BASE_URL).title not name on POST /portfolio/risk-snapshot)..agents/skills/repo-sync/ and maintainer rules).tests/*.test.ts, sdk/tests/) for new client surfaces.To reduce stale-tool issues when MCP registers many tools or updates often, use Cursor Settings → Beta → Update channel → Nightly. This is a local user setting; document it for the team but do not assume it is on in every session.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.