Atlas / MCP servers / coinrithm / coinrithm-agent-trading

coinrithm-agent-tradingBLOCK

mcp/coinrithm/coinrithm-agent-trading

Let any AI agent (Claude, ChatGPT/Codex, Gemini) paper-trade on CoinRithm with a key you mint and control. Hosted MCP, local MCP, OpenAPI, skill + prompts.

Verdict
BLOCK
Grade
F
Trust score
53 /100
Exposed tools
48 44r · 4w · 0d
Transport
stdio · streamable-http
License
MIT
Stars
4
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://www.npmjs.com/package/@coinrithm/mcp-trading) [](./LICENSE) [](https://github.com/CoinRithm/coinrithm-agent-trading/actions/workflows/ci.yml) [](https://registry.modelcontextprotocol.io) [](https://glama.ai/mcp/servers?query=coinrithm) [](https://lightnow.ai/servers/io.github.CoinRithm/mcp-trading)

Let any AI agent — Claude (Code / Desktop), ChatGPT / Codex, Gemini — paper-trade on CoinRithm using a key you mint and control. Crypto spot, futures, and prediction markets all draw from a paper book that belongs to the key itself, funded with 50,000 virtual mUSD on first use (per-key books since 2026-09-05); each key keeps its own positions and performance attribution.

API reference: coinrithm.github.io/coinrithm-agent-trading (rendered from openapi.yaml). Releases: Changelog · Downloads and release notes. Listed on: the official MCP Registry (io.github.CoinRithm/mcp-trading), Smithery, LightNow, and Glama.

Agents are Open Knowledge Format (OKF)

A CoinRithm agent isn't code locked to one model — it's an Open Knowledge Format bundle: a portable directory of markdown + YAML frontmatter (agent.md, `char

Read from source at commit 25e2f0d9014eOBSERVED · 2026-10-11
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add mcp-trading --env COINRITHM_API_KEY=${COINRITHM_API_KEY} -- npx -y @coinrithm/[email protected]
03

Exposed tools (48)

44 read · 4 write · 0 destructive.

ToolRiskDescription
cancel_spot_orderwrite
close_futures_positionread
close_pm_paper_v2read
controlled-fixturereadControlled paper-only test definition
discover_pm_marketsread
export_agent_ledgerread
export_run_evidencewrite
fixturereadfixture
futures_quoteread
get_agent_ledgerread
get_arena_agentread
get_arena_leaderboardread
get_candlesread
get_crypto_moversread
get_equity_curveread
get_market_contextread
get_my_tradesread
get_newsread
get_performanceread
get_pm_paper_v2_positionsread
get_portfolioread
get_positionsread
get_spot_referenceread
get_walletread
list_open_ordersread
open_futures_positionread
open_pm_paper_v2read
open_pm_positionread
place_spot_orderwrite
pm_data_calibrationread
pm_data_canonicalread
pm_data_disagreementsread
pm_data_eventread
pm_data_eventsread
pm_data_overviewread
pm_data_sourcesread
pm_data_sources_healthread
pm_data_volume_historyread
pm_data_whale_walletread
pm_data_whale_walletsread
pm_data_whalesread
pm_quoteread
report_pm_opportunityread
resolve_symbolread
set_futures_sl_tpwrite
spot_quoteread
treadd
whoamiread
04

Trust audit

BLOCKgrade F · trust 53/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (2 observation(s))
Shell
declared (2 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/mcp-trading/src/agent/gate.ts:139
? "PM periodic eval (quiet price tape)"
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
packages/scheduler/src/publicEgress.ts:33
["169.254.0.0", 16], // link-local, cloud metadata (169.254.169.254)
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
.github/workflows/ci.yml:184
CAPACITY_TEST_DATABASE_URL: postgresql://postgres:[email protected]:5432/capacity_admission_test
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
docs/RELIABILITY.md:116
export CAPACITY_TEST_DATABASE_URL='postgresql://postgres:[email protected]:5432/capacity_admission_test'
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
packages/scheduler/src/config.test.ts:5
DATABASE_URL: "postgres://test:test@localhost/test",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
.gitleaks.toml:25
'''const secret = "crk_live_abc123_DEF456";''',
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/mcp-trading/src/agent/providers.test.ts:663
api_key: "unprefixed-other-key",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/scheduler/src/capacity.integration.test.ts:663
runtimeUrl.password = "disposable-fixture-only";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/scheduler/src/crypto.test.ts:9
const secret = "crk_live_abc123_DEF456";
LOWInventory / provenance · inv.hidden_file · CWE-1104
.gitleaks.toml
.gitleaks.toml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/mcp-trading/.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/mcp-trading/.prettierrc.json
.prettierrc.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/scheduler/.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/scheduler/.prettierrc.json
.prettierrc.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
.github/scripts/python-package-smoke.py:13
importlib.import_module(module.name)
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
packages/sdk-python/tests/test_client.py:50
importlib.import_module(module.name)
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
packages/sdk-python/tests/test_generated_contracts.py:30
importlib.import_module(module.name)
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
packages/sdk-python/tests/test_generated_contracts.py:44
module = importlib.import_module(cls.__module__)
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
packages/sdk-python/tests/test_generated_contracts.py:154
importlib.import_module(module.name)
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/mcp-trading/src/agent/gate.test.ts:151
? "PM periodic eval (quiet price tape)"
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
.github/workflows/ci.yml:76
--path ../../openapi.yaml \
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
examples/agents/leo-breakout-hunter/evaluation/scorecard.yaml:6
metricsRef: ../../_shared/scorecard.metrics.yaml
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
examples/agents/quant-reference/evaluation/scorecard.yaml:5
metricsRef: ../../_shared/scorecard.metrics.yaml
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/mcp-trading/src/agent/prompt.test.ts:122
new URL("../../../../examples/agents/", import.meta.url),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/mcp-trading/src/agent/skill.test.ts:322
new URL("../../../../examples/agents/", import.meta.url),

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 25e2f0d9014efull audit observations/trust-audit/mcp-server/coinrithm__coinrithm-agent-trading.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1125e2f0d9014eBLOCKF53first audit
06

Questions

What is the coinrithm-agent-trading MCP server?

Let any AI agent (Claude, ChatGPT/Codex, Gemini) paper-trade on CoinRithm with a key you mint and control. Hosted MCP, local MCP, OpenAPI, skill + prompts.

What tools does coinrithm-agent-trading expose?

48 in total: 44 read-only, 4 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is coinrithm-agent-trading safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (53/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does coinrithm-agent-trading need?

It reads COINRITHM_API_KEY, CRK_API_KEY, ENCRYPTION_KEY, NVIDIA_API_KEY, ROTATION_NEW_KEY and ROTATION_OLD_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does coinrithm-agent-trading run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @coinrithm/sdk at 0.3.5.

How current is this page?

The grade is for one exact copy of the source (25e2f0d9014e), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement