Skip to main content
Glama
kite-connect-mcp

kite-connect-mcp

Mutual fund holdings

get_mf_holdings
Read-onlyIdempotent

Retrieve mutual fund holdings from a Zerodha demat account, sorted largest first, with pagination and invested value, current value, and profit/loss summary for portfolio review.

Instructions

Mutual fund units in your demat account, largest first. Each holding has tradingsymbol (the fund's ISIN), fund (name), folio, quantity (units), average_price (INR per unit paid), last_price (the last available NAV, INR per unit), last_price_date, pnl and pledged_quantity. summary covers ALL holdings, not just the page: invested and current value in INR, the profit or loss and its percentage.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_mf_holdings"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoitems per page
offsetNoitems to skip

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds useful behavior beyond them: results are sorted largest first, last_price is the last *available* NAV with a companion date, and summary aggregates the entire portfolio rather than the returned page. It says nothing about empty-account behavior, staleness of NAV, or whether pledged units are included in summary totals.

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 opening sentence front-loads what is returned and its sort order, then field semantics are packed into one dense clause, then the summary caveat closes it out. Every sentence carries information an agent needs to interpret the response; there is no 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?

With no output schema, the description correctly takes on the return-value burden and names every field plus the aggregate block, which is exactly what an agent needs to reason about results. Annotations cover safety. The remaining gap is routing context — no statement distinguishing this from get_holdings (equity) or pointing to get_mf_orders/get_mf_sips for transaction history.

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 coverage is 100%, so limit and offset are already documented as items-per-page and items-to-skip; the description adds no syntax beyond that. The one genuine addition is the warning that `summary` is portfolio-wide and therefore unaffected by paging, which informs how limit/offset should be used. Baseline 3 applies since the schema does the heavy lifting.

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 resource and scope: mutual fund units held in the demat account, returned largest-first. Field-level detail (tradingsymbol as ISIN, NAV-based last_price) makes it unambiguously a mutual-fund holdings read, not an order or SIP listing. It never names a sibling such as get_holdings or get_mf_sips, so differentiation is inferential rather than explicit.

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?

Usage is implied by the content rather than stated: an agent reads this to see MF positions and uses the aggregate summary for totals. The note that `summary` covers ALL holdings, not just the page, is a real usage instruction that discourages paging to compute totals. There is no explicit when-to-use/when-not guidance and no named alternative for equity holdings or MF order/SIP history.

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