Skip to content

Kong Reviews

com.kongreviews/kongreviewskongreviews.comstreamable-httpv0.2.0Scanned

Pick a tech stack from a PRD and see what it costs now and at scale, after startup perks.

18 tools: 2 can delete or cancel things, 8 change things and 8 only read.

Tools: 2 delete, 0 irreversible, 8 write, 8 read.
  • Reads private data · 2
  • Reads text others write · 4
  • Can send data out · 0
  • 2 findings

Anlyon alternative

10 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

18 tools

Deletes or cancels 2Claude Code: deny
  • delete_accountPermanently delete the signed-in user's Kong Reviews account: their GitHub sign-in link and every saved stack.No findings

    Why it is in this group

    • The name "delete_account" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete the signed-in user's Kong Reviews account: their GitHub sign-in link and every saved stack. This cannot be undone. Only call it when the user explicitly asks to delete their account, after telling them what will be removed; pass confirm exactly as "delete my account". Needs sign-in.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: true
    • idempotentHint: true
  • delete_saved_stackPermanently delete one of the signed-in user's saved stacks by id.No findings

    Why it is in this group

    • The name "delete_saved_stack" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete one of the signed-in user's saved stacks by id. Only call it when the user explicitly asks to delete that stack; confirm the name first. Needs sign-in.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: true
    • idempotentHint: true
Changes things 8Claude Code: ask
  • check_fitFor each vendor, show whether each requirement is met on its cheapest plan, needs a higher tier (with that tier's cost), or is missing.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    For each vendor, show whether each requirement is met on its cheapest plan, needs a higher tier (with that tier's cost), or is missing.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • estimate_costMonthly cost for one vendor at a given scale.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Monthly cost for one vendor at a given scale. Give mau (monthly active users) and a usage profile, or exact usage numbers. Picks the cheapest plan that fits unless plan_id is set. Example: {"vendor_id":"clerk","mau":25000}.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • evaluate_changeWhen something changes (bill too high, growth, a missing feature such as SSO, a renewal), compare staying on the current plan, optimising with the same vendor, and switching vendor…1 finding

    Why it is in this group

    • The name "evaluate_change" says "evaluate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "evaluate_change" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "evaluate_change" says "evaluate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    When something changes (bill too high, growth, a missing feature such as SSO, a renewal), compare staying on the current plan, optimising with the same vendor, and switching vendor, including one-off switching cost and the month switching pays off. Example: {"category":"auth","current":{"vendor_id":"clerk","plan_id":"pro"},"mau_now":11000,"monthly_growth":0.18,"requirements":[{"capability":"auth.saml_sso"}]}. How to present the result: show stay, optimise and switch side by side with cumulative cost at each month given, the break-even month and any problems; show every caveat word for word.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • extract_requirementsTurn PRD or spec text into structured requirements (scale, capabilities, compliance, regions, budget) for plan_stack, without planning.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Turn PRD or spec text into structured requirements (scale, capabilities, compliance, regions, budget) for plan_stack, without planning. recommend_stack does both in one call. Each requirement quotes the sentence it came from. Show them to the user to confirm before planning. Without a model on the server it reads the PRD with keyword rules (mode "rules") and also returns the capability vocabulary and instructions: as an assistant, prefer doing the extraction yourself and use the rules result only as a starting point.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • plan_stackGiven confirmed requirements as capability ids, recommend a vendor per category with a runner-up, requirement fit, cost now, cost at forecast scale, year-one cost after perks, cost…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Given confirmed requirements as capability ids, recommend a vendor per category with a runner-up, requirement fit, cost now, cost at forecast scale, year-one cost after perks, cost cliffs, trade-offs and blockers. Use recommend_stack instead when you only have a plain-language description. Example: {"mau_now":5000,"mau_forecast":20000,"profile_id":"booking_marketplace","requirements":[{"capability":"auth.google"},{"capability":"payments.merchant_of_record"}],"founder":{"gateways":["mercury"]}}. How to present the result: show the stack table (pick and runner-up per category, monthly cost now and at forecast) and the totals. For each price give its source's verified date, or say it is unverified seed data. Show every caveat word for word; never round, merge or drop one. Mention requirement gaps, blockers and trade-offs. Link share_url so the user can open the full result on kongreviews.com. Do not add vendors or prices that are not in the result.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • project_stackMonth-by-month cost for a whole stack as users grow, with startup perks applied if requested, plus cost cliffs (forced plan upgrades, sharp jumps, credits running out).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Month-by-month cost for a whole stack as users grow, with startup perks applied if requested, plus cost cliffs (forced plan upgrades, sharp jumps, credits running out). Example: {"vendors":[{"vendor_id":"supabase"},{"vendor_id":"vercel"}],"start_mau":2000,"monthly_growth":0.15,"months":24,"apply_perks":true,"founder":{"gateways":["mercury"]}}.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • recommend_stackStart here.Reads text others write1 finding

    Why it is in this group

    • The description's first verb is "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "recommend_stack" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Start here. Describe the product in plain language and get a recommended stack with costs now and at scale, in one call. Write the description as the user would: what the product does, who signs in and how, how it charges, which emails it sends, compliance or data-region needs, and expected users now and in 12 months. Example: "A booking app for yoga studios. Members sign in with Google and pay a monthly subscription. Studios get paid out. EU data. 2,000 users at launch, 20,000 within a year." Pass a PRD as the description if you have one. Numbers you pass (mau_now, mau_forecast, budget_monthly_usd, profile_id) override what is read from the text. Before treating the plan as final, show the user the requirements it read (each quotes its sentence) and the open questions, and ask them to confirm or correct them; then call plan_stack with the corrected requirements. How to present the result: show the stack table (pick and runner-up per category, monthly cost now and at forecast) and the totals. For each price give its source's verified date, or say it is unverified seed data. Show every caveat word for word; never round, merge or drop one. Mention requirement gaps, blockers and trade-offs. Link share_url so the user can open the full result on kongreviews.com. Do not add vendors or prices that are not in the result.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • save_stackSave a recommended stack to the signed-in user's Kong Reviews account so it can be reopened later and compared with current prices.No findings

    Why it is in this group

    • The name "save_stack" says "save": a word for a change.
    Description, as the server wrote it
    Save a recommended stack to the signed-in user's Kong Reviews account so it can be reopened later and compared with current prices. Pass the share_url from recommend_stack or plan_stack (preferred) or the plan_stack arguments, plus a short name such as "Yoga booking MVP". Needs sign-in: if the user isn't signed in, the app will ask them to connect their Kong Reviews account. Only save when the user asks to keep or save a stack.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
    • idempotentHint: false
