Skip to main content
Glama
anmolratna

FinOps AI Copilot MCP Server

by anmolratna

MCP Dashboard

A minimal dashboard for MCP services (local backend + server + tools).

Features

  • Local mock backend and API client utilities

  • Services for analytics, wallet, transactions, vendors, and more

Related MCP server: KVMFleet MCP Server

Prerequisites

  • Node.js (16+)

  • npm or yarn

Install

npm install

Run (development)

npm run dev

Build

npm run build

Project structure (key files)

  • src/: application source

    • src/server.ts - main server

    • src/chatServer.ts - chat server

    • src/localBackend.ts - local backend

  • api/axios.ts - axios client

  • services/ - business logic services

  • tools/ - utility scripts (analytics, dashboard, etc.)

Notes

  • See package.json for available npm scripts.

  • This README is a starting point — expand sections as needed.

FinOps AI Copilot MCP Server

A production-quality Model Context Protocol (MCP) server that acts as a secure, read-only AI gateway for fintech operations dashboards. It allows LLMs (such as Cursor, Claude Desktop, or OpenAI-compatible engines) to inspect transactions, vendor performance, wallet balances, and analytics via secure REST APIs instead of exposing the database directly.

Project Overview

FinOps AI Copilot enables natural language query resolution for operational and financial dashboards. By exposing standardized tools through the Model Context Protocol, the AI assistant can query real-time data securely.

Architecture

graph TD
    User([User Query]) --> Client[Claude Desktop / Cursor / AI Client]
    Client -->|JSON-RPC via stdio| Server[FinOps MCP Server]
    Server -->|Zod Validation| Services[Service Layer]
    Services -->|Axios REST Calls| Backend[Dashboard Backend REST API]
    Backend --> DB[(MongoDB Database)]

Security Design

  1. Read-Only Enforcement: The MCP server only exposes query tools (get*, find*, compare*, summary). No state-changing endpoints are integrated.

  2. Gateway Pattern: The AI client never directly talks to MongoDB or runs raw queries. All requests pass through the gateway and are validated against strict Zod schemas.

  3. Data Sanitization: Secrets, customer sensitive credentials, and database keys are never exposed in tool definitions.

  4. Environment Isolation: API endpoints and credentials are loaded dynamically from environment variables.


Installation

Prerequisites

  • Node.js (v18 or higher)

  • npm or yarn

Setup

  1. Clone or navigate to the workspace directory:

    cd "/Users/apple/Desktop/mcp dasboard"
  2. Install dependencies:

    npm install
  3. Configure Environment Variables: Copy .env.example to .env and fill in the details:

    cp .env.example .env

Environment Variables

Variable

Description

Default

PORT

Local port for optional server operations

3000

BACKEND_API_URL

Base URL of the existing REST API

http://localhost:4000/api

BACKEND_API_KEY

Bearer Token / API key for REST endpoints

mock-api-key-12345

LARGE_TRANSACTION_THRESHOLD

Threshold to filter large payments

50000


Available Tools

The MCP server registers the following operational tools:

1. Dashboard

  • getDashboardMetrics: High-level business overview (Total processed volume, count, success rate, failed amount, pending transaction count, wallet balance).

2. Transactions

  • findTransactionById: Search transaction details by transaction ID.

  • findTransactions: Search for transactions using filters like status, vendor, merchant, amount range, and dates.

  • failedTransactions: Retrieve failed transaction list (supports pagination).

  • pendingTransactions: Retrieve pending payout/settlement list.

  • largeTransactions: Retrieve payments exceeding the threshold.

  • retryTransactions: Retrieve payments that have been retried multiple times.

3. Vendors

  • vendorPerformance: Return success/failure rates, average response times, and volumes for a specific vendor.

  • topVendor: Get vendor with the highest success rate.

  • worstVendor: Get vendor with the highest failure rate.

  • vendorComparison: Side-by-side comparison of two vendors.

4. Wallet

  • walletBalance: Current wallet balance across channels.

  • walletHistory: Log of credit/debit adjustments and balance history.

