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
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. | |
| since | No | Time window for history (max 30d). e.g. '7d', '14d', '30d' | |
| startTime | No | Explicit start time (ISO string or timestamp). Overrides 'since'. | |
| endTime | No | Explicit 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)); } ); - src/index.ts:991-997 (handler)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)); } - src/index.ts:986-990 (schema)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)); });