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/Use the RiskModels MCP server tools exposed in Cursor (names may be prefixed depending on server config; canonical names from mcp/README.md):
| Step | Tool | Purpose |
|---|---|---|
| 1 | `riskmodels_list_endpoints` | Latest index of capabilities: ids, HTTP method, path, short description, cost hints. No arguments. Run this first so you are not working from an outdated mental model. |
| 2 | `riskmodels_get_capability` | Full detail for one capability id (parameters, pricing, examples). Input: { "id": "<capability-id>" }. |
| 3 | `riskmodels_get_schema` | JSON response schema for an endpoint path. Input: { "path": "/portfolio/risk-snapshot" } (shape per tool schema). |
Treat the output of these tools as the provisioning schema for what the API exposes and how it bills—prefer them over remembered URLs when the server is available.
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.