5. Analytics & AI Summary

  • todayVsYesterday: Daily comparison of transactions count, amount, and success rates.

  • weeklyAnalytics: Last 7 days metrics.

  • monthlyAnalytics: Current month summaries.

  • peakHour: Identifies busiest transaction hour.

  • merchantAnalytics: Top merchants by volume and transaction count.

  • dailySummary: AI-structured daily business performance summary with recommendation.


Claude Desktop Configuration

To link this server with your Claude Desktop client, append the following block to your local configuration file:

File Paths

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Configuration Snippet

{
  "mcpServers": {
    "finops-ai-copilot": {
      "command": "node",
      "args": [
        "/Users/apple/Desktop/mcp dasboard/node_modules/tsx/dist/cli.js",
        "/Users/apple/Desktop/mcp dasboard/src/server.ts"
      ],
      "env": {
        "BACKEND_API_URL": "http://localhost:4000/api",
        "BACKEND_API_KEY": "mock-api-key-12345",
        "LARGE_TRANSACTION_THRESHOLD": "50000"
      }
    }
  }
}

Testing locally

To run the mock backend and query the services locally:

  1. Start the mock backend REST API (runs on port 4000):

    npx tsx scratch/mock_backend.ts
  2. Run the integration test client:

    npx tsx scratch/test_client.ts
  3. Type check the server code:

    npm run build

Future Roadmap

  • Anomaly Detection: Flags sudden drops in success rates.

  • Root Cause Analysis: Diagnoses why transactions fail (e.g., bank downtime vs. card failure).

  • Fraud Detection: Identifies velocity spikes or suspicious repeated low-value transactions.

  • Vendor Recommendation: Dynamic routing recommendations to route traffic away from degrading vendors automatically.

  • Scheduled Reports: Automatic generation and distribution of daily/weekly reports via email or Slack.

  • Role-Based Access Control (RBAC): Fine-grained user/client permissions for different categories of financial metrics.

Available Tools

19 tools
dailySummaryA

Retrieve a structured business operations summary for today, including total volume, transaction counts, success rates, top/worst vendors, peak hour, and AI routing recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly indicates a read-only retrieval action ('Retrieve') and describes the output composition, but it omits any details about data freshness, timezone handling, failure behavior, or what 'AI routing recommendations' entails. The wording is not misleading, but neither is it rich.

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 a single, well-structured sentence with no filler. It front-loads the main purpose ('structured business operations summary for today') and then efficiently enumerates the included metrics, making the scope immediately understandable.

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?

For a zero-parameter aggregation tool, the description does enough to tell an agent what it returns and when it applies. It lacks an output schema and does not clarify the exact shape of the response or edge-case semantics like an empty day, but the invocation surface is trivial and the listed contents provide adequate completeness for selection and use.

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

Parameters4/5

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

The tool has zero parameters and the schema already documents 100% of what is needed. The description reinforces that the tool is a fixed-scope 'today' summary with no user-supplied inputs, which is an appropriate baseline for a parameterless tool.

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

Purpose4/5

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

The description uses a clear verb ('Retrieve') and specifies the resource ('a structured business operations summary for today') plus the exact contents (volume, counts, success rates, vendors, peak hour, AI recommendations). It distinguishes itself from component tools like topVendor, worstVendor, and peakHour by presenting this as an aggregate daily summary, though it could more explicitly differentiate itself from the similar-sounding getDashboardMetrics.

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 phrase 'for today' establishes clear timing context for when this tool should be used, and the listed contents imply a consolidated daily snapshot. However, it never explicitly states when not to use it or names alternatives such as getDashboardMetrics or vendorPerformance, leaving the choice versus siblings to inference.

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

failedTransactionsB

Retrieve a list of failed transactions (helps operational debug).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
limitNoNumber of results per page

TDQS

B3.2/5.0
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 indicates a read/list operation, but it does not explain pagination behavior, failure criteria, sorting, time range, or response shape. 'Retrieve a list' is minimal and mostly restates the tool name.

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 compact and front-loaded with the core action and resource. It contains no fluff, and the operational-debug note earns its place as light guidance. It is appropriately concise for a simple paginated list tool, though not especially rich.

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?

For a simple two-parameter paginated list, the description is minimally adequate. However, with no annotations, no output schema, and many sibling transaction tools, the lack of selection guidance and behavioral detail leaves notable gaps for an agent deciding when and how to call it.

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?

