AMMDocumentationWebsite ↗
tutorial · 4 min read

Connect a tool or build your first extension

Choose the supported integration surface and discover its live contract before making changes.

Reviewed 2026-10-24 · Windows & macOS

On this page

Choose the right surface#

Goal Start with What owns the operation
Submit research, inspect results or manage saved configuration REST catalogue/OpenAPI AMM API and engine services
Let a local assistant call AMM tools MCP The same API policies and execution services
Open or inspect a desktop workflow UI command bus or mounted controls The connected primary application
Implement trading behavior C# algorithm plugin Run-scoped algorithm host
Implement calculated chart/screener outputs Streaming indicator plugin Run/instrument-scoped indicator stream
Distribute a reusable setup Manifest-backed template/guide artifacts Plugin catalogue, then normal imported user state

Do not automate a screenshot's coordinates when a supported typed API already owns the task. Conversely, do not assume a registered REST route can perform every desktop-only action without a connected UI.

Discover before invoking#

Open the API's REST API catalogue browser at /api/catalogue/docs on the configured trusted API origin. Inspect /api/catalogue and /api/catalogue/openapi.json for current operations and schemas. These are generated from the registered application. Operation and tool counts change as features are added.

For a first integration, read algorithms and existing run status. Then prepare a research request from the current schema. Inspect explicit instruments, accounts, data policy and parameters before submission. Capture the returned job ID and poll its status to a terminal state. Retrieve results by that same ID.

Use REST for concrete discovery and lifecycle examples. Credentials belong in the supported local authority/token-file mechanism, not in URLs, checked-in scripts, screenshots or application logs.

Connect MCP locally#

Open MCP server, inspect status and available tools, and choose the supported Streamable HTTP or stdio-proxy setup for your client. The default HTTP MCP path is /mcp; discover the actual configured origin/path. Loopback enforcement is enabled by default.

Start with discovery such as amm_list_algorithms, then inspect the current schema for amm_start_backtest. Follow status and result tools with the returned identifier. Generated amm_rest_ tools reflect registered REST operations alongside curated workflows. Tool names alone are not a payload specification.

An AI tool call retains AMM's policy boundaries. LIVE admission still requires the UI's account preflight and approval. Do not expose the local MCP listener publicly just to connect an unrelated cloud assistant.

Control a connected desktop#

Discover /api/ui/commands and current UI state. Submit a supported named command and wait for its correlated acknowledgement. Inspect mounted controls afresh before invoking an action: target identities and available actions depend on what is actually mounted.

A timed-out desktop request has an unknown result until reconciled. A command sent with no trusted primary UI is different from a completed operation. Use UI control for window/tab addressing and the CLI/deep-link entry points.

Build a C# plugin#

Use the active configured watched plugin workspace and the supported scaffold. Reference the binary AMM.PluginSdk; do not add your algorithm to AMM's internal implementation directories. Package a real manifest and payload, build it, refresh discovery and verify the catalogue.

For an algorithm, implement lifecycle and data callbacks, use causal data and declare precise instruments. Make entry-protection intent explicit. For an indicator, implement the streaming interfaces, catalogue metadata, parameters, warmup and primary/extra outputs. A copied callback excerpt is not a complete compilable plugin.

Test the new payload in a backtest or isolated Simulation run before considering a live instance. New catalogue discovery does not replace plugin instances inside already-running sessions. Debug the process that actually executes the run; a local breakpoint does not inspect a remote worker.

Package a reproducible example#

Keep source, manifest, build instructions, a fixed-parameter backtest setup, expected data requirements and a template if useful. Exclude secrets and personal account state. Record the SDK/runtime compatibility and behavior limits. The plugin guides explain manifest discovery, shadow copies, templates and troubleshooting in detail.

Application screenshotOpen original ↗