Summary
The simulate_call tool description in crates/lumenqraph-mcp/src/tools.rs says the call is a dry-run and nothing is signed or broadcast. This is correct for the current Soroban RPC implementation. However, if an AI agent calls simulate_call with a state-changing function and the RPC endpoint's behavior changes (e.g. a future Soroban upgrade makes simulation have on-chain effects), the agent has no way to detect this. The warning in the tool description is the only safeguard.
Expected Behavior
The tool description should be explicit about the trust boundary: Lumenqraph itself does not submit transactions, but the safety guarantee ultimately depends on the RPC endpoint's simulation semantics.
Proposed Solution
- Update the
simulate_call tool description to explicitly state the trust boundary: This relies on the Soroban RPC's simulateTransaction endpoint returning without submitting to the network. Lumenqraph does not sign or broadcast anything.
- Add the same note to the
/simulate endpoint documentation in docs/API.md
Affected Files
crates/lumenqraph-mcp/src/tools.rs
docs/API.md
Summary
The
simulate_calltool description incrates/lumenqraph-mcp/src/tools.rssays the call is a dry-run and nothing is signed or broadcast. This is correct for the current Soroban RPC implementation. However, if an AI agent callssimulate_callwith a state-changing function and the RPC endpoint's behavior changes (e.g. a future Soroban upgrade makes simulation have on-chain effects), the agent has no way to detect this. The warning in the tool description is the only safeguard.Expected Behavior
The tool description should be explicit about the trust boundary: Lumenqraph itself does not submit transactions, but the safety guarantee ultimately depends on the RPC endpoint's simulation semantics.
Proposed Solution
simulate_calltool description to explicitly state the trust boundary:This relies on the Soroban RPC's simulateTransaction endpoint returning without submitting to the network. Lumenqraph does not sign or broadcast anything./simulateendpoint documentation indocs/API.mdAffected Files
crates/lumenqraph-mcp/src/tools.rsdocs/API.md