The input schema already documents both parameters (page and limit) with descriptions, and schema description coverage is 100%. The tool description adds no parameter-level meaning, but because the schema covers all parameters, the baseline score of 3 applies.

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

Purpose4/5

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

The description clearly identifies the action ('Retrieve') and the resource ('failed transactions'), so an agent can tell what the tool does. It does not explicitly distinguish itself from sibling status-based tools like pendingTransactions or largeTransactions, but 'failed' provides enough inherent separation.

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 parenthetical 'helps operational debug' gives some usage context, but it is vague and provides no explicit when-to-use or when-not-to-use guidance. No alternative tools are named, so an agent must infer when this tool is preferred over similar list tools.

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

findTransactionByIdA

Retrieve details of a specific transaction using its unique transaction ID (e.g. TXN12345).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe unique ID of the transaction to search for (e.g., TXN12345)

TDQS

A3.8/5.0
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 only says 'Retrieve details' which implies a read operation, but it does not mention what happens if the ID is not found, error behavior, or that it returns a single object. The description is minimal and adds little beyond the name and schema.

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 a single, front-loaded sentence with zero waste. It directly states the action and the required resource, making it easy for an agent to parse quickly.

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?

For a simple single-parameter lookup tool, the description is sufficient for correct invocation. It does not explain return values (no output schema) but that is not a critical gap here. It could mention not-found handling, but given the simplicity, it is reasonably complete.

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% and the parameter 'id' is fully described in the schema. The description does not add any additional meaning beyond what the schema already provides. Per the baseline rule for high schema coverage, a 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?

The description clearly states a specific verb ('Retrieve') and a specific resource ('details of a specific transaction using its unique transaction ID'). It distinguishes from sibling tools like findTransactions (which likely list transactions) by emphasizing the unique ID lookup, making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context on when to use this tool: when you have a specific transaction ID. It doesn't explicitly mention alternatives or exclusions, but the context strongly implies that this is the go-to for retrieving a single known transaction, which is sufficient for an agent to decide.

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

findTransactionsC

Search for transactions with filters like status, vendor, merchant, amount range, dates, and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (starts at 1)
limitNoNumber of results to return per page
statusNoFilter by transaction status
vendorNoFilter by processing vendor (e.g. Razorpay, Cashfree)
endDateNoFilter up to this date (ISO format YYYY-MM-DD)
merchantNoFilter by merchant name
maxAmountNoMaximum transaction amount
minAmountNoMinimum transaction amount
startDateNoFilter from this date (ISO format YYYY-MM-DD)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It reveals that the tool searches transactions with filters, which suggests a read operation, but it does not state the output format, pagination behavior, default result size, or what an empty result looks like. There is no contradiction with annotations because none exist.

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 a single, focused sentence that front-loads the core action and summarizes the main filter categories without wasted words. It is appropriately sized for a tool with this many optional parameters.

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

Completeness2/5

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

Although the description covers the tool's high-level purpose, it is incomplete for a read tool with 9 optional parameters, no output schema, and no annotations. It omits the return structure, default behavior when no filters are provided, and how this tool relates to the many sibling transaction-list tools. An agent would need additional context to use it with full confidence.

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 9 parameters. The description groups them into categories like 'amount range' and 'dates,' which helps map to minAmount/maxAmount and startDate/endDate, but it adds no deeper semantics such as date inclusivity or default pagination values. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a clear verb ('Search') and resource ('transactions') and enumerates the filter dimensions (status, vendor, merchant, amount range, dates, pagination). This identifies the tool's main function, though it does not explicitly distinguish it from sibling filtered transaction tools like failedTransactions or pendingTransactions.

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?

No guidance is provided for when to use this tool versus alternatives. Given siblings like findTransactionById, failedTransactions, pendingTransactions, and largeTransactions, the description should clarify that this is the general filtered-search option, not the specialized or ID-based variant. The absence leaves the agent to infer the tool's role.

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

getDashboardMetricsA

Retrieve high-level dashboard metrics (total volume, transaction counts, success rates, wallet balance). Useful for general business health checks.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral disclosure, and 'Retrieve' plus 'high-level' conveys a read-only, aggregated result. However, it omits details such as time range, data freshness, or response format, so an agent gets only a basic behavioral picture.

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 a single well-structured sentence that leads with the action and resource, immediately lists the returned metrics, and adds the use case. Every clause contributes information.

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?

