FinOps AI Copilot MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FinOps AI Copilot MCP ServerWhat is our current wallet balance?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 installRun (development)
npm run devBuild
npm run buildProject 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.jsonfor 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
Read-Only Enforcement: The MCP server only exposes query tools (
get*,find*,compare*,summary). No state-changing endpoints are integrated.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.
Data Sanitization: Secrets, customer sensitive credentials, and database keys are never exposed in tool definitions.
Environment Isolation: API endpoints and credentials are loaded dynamically from environment variables.
Installation
Prerequisites
Node.js (v18 or higher)
npm or yarn
Setup
Clone or navigate to the workspace directory:
cd "/Users/apple/Desktop/mcp dasboard"Install dependencies:
npm installConfigure Environment Variables: Copy
.env.exampleto.envand fill in the details:cp .env.example .env
Environment Variables
Variable | Description | Default |
| Local port for optional server operations |
|
| Base URL of the existing REST API |
|
| Bearer Token / API key for REST endpoints |
|
| Threshold to filter large payments |
|
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.jsonWindows:
%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:
Start the mock backend REST API (runs on port 4000):
npx tsx scratch/mock_backend.tsRun the integration test client:
npx tsx scratch/test_client.tsType 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 toolsdailySummaryA
Retrieve a structured business operations summary for today, including total volume, transaction counts, success rates, top/worst vendors, peak hour, and AI routing recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Number of results per page |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique ID of the transaction to search for (e.g., TXN12345) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (starts at 1) | |
| limit | No | Number of results to return per page | |
| status | No | Filter by transaction status | |
| vendor | No | Filter by processing vendor (e.g. Razorpay, Cashfree) | |
| endDate | No | Filter up to this date (ISO format YYYY-MM-DD) | |
| merchant | No | Filter by merchant name | |
| maxAmount | No | Maximum transaction amount | |
| minAmount | No | Minimum transaction amount | |
| startDate | No | Filter from this date (ISO format YYYY-MM-DD) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Number of results per page | |
| minAmount | No | Custom threshold amount. If not provided, fallback to env configuration. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of merchants to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Number of results per page |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Number of results per page |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vendorA | Yes | First vendor to compare (e.g. Razorpay) | |
| vendorB | Yes | Second vendor to compare (e.g. Cashfree) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vendorId | Yes | The unique ID or name of the vendor (e.g. Razorpay, Cashfree, BusyBox) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | Filter up to this date (ISO format YYYY-MM-DD) | |
| startDate | No | Filter from this date (ISO format YYYY-MM-DD) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
Read-only Remote MCP for externally grounded AI agent trust receipts.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
Related MCP Servers
- AlicenseAqualityDmaintenanceA 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.411MIT

KVMFleet MCP Serverofficial
AlicenseAqualityCmaintenanceRead-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.5191MIT- AlicenseNot gradedqualityBmaintenanceAn 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

RiseUp MCP Serverofficial
AlicenseAqualityCmaintenanceMCP server for programmatic read-only access to RiseUp cashflow data, allowing AI assistants to retrieve budget information via natural language.215421MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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