|
|
2 gün önce | |
|---|---|---|
| src | 3 gün önce | |
| tests | 2 gün önce | |
| .codex | 3 gün önce | |
| .gitignore | 1 ay önce | |
| CHANGELOG.md | 1 ay önce | |
| DB_SCHEME.md | 1 ay önce | |
| ORDER_PROTOCOL.md | 1 ay önce | |
| PROJECT.md | 1 ay önce | |
| README.md | 1 ay önce | |
| app.py | 1 ay önce | |
| bitstamp_api_docs.md | 1 ay önce | |
| bitstamp_websocket_api.md | 1 ay önce | |
| killserver.sh | 1 ay önce | |
| pyproject.toml | 1 ay önce | |
| requirements.txt | 1 ay önce | |
| restart.sh | 1 ay önce | |
| run.sh | 1 ay önce | |
| test_stress.sh | 1 ay önce | |
| tests.sh | 1 ay önce |
This release reflects the execution layer becoming stable and production-usable:
Execution MCP for Trader27.
This service is the order-and-account layer of the stack. It owns exchange access, account metadata, balances, fee schedules, precision/step rules, and the actual order lifecycle.
client_idGET / shows a minimal landing page with linksGET /dashboard shows the HTML dashboardname field is the arbitrary label you choose for that accountThis project is intended to stay lightweight at the FastMCP boundary and push exchange-specific details into adapter modules.
A local copy of the Bitstamp WebSocket API docs lives at bitstamp_websocket_api.md in the project root. Use that as the primary reference for live market data, private streams, and reconnect behavior.
The older REST reference file is still present too, but the websocket doc is the one to follow for the next integration step.
The app now persists Bitstamp metadata tables and refreshes them on startup, then once a day in the background:
GET /api/v2/currencies/GET /api/v2/markets/These are stored in SQLite for reuse across restarts.
exec-mcp no longer owns public live-price streaming. Price lookup is expected to come from crypto MCP's cached get_price path when needed.
exec-mcp keeps only the Bitstamp private websocket needed for order state updates.
client_id is optional on place_order and is stored on the local order record.get_open_orders(account_id, client_id=None) filters by client_id when supplied.cancel_all_orders(account_id, client_id=None) cancels all open orders for the account, and if an exchange order is already missing it is marked locally so it no longer appears open.expire_time is optional, no expire_time means a normal order, and expire_time means a GTD order.