For a no-parameter tool this is reasonably complete, but the absence of an output schema and annotations leaves the exact return shape and time horizon undefined. The sibling list contains overlapping summary tools, and the description does not fully disambiguate them.

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

Parameters4/5

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

The input schema has zero parameters and the description lists exactly what metrics are covered, so there is nothing ambiguous for the agent to resolve. This meets the baseline for a parameterless tool.

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

Purpose4/5

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

The description states a specific action ('Retrieve') and a specific resource ('high-level dashboard metrics'), enumerating the metric categories it returns. It is clear enough to distinguish a broad dashboard overview from the more specialized sibling tools, though it does not explicitly name those alternatives.

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

Usage Guidelines4/5

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

'Useful for general business health checks' provides a clear context for when to call the tool. It does not explicitly list exclusions or alternative tools, so it stops short of a 5.

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

largeTransactionsB

Retrieve a list of transactions with amounts exceeding a specified threshold (e.g. ₹50,000).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
limitNoNumber of results per page
minAmountNoCustom threshold amount. If not provided, fallback to env configuration.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It communicates that this is a read operation and the core filtering behavior, but it does not disclose pagination behavior, default threshold fallback, ordering, or result shape. The provided example adds some context but leaves meaningful gaps.

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?

One sentence with no filler, front-loading the action and resource, and including a concrete currency example. Every word contributes to understanding the tool's purpose.

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?

The tool is a simple read-only listing with optional parameters and no output schema, so the core call is adequately described by the combination of description and schema. However, it lacks guidance on default behavior when minAmount is omitted and how pagination defaults work, leaving a moderate gap.

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?

The input schema already documents all three parameters with 100% coverage, so the description adds little parameter semantics beyond a concrete threshold example. The baseline of 3 is appropriate since the schema carries the parameter documentation burden.

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

Purpose4/5

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

The description clearly states the verb 'Retrieve', the resource 'transactions', and a specific selection criterion: amounts exceeding a threshold. It is distinct from obvious siblings like failedTransactions and pendingTransactions, though it does not explicitly contrast with findTransactions.

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?

No guidance is given about when to use this tool instead of findTransactions, failedTransactions, or pendingTransactions. The word 'large' implies a threshold use case, but that is not sufficient to reliably route an agent.

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

merchantAnalyticsC

Retrieve volume, transaction count, and performance breakdown for merchants.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of merchants to return

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, but it does little beyond restating the purpose. It implies a read-only retrieval and lists metric categories, yet it does not disclose the time window, grouping, sorting, default scope, or output shape, leaving the agent to guess operational details.

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 a single efficient sentence with no filler. It front-loads the verb and uses enumeration to convey the returned metrics compactly.

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

Completeness2/5

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

For a tool with no output schema and no annotations, the description is too sparse: 'performance breakdown' is ambiguous, no time range or grouping is specified, and the agent cannot infer the response structure or default behavior. The optional limit parameter is not contextualized.

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?

The single parameter 'limit' is fully documented in the schema ('Maximum number of merchants to return'), so schema coverage is 100% and the baseline is 3. The description adds no additional meaning about the parameter or how it interacts with the analytics.

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

Purpose4/5

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

The description uses the specific verb 'Retrieve' and identifies the resource ('merchants') plus the data dimensions ('volume, transaction count, and performance breakdown'). However, it does not differentiate merchantAnalytics from sibling tools like vendorPerformance or getDashboardMetrics, so it is clear but not uniquely scoped.

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?

No guidance is provided about when to choose this tool over siblings such as dailySummary, weeklyAnalytics, vendorPerformance, or vendorComparison. The description only states what it retrieves, with no mention of use cases, prerequisites, or exclusions.

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

monthlyAnalyticsA

Fetch high level summaries (volume, transaction count, success rate) for the current month.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are present, so the description must carry the behavioral burden. It discloses that this is a read-style summary fetch and enumerates the returned metrics, which is helpful. It does not clarify read-only guarantees, month-boundary definition, timezone handling, or aggregation caveats.

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?

