Skip to main content
Glama
dragosh29

Plannr MCP Server

by dragosh29

List plans

list_plans
Read-onlyIdempotent

Fetch financial plans (pensions, investments, mortgages) with filters for type, provider, status, and owners. Returns review dates and advice status; excludes valuations and money amounts.

Instructions

Plans (pensions, investments, protection, mortgages and other products) with type, provider, status, owners by name, review date and whether they are under advice, filtered as GET /api/v1/plans documents. Policy numbers only with include_contact_details; valuations and other money amounts are not returned.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoPlan name, partial match (filter[name])
sortNoSort field; prefix with - for descending. The API's default is name.
typesNofilter[type]
providerNoProvider name (partial) or provider UUID (filter[provider])
statusesNofilter[status]
max_resultsNoMost records to return; lists are fetched 100 per request, up to 10 requests
client_uuidsNoOnly plans of these clients (filter[account_uuids])
under_adviceNofilter[under_advice]
abstract_typesNofilter[abstract_type]
household_uuidsNoOnly plans of these circles (filter[circle_uuids])
include_contact_detailsNoInclude policy and proposal numbers, owners' email addresses, and unredacted emails, phone numbers and postcodes in plan and owner names. Off by default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive, so the description's real contribution is output-shape disclosure: it tells the agent that policy numbers are only present with include_contact_details and that valuations and money amounts are never returned. That is genuinely useful context beyond the annotations, though it says nothing about pagination or total-count behavior.

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?

Two dense sentences, front-loaded with the resource and its returned fields before the caveats. Every clause carries information, though the first sentence is packed tightly enough that it reads as a list dump rather than prose.

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 11 parameters and no output schema, the description compensates by describing what the response contains and explicitly what it omits (valuations, money amounts). It lacks any note on result caps or the 100-per-request fetch behavior described only in the max_results schema entry, so it is nearly but not fully 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%, so the schema already documents every one of the 11 parameters, including the include_contact_details semantics. The description reinforces the include_contact_details gating but adds no syntax or format detail beyond the schema, which is the expected baseline.

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 the resource ('Plans') and enumerates the returned attribute set (type, provider, status, owners, review date, under-advice flag), which makes it clearly distinguishable from the singular sibling get_plan. It never states the verb 'list' explicitly, relying on the name to carry that, but the scope is unambiguous.

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 only implied: 'filtered as GET /api/v1/plans documents' signals this is the filtered collection endpoint, and the filter parameters make the intent obvious. There is no explicit statement of when to prefer this over get_plan or search_clients, and no mention of pagination or result-cap behavior.

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