Skip to main content
Glama
Koniverse

senti-mcp-server

by Koniverse

List deal history for an account

list_deals
Read-only

List closed deals for a given MT5 account, returning each executed fill's symbol, direction, volume, price, realized profit, costs, and timestamp, newest first.

Instructions

List the closed deal history of one MT5 account — the fills that already happened, newest first: symbol, direction, entry kind, volume, price, realized profit, costs and time. For what is open right now use list_positions, and for orders still resting use list_pending_orders. For totals and ratios over a period use get_account_performance rather than adding these rows up. accountId is the id field from list_accounts — NOT login. This endpoint is paginated: limit defaults to 50 and may not exceed 500, and one call returns exactly one page. If the answer reports that more deals are available, it also reports a cursor — you must call this tool again passing that value as cursor to read the next page. This tool never pages on its own. Narrow instead of paging where you can: entry takes lowercase in (opening) or out (closing), and from/to take ISO-8601 timestamps.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoWindow end (ISO-8601). Omit for no bound on this side.
fromNoWindow start (ISO-8601). Omit for no bound on this side.
entryNoNarrow to opening deals (`in`) or closing deals (`out`). Lowercase — the `entry` field in the response is uppercase and is not valid here. Omit for both.
limitNoDeals per page, 1 to 500. Defaults to 50. One call returns one page; it is never a total.
cursorNoThe `nextCursor` from a previous call to this tool, to retrieve the page after it. Omit for the first page. Opaque — do not construct or edit one.
accountIdYesThe `id` field from list_accounts. Not the `login` (MT5 account number).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dealsYes
nextCursorYes
syncedThroughYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite readOnlyHint and openWorldHint annotations, the description adds substantial behavioral context: pagination is manual ('never pages on its own'), exactly one page per call, cursor semantics, and limit defaults/ceiling. It also clarifies that the response reports availability of more deals via a cursor, and that entry is lowercase in the parameter unlike the response field. This goes well beyond annotation signals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place. The description starts with the core purpose, then moves to alternatives, pagination rules, and filter guidance. It is appropriately sized for a paginated, filterable tool with six parameters and a cursor, and the structure is logical and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex (pagination, cursor, multiple filters, sibling differentiation), but the description addresses all key behaviors: what is returned, how pagination works, how to narrow results, and which parameters to use. The existence of an output schema reduces the need to spell out return fields, and the description still lists the main deal attributes. It is fully complete for an agent to invoke correctly without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already covers all six parameters (100% coverage), but the description enriches each: accountId is explicitly tied to list_accounts.id 'not login', entry warns about lowercase vs uppercase response field, from/to require ISO-8601, limit is per-page not total, and cursor is opaque and must be reused. These clarifications prevent common misuse and are not present in the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb-resource-scope pair: 'List the closed deal history of one MT5 account — the fills that already happened, newest first' and enumerates the fields returned. It clearly distinguishes itself from sibling tools by naming list_positions and list_pending_orders for open/resting state and get_account_performance for aggregates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use vs alternatives: 'For what is open right now use list_positions, and for orders still resting use list_pending_orders. For totals and ratios over a period use get_account_performance rather than adding these rows up.' It also gives pagination guidance and filter-narrowing advice, so the agent knows exactly when to choose this tool and how to use it effectively.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Koniverse/Senti-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server