A single sentence that puts the verb and resource first, then lists the concrete metrics, with no filler or redundancy. Every word adds useful information.

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?

For a parameterless tool, an agent has everything needed to invoke it, and the description names the expected result fields. However, with no output schema and no annotations, 'volume' is ambiguous, the exact boundary of the current month is unspecified, and the sibling analytics tools share overlapping aggregate-summary semantics.

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

Parameters4/5

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

The tool has zero parameters and 100% schema coverage, so the input schema fully documents the call signature. The description adds context about the returned metrics, but no parameter explanations are needed; this matches the baseline for a parameterless tool.

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

Purpose4/5

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

States a clear action ('Fetch'), a resource type ('high level summaries'), the included metrics, and a temporal scope ('current month'). This distinguishes it from daily/weekly siblings by time window, but it does not explicitly name an alternative or specify whether the summaries are merchant-wide or global.

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 temporal qualifier implies it should be used when current-month aggregate metrics are needed, which is useful context. However, there is no explicit when-to-use or when-not-to-use guidance, and among the many sibling analytics tools the description does not direct the agent to an alternative.

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

peakHourA

Find the hour of the day with the highest transaction density and processing volume.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. The verb 'Find' implies a read-only analysis, but the description does not disclose the data scope, time window, whether a single hour label is returned, or any aggregation details. It is minimally transparent but not rich.

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 a single, focused sentence with no filler. The core purpose is front-loaded and every word contributes to the meaning.

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?

For a parameterless tool this is reasonably complete, but without an output schema the description does not specify the return format (e.g., hour number, timestamp, or metric value) or the data range considered. An agent could call it correctly, but might be uncertain about interpreting the result.

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

Parameters4/5

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

The tool has zero parameters and the schema coverage is 100%, so there are no parameter semantics to explain. The description adds value beyond the empty schema by clarifying what the tool computes.

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 states a specific verb ('Find') and a precise resource ('hour of the day with the highest transaction density and processing volume'). No sibling tool targets this exact metric, so it is clearly distinguished from the other analytics tools.

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 intended use is implied by the description—an agent needing the peak transaction hour would select this tool—but there is no explicit statement of when to use this versus alternatives like dailySummary, weeklyAnalytics, or getDashboardMetrics. No exclusions or alternative routing are provided.

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

pendingTransactionsA

Retrieve a list of pending transactions (helps track delayed settlements/payouts).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
limitNoNumber of results per page

TDQS

A3.5/5.0
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. The verb 'Retrieve' implies a read-only operation, but the description does not disclose pagination behavior, sort order, time windows, response shape, or any other runtime behavior an agent would need to anticipate.

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 one tight sentence with the core action front-loaded and a useful parenthetical qualifier. There is no redundant phrasing or filler.

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?

For a simple paginated list tool with two clearly documented parameters, the description is reasonably complete. However, there is no output schema and no annotations, and the description does not explain the default pagination behavior, the response format, or precisely what qualifies a transaction as 'pending.'

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%: both 'page' and 'limit' are already documented in the input schema. The description adds no additional meaning or guidance about these parameters, so the baseline score of 3 applies.

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 uses a specific verb ('Retrieve') and a specific resource ('a list of pending transactions'), making the tool's purpose immediately clear. The parenthetical clarifies the business value, and the 'pending' qualifier distinguishes it from sibling tools like failedTransactions and findTransactions.

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 parenthetical 'helps track delayed settlements/payouts' provides an implied usage context. However, the description never explicitly states when to use this tool over alternatives like findTransactions or failedTransactions, nor does it mention conditions where the tool should not be used.

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

retryTransactionsA

Retrieve transactions that have been retried more than once. Useful for identifying shaky payment flows.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
limitNoNumber of results per page

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. 'Retrieve' implies a safe read operation, and the core selection criterion is stated. However, it does not clarify whether the list includes only currently retried/failed transactions or all transactions with a retry count above one, nor does it describe ordering or return behavior.

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?

Two sentences with no filler. The functional statement is front-loaded, followed by a concise use-case note. Every word earns its place.

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?

