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.
- 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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "evaluate_change" says "evaluate": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "start": a word for a change.
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.
- Warnrecommend_stack
The server marks "recommend_stack" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The description's first verb is "start": a word for a change.
- Warnevaluate_change
The server marks "evaluate_change" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "evaluate_change" says "evaluate": a word for a change.
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/mcpclaude mcp add --transport http kongreviews https://kongreviews.com/mcpRun 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.
{
"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.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/com.kongreviews/kongreviews)Source: MCP Registry. Synced Oct 23, 2026, 00:17 UTC.