Skip to main content
Glama
Coinversaa

Coinversaa Pulse

Official

pulse_cohort_performance_daily

Retrieve historical daily performance statistics for trader cohorts, including PnL, volume, trade counts, and active traders per tier. Tracks consistency and profitability over up to 30 days.

Instructions

Get historical daily performance statistics for all trader cohorts. Returns PnL, volume, trade counts, and active trader counts per tier. Use this to track the consistency and profitability of different groups over time. Max range is 30 days.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
useToonFormatNoReturn data in compact toon format (default: true). Set to false for standard JSON.
sinceNoTime window for history (max 30d). e.g. '7d', '14d', '30d'
startTimeNoExplicit start time (ISO string or timestamp). Overrides 'since'.
endTimeNoExplicit end time (ISO string or timestamp). Defaults to now.

Implementation Reference

  • src/index.ts:982-998 (registration)
    Registration of the pulse_cohort_performance_daily tool on the MCP server. Conditionally registered via shouldRegister(). Uses server.tool() with description, inputSchema (useToonFormat, since, startTime, endTime), and an async handler that calls the '/pulse/cohorts/daily-stats' API endpoint.
    if (shouldRegister("pulse_cohort_performance_daily")) server.tool(
      "pulse_cohort_performance_daily",
      "Get historical daily performance statistics for all trader cohorts. Returns PnL, volume, trade counts, and active trader counts per tier. Use this to track the consistency and profitability of different groups over time. Max range is 30 days.",
      {
        useToonFormat: useToonFormatSchema,
        since: sinceSchema.optional().describe("Time window for history (max 30d). e.g. '7d', '14d', '30d'"),
        startTime: z.string().optional().describe("Explicit start time (ISO string or timestamp). Overrides 'since'."),
        endTime: z.string().optional().describe("Explicit end time (ISO string or timestamp). Defaults to now."),
      },
      async ({ useToonFormat, since, startTime, endTime }) => {
        const params: Record<string, string> = {};
        if (since) params.since = since;
        if (startTime) params.startTime = startTime;
        if (endTime) params.endTime = endTime;
        return toolResult(await callAPI(useToonFormat, "/pulse/cohorts/daily-stats", params));
      }
    );
  • Handler function for pulse_cohort_performance_daily. Constructs query params (since, startTime, endTime) and calls the Coinversa API at /pulse/cohorts/daily-stats, returning formatted JSON/toon results.
    async ({ useToonFormat, since, startTime, endTime }) => {
      const params: Record<string, string> = {};
      if (since) params.since = since;
      if (startTime) params.startTime = startTime;
      if (endTime) params.endTime = endTime;
      return toolResult(await callAPI(useToonFormat, "/pulse/cohorts/daily-stats", params));
    }
  • Input schema for pulse_cohort_performance_daily: useToonFormat (boolean, default true), since (time window string like '7d'), startTime (ISO string), endTime (ISO string).
      useToonFormat: useToonFormatSchema,
      since: sinceSchema.optional().describe("Time window for history (max 30d). e.g. '7d', '14d', '30d'"),
      startTime: z.string().optional().describe("Explicit start time (ISO string or timestamp). Overrides 'since'."),
      endTime: z.string().optional().describe("Explicit end time (ISO string or timestamp). Defaults to now."),
    },
  • build/index.js:731-746 (registration)
    Duplicate registration in the compiled build/index.js file (mirrors src/index.ts).
    if (shouldRegister("pulse_cohort_performance_daily"))
        server.tool("pulse_cohort_performance_daily", "Get historical daily performance statistics for all trader cohorts. Returns PnL, volume, trade counts, and active trader counts per tier. Use this to track the consistency and profitability of different groups over time. Max range is 30 days.", {
            useToonFormat: useToonFormatSchema,
            since: sinceSchema.optional().describe("Time window for history (max 30d). e.g. '7d', '14d', '30d'"),
            startTime: z.string().optional().describe("Explicit start time (ISO string or timestamp). Overrides 'since'."),
            endTime: z.string().optional().describe("Explicit end time (ISO string or timestamp). Defaults to now."),
        }, async ({ useToonFormat, since, startTime, endTime }) => {
            const params = {};
            if (since)
                params.since = since;
            if (startTime)
                params.startTime = startTime;
            if (endTime)
                params.endTime = endTime;
            return toolResult(await callAPI(useToonFormat, "/pulse/cohorts/daily-stats", params));
        });
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It reveals that the tool returns performance data per tier and has a 30-day range limit, but it does not state that the operation is read-only, mention authentication needs, or describe behavior on parameter errors. The description lacks sufficient transparency for a read operation with multiple optional parameters.

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?

The description is concise, consisting of three front-loaded sentences that define the action, list key return fields, and state usage and a constraint. Every sentence contributes value, with no redundancy or extraneous information.

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

Completeness4/5

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

Given no output schema, the description compensates by listing the main return fields (PnL, volume, trade counts, active trader counts per tier). It clarifies scope ('all trader cohorts') and the 30-day limit. However, it does not mention the time-filtering parameters (since, startTime, endTime) or the output format toggle (useToonFormat), though these are well-documented in the schema. Overall, it is mostly complete for a straightforward read tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds only the 'max range 30 days' constraint, which is already present in the 'since' parameter's schema. The description does not provide additional meaning beyond what the schema offers, so a baseline score of 3 is appropriate.

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?

Description clearly states the tool retrieves historical daily performance statistics for all trader cohorts, listing specific return fields (PnL, volume, trade counts, active trader counts per tier). This distinguishes it from sibling tools like pulse_cohort_history or pulse_cohort_summary, which likely serve different purposes.

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

Usage Guidelines3/5

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

The description mentions using the tool to track consistency and profitability over time, and states a maximum range of 30 days. However, it does not explicitly define when to use this tool versus alternatives (e.g., pulse_cohort_summary for aggregate stats), nor does it provide exclusions or prerequisites.

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/Coinversaa/mcp-server'

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