For a simple paginated list tool, the description is mostly complete: it names the resource, the filter, and a practical use case. The pagination parameters are covered by the schema. A minor gap is the lack of detail on exactly what 'retried more than once' means operationally and what fields are returned.

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 page and limit are already documented in the schema. The description adds no extra meaning about these parameters, so the baseline score of 3 applies.

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

Purpose4/5

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

The description clearly states a specific verb and resource: 'Retrieve transactions that have been retried more than once.' The unique filter ('retried more than once') differentiates it from siblings like failedTransactions and pendingTransactions, but it does not explicitly name or contrast those alternatives.

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 phrase 'Useful for identifying shaky payment flows' gives a clear use case, implying when this tool would be appropriate. However, it offers no explicit guidance on when not to use it or how it differs from sibling tools such as failedTransactions or findTransactions.

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

todayVsYesterdayA

Compare transaction count, volume, and success/failure rates for today vs. yesterday.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. The verb 'Compare' strongly implies a read-only aggregation, and the listed metrics clarify what is computed; however, it does not state that no writes occur, how the day boundary is determined, or what the response shape is.

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?

One sentence, no filler, front-loads the action and scope. Every word contributes meaning.

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?

For a parameterless comparison tool, the description is largely complete: it defines the time range and the metrics. Minor missing context such as timezone handling or return formatting is not critical for invocation, though it would improve clarity in the absence of an output schema.

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

Parameters4/5

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

There are zero parameters and 100% schema coverage, so the description does not need to document parameters. It adds useful context by naming the exact metrics included in the comparison.

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

Purpose4/5

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

The description names a specific action ('Compare'), a precise resource scope (transaction count, volume, and success/failure rates), and an explicit timeframe (today vs. yesterday). It does not explicitly distinguish itself from sibling analytics tools like dailySummary or weeklyAnalytics, but the 'vs yesterday' frame makes the comparison intent unmistakable.

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 date comparison is clear, so an agent can infer when this tool applies, but no alternative tools are mentioned and there is no explicit when-to-use/when-not-to-use guidance. The usage context is implied rather than stated.

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

topVendorA

Retrieve the top processing vendor (the vendor with the highest transaction success rate).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It communicates the selection rule (highest transaction success rate), which is useful, but it does not disclose output shape, tie-breaking, time scope, or whether the result is aggregated across all data. It remains a read-only retrieval, but additional behavioral detail would improve transparency.

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 one concise sentence with no filler. It front-loads the action and resource, then clarifies the ranking criterion in a parenthetical.

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?

For a zero-parameter, read-only retrieval tool, the description is largely complete. It lacks only minor context like return format and tie-breaking behavior, but nothing critical is missing for an agent to invoke it.

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

Parameters4/5

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

The tool has zero parameters, so there is no parameter meaning for the description to add. Schema coverage is effectively complete, and the 0-parameter baseline of 4 is appropriate since the description correctly implies no input is needed.

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 states a specific verb ('Retrieve') and a precise resource ('top processing vendor'), and defines the criterion explicitly as 'highest transaction success rate.' This clearly differentiates it from sibling tools like worstVendor and vendorComparison.

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 does not provide any guidance on when to choose this tool over alternatives such as vendorPerformance, vendorComparison, or worstVendor. There are no exclusions, prerequisites, or use-case context beyond the basic retrieval purpose.

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

vendorComparisonA

Compare performance metrics (success rates, failures, response times) of two specific vendors.

ParametersJSON Schema
NameRequiredDescriptionDefault
vendorAYesFirst vendor to compare (e.g. Razorpay)
vendorBYesSecond vendor to compare (e.g. Cashfree)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses which metrics are compared (success rates, failures, response times), but it does not state whether the operation is read-only, what the output looks like, or any permissions needed. This is acceptable for a comparison tool but not fully transparent.

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 a single, well-structured sentence that front-loads the core action and resource. It contains no filler, repetition, or unnecessary detail.

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?

The tool is simple, with only two string parameters and no output schema. The description provides the key context: what is compared, which vendors are involved, and which metrics are covered. It could mention the return format or a time range, but for this low-complexity tool, the level of detail is largely sufficient.

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 fully documents both parameters. The description adds no extra semantic detail beyond the names and examples, which is fine but does not elevate it above the baseline.

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 uses a specific verb ('Compare') and names the exact resource being compared: performance metrics across two specific vendors. The phrase 'two specific vendors' clearly differentiates it from sibling tools like vendorPerformance, topVendor, and worstVendor.

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

