Skip to main content
Glama
FinamWeb

Finam MCP Server

by FinamWeb

account_get_transactions

Retrieve account transaction history from Finam trading platform. Specify date range to view past trades, deposits, and withdrawals for financial tracking.

Instructions

Получение списка транзакций аккаунта

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
start_timeYes
end_timeYes
limitNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
transactionsYes

Implementation Reference

  • MCP tool handler implementing the account_get_transactions tool (prefixed from get_transactions). Proxies to FinamClient.get_transactions.
    @account_mcp.tool(tags={"account"})
    async def get_transactions(start_time: AwareDatetime, end_time: AwareDatetime,
                               limit: int = 10) -> GetTransactionsResponse:
        """Получение списка транзакций аккаунта"""
        return await get_finam_client().get_transactions(start_time, end_time, limit)
  • src/main.py:12-12 (registration)
    Registers the account_mcp server under the 'account' prefix, enabling tool names like 'account_get_transactions'.
    finam_mcp.mount(account_mcp, prefix="account")
  • Core helper method in FinamClient that performs the actual API call to fetch transactions.
    async def get_transactions(self, start_time: datetime, end_time: datetime, limit: int = 10):
        return await self.client.account.get_transactions(
            GetTransactionsRequest(account_id=self.account_id, start_time=start_time.isoformat(),
                                   end_time=end_time.isoformat(), limit=limit))
  • Utility function to retrieve the FinamClient instance from MCP context state.
    def get_finam_client() -> FinamClient:
        return get_context().get_state("finam_client")
  • Creates the FastMCP instance for account tools, where get_transactions is registered via decorator.
    account_mcp = FastMCP(name="FinamAccountServer")
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a read operation ('получение' - getting), implying it's likely non-destructive, but doesn't specify authentication requirements, rate limits, pagination behavior (beyond the limit parameter), or what constitutes a 'transaction' (e.g., deposits, withdrawals, trades). For a tool with no annotation coverage, this leaves significant behavioral gaps.

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

Conciseness4/5

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

The description is a single, efficient sentence in Russian that directly states the tool's purpose without unnecessary words. It's appropriately sized for a basic tool, though it could benefit from being more informative. The structure is straightforward, but it lacks front-loading of critical details like differentiation from siblings.

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

Completeness3/5

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

Given the tool has an output schema (which should document return values), the description doesn't need to explain outputs. However, with no annotations, 3 parameters (2 required), and 0% schema coverage, the description is incomplete—it doesn't address key contextual aspects like authentication, error handling, or transaction scope. It's minimally adequate but has clear gaps in guiding the agent.

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

Parameters2/5

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

The schema description coverage is 0%, meaning none of the parameters (start_time, end_time, limit) are documented in the schema. The description adds no parameter information beyond what's implied by the tool name—it doesn't explain what time ranges are valid, the format of transactions returned, or how the limit parameter interacts with pagination. With low schema coverage, the description fails to compensate, leaving parameters largely unexplained.

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

Purpose3/5

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

The description 'Получение списка транзакций аккаунта' (Getting a list of account transactions) clearly states the verb ('получение' - getting) and resource ('транзакций аккаунта' - account transactions), but it doesn't differentiate from sibling tools like account_get_trades or account_get_info. The purpose is understandable but lacks specificity about what distinguishes this transaction retrieval from other account-related operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, context for usage, or comparison with sibling tools like account_get_trades (which might retrieve trade-related transactions) or order_get_list (which might retrieve order-related transactions). The agent must infer usage from the tool name alone.

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/FinamWeb/finam-mcp'

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