Only reads 8Show 8 read-only tools
  • compare_vendorsRank vendors in one category at a given scale.No findings

    Why it is in this group

    • The name "compare_vendors" says "compare": a word for reading.
    Description, as the server wrote it
    Rank vendors in one category at a given scale. Vendors meeting every must-have come first, then cheapest. Ranking is by cost and fit only. Example: {"category":"auth","mau":50000,"requirements":[{"capability":"auth.saml_sso"}]}.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • find_cost_cliffsScan a range of user counts for one vendor and report where cost jumps: forced plan upgrades and points where usage charges start.No findings

    Why it is in this group

    • The name "find_cost_cliffs" says "find": a word for reading.
    Description, as the server wrote it
    Scan a range of user counts for one vendor and report where cost jumps: forced plan upgrades and points where usage charges start. Example: {"vendor_id":"clerk","from_mau":1000,"to_mau":200000}.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • find_perksStartup credits for the given vendors, and whether you qualify based on your bank, incorporation provider, accelerator or funding.No findings

    Why it is in this group

    • The name "find_perks" says "find": a word for reading.
    Description, as the server wrote it
    Startup credits for the given vendors, and whether you qualify based on your bank, incorporation provider, accelerator or funding. Example: {"vendor_ids":["supabase","posthog"],"founder":{"gateways":["mercury"]}}.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_pricingStructured pricing and capabilities for one vendor: every plan, base fee, metered usage, limits, unmodelled costs, lock-in notes, source URL and verification date.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "get_pricing" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "note": it reads notes.
    • untrusted-inputThe description's first sentence says "url": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Structured pricing and capabilities for one vendor: every plan, base fee, metered usage, limits, unmodelled costs, lock-in notes, source URL and verification date.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_saved_stackRe-run a saved stack with today's catalogue and compare it with when it was saved: monthly cost then and now, picks that changed, and vendors whose pricing changed.No findings

    Why it is in this group

    • The name "get_saved_stack" says "get": a word for reading.
    Description, as the server wrote it
    Re-run a saved stack with today's catalogue and compare it with when it was saved: monthly cost then and now, picks that changed, and vendors whose pricing changed. Use it when the user asks about a stack they saved, or whether prices moved. Pass the id from list_saved_stacks. Needs sign-in. How to present the result: show the stack table (pick and runner-up per category, monthly cost now and at forecast) and the totals. For each price give its source's verified date, or say it is unverified seed data. Show every caveat word for word; never round, merge or drop one. Mention requirement gaps, blockers and trade-offs. Link share_url so the user can open the full result on kongreviews.com. Do not add vendors or prices that are not in the result.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • list_capabilitiesList capability ids (features, compliance, regions) that requirements can reference, e.g.No findings

    Why it is in this group

    • The name "list_capabilities" says "list": a word for reading.
    Description, as the server wrote it
    List capability ids (features, compliance, regions) that requirements can reference, e.g. auth.saml_sso, region.eu, payments.merchant_of_record.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • list_saved_stacksList the stacks the signed-in user saved, newest first, with their monthly cost when saved and a link to each.No findings

    Why it is in this group

    • The name "list_saved_stacks" says "list": a word for reading.
    Description, as the server wrote it
    List the stacks the signed-in user saved, newest first, with their monthly cost when saved and a link to each. Use it when the user mentions "my stacks", "the stack I saved" or a saved stack by name; then call get_saved_stack for one of them. Needs sign-in. How to present: a short table of name, saved date and monthly cost when saved, each name linked to its share_url.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • list_vendorsList vendors in the pricing catalogue, optionally for one category (hosting, database, auth, email, payments, observability).Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "list_vendors" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "list" and "database": it reads databases.
    • untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    List vendors in the pricing catalogue, optionally for one category (hosting, database, auth, email, payments, observability).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Reads private data2
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write4
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "recommend_stack" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "start": a word for a change.

    What this check looks for
  • The server marks "evaluate_change" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "evaluate_change" says "evaluate": a word for a change.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 0.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http kongreviews https://kongreviews.com/mcp