Usage Guidelines4/5

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

The description clearly conveys when to use this tool: when comparing performance metrics of exactly two vendors. It does not explicitly mention alternatives or exclusion cases, but the 'two specific vendors' condition is clear enough to guide selection.

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

vendorPerformanceB

Retrieve success rate, failure rate, volume, transaction count, and average response time for a specific vendor.

ParametersJSON Schema
NameRequiredDescriptionDefault
vendorIdYesThe unique ID or name of the vendor (e.g. Razorpay, Cashfree, BusyBox)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must carry the behavioral disclosure burden. 'Retrieve' implies read-only, but it does not disclose output format, time window, or behavior for invalid/unknown vendor IDs.

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?

A single sentence that is front-loaded with the action and immediately lists the deliverables. No filler or redundant content.

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?

For a simple one-parameter read the description is mostly sufficient, but the absence of any time-range or unit context and no usage guidance leaves minor ambiguity about what period the vendor performance covers.

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?

The schema already describes vendorId with examples and has 100% coverage. The description adds no parameter-level semantics beyond the list of returned metrics, matching the baseline for high schema coverage.

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?

States a precise verb ('Retrieve'), names the resource (vendor performance), and enumerates the exact metrics returned. The qualifier 'for a specific vendor' sets it apart from aggregate/comparison siblings, though it does not name them explicitly.

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?

No when-to-use or alternative routing guidance is provided. The description only says what the tool does, not when to prefer it over vendorComparison, topVendor, or getDashboardMetrics.

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

walletBalanceA

Retrieve today's current wallet balance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. 'Retrieve' signals a side-effect-free read operation, but the description does not mention return format, caching, time boundaries, or any other behavioral context beyond the basic retrieval action.

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 six-word sentence with no unnecessary filler. The phrase 'today's current' is slightly redundant, since 'current' already implies the present, but overall the structure is tight and front-loaded.

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?

For a zero-parameter read tool with no output schema, this description conveys the essential operation and expected result. It doesn't specify return formatting or exactly how 'today's' affects the value, but the tool's simplicity limits the amount of context required.

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

Parameters4/5

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

The input schema has zero parameters and schema description coverage is 100% (an empty object), so there are no parameter details for the description to add. Per the baseline for 0-parameter tools, this is adequate.

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

Purpose4/5

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

