Skip to content

The MCP simulate_call tool description does not warn that state-changing calls may have side effects if the RPC simulate endpoint changes behavior #275

Description

@Lost-Z

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Stellar WaveIssues in the Stellar wave programdocumentationImprovements or additions to documentationmcpMCP server for AI agents

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions