Skip to main content
Glama
hosanxiv

KiasuMiles

by hosanxiv

KiasuMiles

“Which card do I use again?”

KiasuMiles helps an AI agent choose the best Singapore miles card from the cards you already hold. It compares your confirmed cards against centrally maintained card rules and merchant-category data, then explains the best card, payment method, conditions, cap and fallback.

KiasuMiles is a hosted MCP service. MCP is the connection that lets a compatible agent use KiasuMiles as a tool. It is not a standalone chatbot or web app.

The hosted service does not store your card stack. It never needs your card number, expiry date, CVV, banking login, one-time password or payment credentials.

Start here

KiasuMiles ONLY works with AI assistants that can use external tools. Choose the setup for your assistant below.

After the one-time connection, send this message:

Use KiasuMiles. First verify the connection by calling kiasumiles_data_version. Ask which cards I carry only if you don’t already know; show supported cards if I need help choosing. Then ask where I’m paying and how, and recommend my best confirmed card with its earn rate, bonus conditions and fallback. If KiasuMiles tools aren’t available, stop and tell me.

This prompt verifies and uses an existing connection. It cannot give an ordinary chatbot capabilities that the app does not provide.

Related MCP server: OpenRouter Model Selector MCP

Where it works

Status as of 9 September 2026:

Agent

Current route

Plug-and-play status

Claude chat, Cowork, desktop and mobile

Account-level custom connector

Available after one-time setup; the directory submission is still under review

Codex desktop and CLI

Custom remote MCP server

Available now

OpenClaw, Hermes, Zo and similar agents

Agent-managed remote MCP connection

Paste the prompt above when the agent is allowed to update its MCP configuration

ChatGPT Work on web and mobile

Private custom connector created on ChatGPT web

Tested on a Pro account; public directory approval is not required for this route

KiasuMiles is not a normal chatbot. It is an MCP tool, so the assistant must support external tools and have KiasuMiles connected before the usage prompt can work.

One-time connection options

Agent-managed setup

For an agent that can update its own MCP configuration, such as OpenClaw, Hermes or Zo, paste this into its chat:

Use KiasuMiles. If its tools are already available, reuse them. Otherwise, connect to https://kiasumiles.space/mcp if you can manage remote MCP connections. Ask before changing settings or installing anything. If you cannot, say that this agent needs a one-time MCP connection and stop. Do not claim KiasuMiles is connected until you can list its tools and call kiasumiles_data_version successfully. Then ask which banks I use, show their supported cards, and let me confirm mine. Finally, ask for a Singapore merchant and payment method and recommend the best confirmed card with its conditions and fallback.

Codex desktop or CLI

In Codex desktop, add a Streamable HTTP MCP server named KiasuMiles with:

https://kiasumiles.space/mcp

For Codex CLI:

codex mcp add kiasumiles --url https://kiasumiles.space/mcp
codex mcp list

Claude

In the Claude app, open Settings → Customise → Connectors → Add custom connector, name it KiasuMiles, and enter:

https://kiasumiles.space/mcp

Start a new Claude chat, enable KiasuMiles from the + menu, then send the Start here prompt. Anthropic documents account-level remote connectors across Claude, Cowork, desktop and mobile. Workspace policies may require an administrator to approve the connector. See Claude's remote MCP connector guide.

ChatGPT Work

Set up once on ChatGPT web, then use KiasuMiles in Work on web or mobile. This route passed native MCP tests on a ChatGPT Pro account. Availability may vary by account and plan; ordinary ChatGPT Chat was not verified by these tests.

  1. On ChatGPT web, open Settings → Plugins → Developer mode and enable it.

  2. Open Plugins from the sidebar. Click the + beside the search bar to open New Plugin.

  3. Enter KiasuMiles as the name. Choose Server URL, enter https://kiasumiles.space/mcp, and set Authentication to No Auth. Leave the optional fields blank.

  4. Read the warning, tick I understand and want to continue, then select Create → Connect.

  5. Start a Work conversation on web or mobile and send the Start here prompt. Approve Connect again if prompted, then ask it to continue.

The public directory submission is separately awaiting review. This private setup does not make KiasuMiles publicly listed. We have not verified that the ChatGPT connection carries over to Codex; use the separate Codex instructions above.

First use

After KiasuMiles is connected:

  1. Tell the agent which cards you carry. If you need help, name your banks and choose from their supported cards.

  2. Provide a merchant and how you are paying. Include the amount if you want a miles estimate.

  3. KiasuMiles compares only the cards supplied for that lookup and returns the recommendation, conditions and fallback.

Reuse your card selection within the conversation. Whether it carries into another conversation depends on your assistant, not KiasuMiles.

Try:

What card should I use at NTUC FairPrice with Apple Pay?

Other useful questions:

I’m paying for Grab in the app. Which card should I use?
Compare how I should pay at Uniqlo using the cards I carry.
Does my card stack have any weak categories?

Your card stack and privacy

The hosted MCP server has no wallet-save or wallet-read tools. For each recommendation, the agent supplies the selected card names or identifiers in that request. KiasuMiles returns the result without retaining them as a wallet.

Whether the selection survives a new conversation depends on the agent you use. KiasuMiles cannot promise persistence on another product’s behalf.

Only provide card names. Never provide:

  • Card numbers

  • Expiry dates or CVVs

  • Banking usernames or passwords

  • One-time passwords

  • Transaction or account credentials

Troubleshooting

The agent says it cannot connect

The app does not have permission or capability to add a remote MCP connection. Use its documented plugin or connector setup. Do not ask it to imitate KiasuMiles using general card knowledge.

The agent says KiasuMiles is connected but cannot call its tools

The connection is not verified. Reload the agent using its documented method, then require it to list the KiasuMiles tools and call kiasumiles_data_version.

Claude says kiasumiles_data_version does not exist

Claude has loaded an older local KiasuMiles server instead of the hosted connector. Disable the old local server, start a new Claude chat, enable the remote KiasuMiles connector, and retry. The current hosted connector exposes seven tools, including kiasumiles_data_version; do not let Claude replace that check with a different tool.

My card stack disappeared

The agent did not retain it. Confirm the cards again and ask the agent whether its own storage persists across conversations. The hosted KiasuMiles service is not a wallet store.

The recommendation is broad or uncertain

Include the exact merchant, outlet when relevant, payment method and transaction amount. Merchant classifications and bank terms can change, so review the returned conditions and fallback before a large or unusual purchase.

The service returns HTTP 429

The hosted MCP endpoint defaults to 30 requests per 60 seconds per IP address for each running service instance. Wait and retry.

Supported cards and data

Ask the connected agent:

Show me all cards currently supported by KiasuMiles.

The production service reports its data version, record counts and active backend at:

https://kiasumiles.space/health

Confidence and last-verified fields are useful signals, not guarantees that every merchant classification or bank rule is current. Recommendations are informational; check the bank’s current terms when the stakes are high.

For supported Amaze pairings, include both Amaze and the paired card in the confirmed stack.

Hosted MCP reference

KiasuMiles exposes seven read-only MCP tools:

Tool

Purpose

kiasumiles_list_cards

Lists supported cards, optionally filtered by bank

kiasumiles_lookup

Ranks supplied cards for a merchant and payment method

kiasumiles_compare_payment_methods

Compares supported payment methods in one request

kiasumiles_changes_since

Summarises source-neutral data changes since a date

kiasumiles_recommend_stack

Reviews category coverage among supplied cards

kiasumiles_data_version

Returns the data version, record counts and backend

kiasumiles_agent_guide

Returns conversation and display guidance

Hosted lookups are stateless. The caller supplies the selected cards for each lookup, and the server does not retain them as a wallet.

Test the MCP connection

curl -i -X POST https://kiasumiles.space/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl-smoke","version":"1.0"}}}'

For maintainers

Production loads card rules and merchant mappings from Supabase. The repository includes a smaller bundled dataset for development and tests. Lookup and ranking remain deterministic and do not perform live web searches.

Environment variables:

  • KIASUMILES_SUPABASE_URL

  • KIASUMILES_SUPABASE_SERVICE_ROLE_KEY

  • KIASUMILES_SUPABASE_CARDS_TABLE — optional; defaults to card_rules

  • KIASUMILES_SUPABASE_MERCHANTS_TABLE — optional; defaults to merchant_mcc

  • KIASUMILES_DATA_BACKEND — optional; auto or supabase

  • KIASUMILES_RATE_LIMIT_REQUESTS — optional; defaults to 30; 0 disables the MCP rate limit

  • KIASUMILES_RATE_LIMIT_WINDOW_SECONDS — optional; defaults to 60

The schema is at supabase/schema.sql. Both /health and kiasumiles_data_version report the selected backend.

Supabase keep-awake

The Supabase keep-awake GitHub Actions workflow performs one direct, read-only card_rules query at 08:17, 16:17 and 00:17 Singapore time each day. It never inserts, updates or deletes data.

Store KIASUMILES_SUPABASE_URL and KIASUMILES_SUPABASE_SERVICE_ROLE_KEY only as encrypted GitHub Actions secrets. Never place either value in source code, logs or a pull request.

Feedback

If a recommendation appears wrong or a merchant is missing, message @kiasumilesbot on Telegram with the merchant, outlet and payment method. Leave out card numbers and personal payment details.

About

KiasuMiles is built by Hosan, founder of The AI Burrow, Singapore’s applied AI collective for teams and builders who want to move past the hype and actually deploy.

MIT License

Available Tools

7 tools
kiasumiles_agent_guideC

Return guidance for the persistent local KiasuMiles workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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. It only states 'Return guidance', implying a read-only operation, but does not disclose any behavioral traits such as side effects, authentication needs, rate limits, or whether the guidance is static or dynamic. This is insufficient.

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 short sentence with no unnecessary words. However, it could be more structured to include key points like output format or usage context without sacrificing brevity.

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?

Given zero parameters and an existing output schema, the description is minimal. It does not explain what the guidance contains or how to interpret it. With no annotations and a vague purpose, the description is not complete enough for an agent to confidently invoke the tool in the right context.

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, so schema coverage is 100%. With no parameters, the description cannot add meaning beyond the schema. Baseline is 4, and the description is acceptable for a no-parameter tool, though it adds nothing about the output.

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

Purpose3/5

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

The description states 'Return guidance for the persistent local KiaasuMiles workflow.' It identifies a verb ('Return') and a resource ('guidance for the persistent local KiaasuMiles workflow'), but 'guidance' is vague and does not specify what kind of guidance or its scope. It does not clearly distinguish from sibling tools like 'kiasumiles_configure' or 'kiasumiles_lookup'.

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 on when to use this tool versus alternatives. Given siblings like 'kiasumiles_configure' and 'kiasumiles_recommend_stack', the description should explain what situation calls for returning guidance, but it provides no context or exclusions.

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

kiasumiles_configureB

Save or replace the user's KiasuMiles wallet on this device.

Use this after matching the card names the user carries. Include Amaze when mentioned. Confirm the saved card names in plain English. The hosted service does not store this wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/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 burden. It discloses that the action saves/replaces the wallet on the device and that the hosted service does not store it. However, it does not describe potential side effects (e.g., overwriting existing data), required permissions, or whether the action is reversible. The behavioral disclosure is adequate but not exhaustive.

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 four sentences, each serving a purpose: main action, usage timing, specific inclusion, and data locality. It is front-loaded with the primary function and avoids unnecessary words. It is concise and structured well.

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?

Given the tool's simplicity (one parameter, no annotations) and the existence of an output schema, the description covers the main workflow: save/replace wallet, immediate usage context, and data storage note. It does not mention the output or confirmation, but the output schema presumably handles that. The description is mostly complete but could be slightly more specific about the expected outcome.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It adds that card names should be included, specifically mentioning 'Include Amaze when mentioned,' but does not explain what each array item should be (e.g., exact card names, formatting). The parameter 'cards' is only implied to be a list of card names. This is minimal added value.

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 tool's purpose: 'Save or replace the user's KiasuMiles wallet on this device.' This is a specific verb-resource combination. It distinguishes from sibling tools like kiasumiles_get_wallet (read) and kiasumiles_list_cards (list). The additional context about not storing on the hosted service clarifies the scope.

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 explicitly tells when to use the tool: 'Use this after matching the card names the user carries.' It also provides specific instructions: 'Include Amaze when mentioned. Confirm the saved card names in plain English.' This gives clear context for usage, though it does not explicitly state when not to use it or list alternatives.

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

kiasumiles_data_versionA

Return the current hosted card and merchant data version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It accurately describes a read-only operation ('Return') with no side effects, which is transparent enough. However, it could mention that it is a safe, non-destructive call, but the lack of annotations does not lead to contradiction.

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, succinct sentence that conveys all necessary information without any superfluous words. Every word earns its place.

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

Completeness5/5

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

Given the tool has no parameters and an output schema exists, the description fully covers what the agent needs to know: the tool returns the current version of hosted card and merchant data. No additional context is 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 tool has zero parameters and the schema coverage is 100%. The description adds meaning by specifying that the version pertains to 'hosted card and merchant data', which provides useful context beyond the empty schema. Baseline for 0 parameters is 4, and the description meets it.

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 ('Return') and names the exact resource ('current hosted card and merchant data version'), making the purpose crystal clear. It also naturally distinguishes from sibling tools like 'kiasumiles_list_cards' or 'kiasumiles_lookup'.

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 usage when needing the data version, but provides no explicit guidance on when to use this tool versus alternatives, nor any when-not-to-use scenarios. Given the tool's simplicity, this is acceptable but not exemplary.

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

kiasumiles_get_walletA

Show the card names saved in the local KiasuMiles wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/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 burden. It indicates a read operation but does not disclose authentication needs, behavior if wallet is empty, or potential side effects.

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?

Single sentence, front-loaded, every word adds value. No extraneous text.

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

Completeness5/5

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

Given the tool's simplicity (no params, output schema exists), the description is complete enough. It tells the agent exactly what the tool does.

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?

With zero parameters, schema coverage is 100% and the description adds no param info. Baseline 4 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 the verb 'Show' and the specific resource 'card names saved in the local KiasuMiles wallet'. It distinguishes from sibling tools like list_cards (which likely lists available cards) and recommend_stack.

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 on when to use this tool vs alternatives. No mention of prerequisites or caveats.

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

kiasumiles_list_cardsA

List supported Singapore credit cards for local wallet setup.

Ask which banks the user has cards with first, then call this once per bank. Present card names only. Do not expose internal card IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bankNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that listing can be filtered by bank, is idempotent/read-only, and specific output handling (card names, not IDs). More details on response format or pagination could improve it, but it's strong.

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?

Three sentences, no wasted words. Front-loaded with purpose, then usage instruction. Highly concise and well-structured.

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 listing tool with one optional parameter and an output schema, the description covers essential use. Lacks mention of empty results or errors, but overall sufficient.

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?

Schema has 0% description coverage for the 'bank' parameter. The description compensates by explaining that the tool should be called once per bank, implying the parameter filters results. It adds meaning beyond the 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 clearly states it 'List supported Singapore credit cards for local wallet setup.' The verb 'List' and resource 'cards' are specific. It does not explicitly differentiate from sibling tools, but the purpose is distinct enough.

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

Usage Guidelines5/5

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

Explicit guidance provided: 'Ask which banks the user has cards with first, then call this once per bank.' Also instructs to 'Present card names only. Do not expose internal card IDs.' This is excellent usage direction.

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

kiasumiles_lookupA

Recommend the best saved card for a Singapore merchant.

The local wallet is attached automatically. Pass the exact merchant name plus outlet, channel, or category only when the user provides them. Never ask the user to repeat their saved cards.

ParametersJSON Schema
NameRequiredDescriptionDefault
outletNo
channelNo
categoryNo
merchantYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral disclosure burden. It discloses that 'The local wallet is attached automatically,' which tells the agent about internal state handling. However, it does not specify if the tool is read-only, what data it accesses, or any side effects. The instruction 'Never ask the user to repeat their saved cards' is agent-oriented, not tool behavior. More detail on security, rate limits, or error conditions 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 four sentences with no redundancy. The first sentence establishes purpose, the second adds automatic wallet attachment, the third provides parameter usage, and the fourth gives a behavioral rule. Every sentence adds distinct value, and the most important information is front-loaded.

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 has 4 parameters, no annotations, and an output schema (not shown). The description covers core usage and a behavioral rule but lacks details on error handling, recommendation criteria, or what happens when the merchant is unknown. Given the output schema likely documents return values, the description is adequate but not fully comprehensive. Omission of comparisons to siblings and missing descriptions of parameter meanings leave gaps.

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 0%, so the description must compensate for parameter meaning. It maps the required 'merchant' and optional 'outlet', 'channel', 'category' to user-provided information and instructs to pass them 'only when the user provides them.' However, it does not explain the semantics of each parameter (e.g., what constitutes an 'outlet' vs 'channel' vs 'category'), leaving the agent to infer meaning. This adds value beyond the schema but is insufficient for full understanding.

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 tool's purpose: 'Recommend the best saved card for a Singapore merchant.' This provides a specific verb ('Recommend') and resource ('best saved card') with a geographic scope. It distinguishes the tool from siblings like 'kiasumiles_list_cards' (listing) and 'kiasumiles_recommend_stack' (possibly a different recommendation method).

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 gives explicit usage instructions: 'Pass the exact merchant name plus outlet, channel, or category only when the user provides them.' This tells the agent how to invoke parameters. It also provides a behavioral rule: 'Never ask the user to repeat their saved cards.' However, it does not contrast with sibling tools (e.g., when to use 'kiasumiles_recommend_stack') or state when not to use this tool.

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

kiasumiles_recommend_stackC

Review weak categories in the locally saved wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as side effects, permissions, or output details. The output schema exists but is not described.

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 concise sentence, front-loaded with the main action. No redundant information, but it is too brief to be fully helpful.

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?

Given the tool has one parameter and an output schema, the description is incomplete. It does not explain what 'weak categories' are, how the review works, or how 'top_n' influences results.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the 'top_n' parameter's meaning or effect. The default value is given in the schema but not elaborated in the description.

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

Purpose3/5

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

The description states 'Review weak categories in the locally saved wallet,' which indicates a verb and resource, but 'weak categories' is vague and the purpose is not clearly distinguished from sibling tools like 'list_cards' or 'get_wallet'. It lacks specificity.

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 on when to use this tool versus alternatives or what context is appropriate. There is no mention of prerequisites or scenarios.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.2
    • First observedkiasumiles_agent_guide
    • First observedkiasumiles_configure
    • First observedkiasumiles_data_version
    • First observedkiasumiles_get_wallet
    • First observedkiasumiles_list_cards
    • First observedkiasumiles_lookup
    • First observedkiasumiles_recommend_stack

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a distinct role: guidance, configuration, data version checking, wallet viewing, card listing, merchant lookup, and weak category review. No two tools have overlapping purposes.

Naming Consistency5/5

All tools follow a consistent 'kiasumiles_verb_noun' pattern (e.g., kiasumiles_configure, kiasumiles_list_cards). No mixing of conventions.

Tool Count5/5

With 7 tools, the server is well-scoped for a credit card wallet recommendation service. Each tool covers a necessary step in the workflow without redundancy.

Completeness4/5

The tool set covers setup, listing, lookup, recommendation, and versioning. Missing is a dedicated tool for updating or removing individual cards (only full replace via configure), but this is a minor gap.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    MCP server for Magic: The Gathering Commander that provides card data from Scryfall and deckbuilding recommendations from EDHREC.
    5
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A hosted MCP server for AI-powered credit card advice, enabling search, comparison, portfolio analysis, and personalized recommendations for US credit cards through natural language.
    1
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    MCP server that provides AI agents with personalized travel recommendations for members, enforcing partner-specific rules such as category exclusions, loyalty tier eligibility, and recommendation caps.
    3
    -