The description uses a specific verb ('Retrieve') and a concrete resource ('today's current wallet balance'), making the tool's purpose clear. However, it does not explicitly distinguish this from siblings like walletHistory or getDashboardMetrics, and 'today's current' is mildly ambiguous.

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 implies this should be used when an agent needs the current wallet balance, but it provides no explicit guidance on when to choose this over walletHistory or other dashboard/metric tools, and it offers no exclusions or alternatives.

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

walletHistoryB

Retrieve historic credit/debit transaction log and wallet balance records.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoFilter up to this date (ISO format YYYY-MM-DD)
startDateNoFilter from this date (ISO format YYYY-MM-DD)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations available, the description carries the full burden. It clearly implies a read-only operation via 'Retrieve', but it does not disclose default date-range behavior, ordering, pagination, or whether balance records are point-in-time snapshots. The basic read-only nature is clear, so this is not severely opaque.

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 a single, front-loaded sentence with no filler. Every word contributes to the core purpose, and it wastes no space on redundant information already present in the schema.

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?

For a simple read-only history tool with two documented optional parameters, the description is mostly sufficient at a surface level. However, it does not explain what happens when no date range is provided, what the return payload looks like, or how this differs from closely related transaction sibling tools, leaving an agent to guess in ambiguous cases.

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?

The schema already documents both optional parameters (startDate and endDate) with ISO format and coverage is 100%. The description adds no parameter-specific meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb ('Retrieve') and a clear resource ('historic credit/debit transaction log and wallet balance records'), so an agent can tell this is a historical view rather than a live balance or analytics tool. It does not explicitly differentiate from siblings like findTransactions or findTransactionById, but the 'wallet balance records' phrase adds meaningful scope.

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?

No guidance is given on when to use this tool versus the many sibling transaction tools. There are no exclusions, no alternative routing, and no context such as 'use findTransactionById for a single transaction' or 'use findTransactions for general search'.

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

weeklyAnalyticsA

Fetch transaction count and volume breakdown for the last 7 days.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral burden. It indicates a read-only fetch, but does not explain timezone handling, whether the window is rolling or calendar-based, whether the current day is included, or how empty results are represented. This is minimal behavioral disclosure.

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 one compact sentence that immediately states the action, output content, and time scope. Every word is useful and the structure is front-loaded with the core purpose.

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?

The description names the return content (transaction count and volume breakdown) and the time period, which is sufficient for a zero-parameter tool with no output schema. It could add timezone or exact window semantics, but the core interaction is understandable and callable.

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

Parameters4/5

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

The tool has zero parameters, so there is no parameter semantics burden on the description. The 100% schema coverage is vacuous but complete, and no parameter documentation is needed.

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 clearly states the verb 'Fetch', the resource 'transaction count and volume breakdown', and the scope 'last 7 days'. This differentiates weeklyAnalytics from siblings like dailySummary and monthlyAnalytics by its explicit time window.

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

Usage Guidelines4/5

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

The time window 'last 7 days' gives clear context for when this tool should be used, distinguishing it from daily or monthly analytics. It does not explicitly name alternatives or when not to use it, but the usage context is clear and unambiguous.

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

worstVendorA

Retrieve the worst processing vendor (the vendor with the highest transaction failure rate).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It does reveal the core metric ('highest transaction failure rate') and implies a read-only operation via 'Retrieve,' but it does not explain the time window, transaction scope, or how the failure rate is calculated.

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 a single efficient sentence that front-loads the action and resource, then adds a concise parenthetical definition. Every word earns its place with no redundancy or filler.

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?

For a zero-parameter read-only tool with no output schema, the description is reasonably complete: it names the result and defines the criterion. It could add detail about the returned fields or result format, but the low complexity and absence of parameters reduce the burden.

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

Parameters4/5

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

The tool has zero parameters, so the schema provides no semantic content. The description adds meaning by defining the result concept, which is the only parameter-related context needed for an empty input schema.

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

Purpose4/5

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

The description uses a specific verb ('Retrieve') and resource ('the worst processing vendor'), and defines the key term precisely as 'the vendor with the highest transaction failure rate.' This is clear and distinguishes the tool from topVendor, though it does not explicitly name related siblings like vendorPerformance or vendorComparison.

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?

No guidance is provided about when to use this tool versus alternatives. With siblings like vendorPerformance, topVendor, and vendorComparison, the description does not state when worstVendor is the appropriate choice or what distinguishes it beyond its name.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but some overlap exists between generic transaction search and specialized listings (e.g., failedTransactions vs. findTransactions). Descriptions help differentiate filters, so ambiguity is low.

Naming Consistency3/5

All names use camelCase consistently, but the pattern is mixed: some start with verbs (find, get, retry) while others are noun phrases (dailySummary, weeklyAnalytics, peakHour). This inconsistency makes naming slightly less predictable but still readable.

Tool Count4/5

With 19 tools, the server is slightly above the ideal 3-15 range but justified for a FinOps analytics domain covering transactions, vendors, wallets, and time-series reports. Each tool serves a distinct reporting need without excessive redundancy.

Completeness4/5

The tool surface provides comprehensive read-only analytics coverage for transaction filtering, vendor performance, wallet balances, and time-based comparisons. Missing actions like refund or dispute handling are not expected for an analytics-focused server, so the surface is well-suited to its purpose.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A read-only MCP server that provides visibility into Parallels Remote Application Server infrastructure, policies, and sessions through the RAS REST API. It enables AI assistants to query site settings, published applications, and license status without performing any modifications.
    41
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Read-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.
    5
    19
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables AI assistants to safely query live Odoo 19 data with a defense-in-depth security layer, providing read-only tools for partners, sales, inventory, and finance.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for programmatic read-only access to RiseUp cashflow data, allowing AI assistants to retrieve budget information via natural language.
    2
    154
    21
    MIT

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/anmolratna/mcp-based-dasboard'

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