claude mcp add --transport http kongreviews https://kongreviews.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__kongreviews__list_vendors",
      "mcp__kongreviews__list_capabilities",
      "mcp__kongreviews__get_pricing",
      "mcp__kongreviews__compare_vendors",
      "mcp__kongreviews__find_cost_cliffs",
      "mcp__kongreviews__find_perks",
      "mcp__kongreviews__list_saved_stacks",
      "mcp__kongreviews__get_saved_stack"
    ],
    "ask": [
      "mcp__kongreviews__recommend_stack",
      "mcp__kongreviews__estimate_cost",
      "mcp__kongreviews__check_fit",
      "mcp__kongreviews__project_stack",
      "mcp__kongreviews__extract_requirements",
      "mcp__kongreviews__plan_stack",
      "mcp__kongreviews__evaluate_change",
      "mcp__kongreviews__save_stack"
    ],
    "deny": [
      "mcp__kongreviews__delete_saved_stack",
      "mcp__kongreviews__delete_account"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as kongreviews. Review it before you use it.

Capability tags behind 4 rules
  • mcp__kongreviews__recommend_stack untrusted-input
  • mcp__kongreviews__list_vendors private-data, untrusted-input
  • mcp__kongreviews__get_pricing private-data, untrusted-input
  • mcp__kongreviews__extract_requirements untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/com.kongreviews/kongreviews/verify?hash=6eb06eddc917a949d9c5ac98820ea1493e1e29ce81af652555f9b74857f19050" | jq -e '.changed == false'

Pinned hash 6eb06eddc917, from Oct 23, 2026, 00:17 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/com.kongreviews/kongreviews/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for com.kongreviews/kongreviews
[![anlyon.dev](https://anlyon.dev/badge/com.kongreviews/kongreviews.svg)](https://anlyon.dev/servers/com.kongreviews/kongreviews)

Source: MCP Registry. Synced Oct 23, 2026, 00:17 UTC.