個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Read-only MCP server over inetGeek's sourced infrastructure data — provider facts with the sentence each was read from, comparisons, iScore, and live DNS/SPF checks.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A Model Context Protocol server over inetGeek's infrastructure data: every provider and comparison on the site, and every figure carrying the URL it was read from, the sentence it was read from, and the date it was last checked against that page.
No account, no API key, and nothing you ask it is stored. Every tool is read-only
except send_feedback, which records a report for the maintainer and can change
nothing.
https://inetgeek-mcp.palashbagchi.workers.dev/mcp
A model asked "what does Neon's free tier include" answers from training data that may predate this week's repricing, and cannot tell you where the number came from. Every value here is read from the provider's own documentation and ships with four things: the value, the verbatim sentence it was read from, the source URL, and the date. If a figure is wrong, the excerpt makes it easy to demonstrate.
What the server will not do is more of the point than what it will. It never infers a value from silence, never fills a gap with a plausible number, and never returns a ranking without the interval around it. Where two providers cannot be told apart, it says so.
Claude Code
claude mcp add --transport http inetgeek https://inetgeek-mcp.palashbagchi.workers.dev/mcp
Claude Desktop / any MCP client — add to your client's config:
{
"mcpServers": {
"inetgeek": {
"type": "http",
"url": "https://inetgeek-mcp.palashbagchi.workers.dev/mcp"
}
}
}
A machine-readable server card lives at
/.well-known/mcp.json, and every
underlying feed is indexed at
/.well-known/api-catalog.
| Tool | What it returns |
|---|---|
list_categories | The categories this site tracks, each with its current provider count. |
list_providers | Every provider in one category with its free tier, entry price and the editorial "best for" line — the orientation call before a per-provider lookup. |
filter_providers | Providers that document every fact key you name (e.g. SOC 2 and HIPAA), each with the value, source and verification date. |
search_infrastructure | Full-text search over every published page — providers, comparisons, DNS records, tools and stacks — including the fact labels each provider documents. |
get_provider | The full sourced fact sheet for one provider — pricing, limits, regions and startup-credit programs, each with a source and a verification date. |
list_startup_credit_providers | Every provider documented as offering a startup credit program, with the amount and eligibility — a filter, not a per-provider lookup. |
get_provider_score | One provider's iScore with its interval and rank, every pillar and criterion with the fact behind it, and the criteria its peers document that it does not — what a provider would publish to move the number. |
list_alternatives | Every peer in a provider's category ranked by iScore, with score, interval, entry price and where each differs from the provider named. |
compare_providers | The sourced side-by-side comparison for a curated pair, where one exists. |
list_comparisons | Every published comparison, optionally only those involving one provider — so an agent knows a pair exists before asking for it. |
get_stack_recommendation | Every host that documents real support for a framework or runtime, ordered by strength of documentation. |
plan_infrastructure | The /plan/ planner: one suggested provider per layer for a stage or a hand-picked set of layers, a floor-price total, and the layers left out of it for having no clean starting price. Takes the project’s context — what it already uses, the platform it runs on, what it excludes — so a tie is broken by the project and a covered layer is left alone; ties are reported as ties. |
estimate_monthly_cost | What each provider that publishes a per-volume price would charge a month at a stated volume (web analytics, email and auth): plan fee plus overage, cheapest first, with the vendor page and read date. inetGeek’s arithmetic on published rates, not a quote. |
Twenty tools. Every one except send_feedback is read-only, and the tool list
is mirrored on https://inetgeek.com/mcp/.
The server cannot see your project; the assistant connected to it can. The
tools that benefit take what it finds as arguments, and the server's own
instructions tell the client what to read first (its deploy config,
dependencies, env var names, real traffic figures):
plan_infrastructure takes already_using, platform and exclude. Without
them most layers are ties among providers that all document a free tier, and
the tool says so layer by layer instead of presenting the alphabetically first
as a recommendation. With them, a layer you already cover is left out of the
floor and a tie is broken toward your own platform.estimate_monthly_cost takes a monthly volume (units, in pageviews, events,
emails or monthly active users), optionally sites and events_per_pageview,
and returns each provider's plan fee plus overage at that volume, cheapest
first, with the plan, the vendor page and the date it was read. It is
inetGeek's arithmetic on published rates, not a quote, and says so beside
every figure. Plans quoted only by sale, priced in another currency, or with a
billing rule the page leaves open are named rather than guessed at.A rank is usually an ordering, not a finding. iScore carries an 80% interval, and a rank is only established when the posterior puts a provider above the next one at 90% or better. That is true for very few rows. Everywhere else the ordering is real but the separation is not, and the tools say so, with a "read this score with care" note naming which pillar is thin. Report the interval with the number.
A blank is not a "no". Three different reasons a cell is empty are kept
apart, because collapsing them would invent information: not documented
(nobody has looked), not offered (the product has no such thing), and not
stated on the vendor's page when read on a date — the last being a sourced
observation, exposed through get_ledger. Only the third one is evidence, and
even then it is evidence about a page, not about a product.
The lean is inetGeek's reading, not a provider's claim. compare_providers
returns it with the basis it was computed from, by six published rules. It is an
opinion with its working shown; pass it on that way.
Two pages of one vendor can disagree. When a vendor's own pages contradict
each other on a criterion, no value is recorded: get_ledger returns both
quotes and both URLs. Silence on a page is a different record, and a conflict
between pages is a third.
npm install
npm run dev # wrangler dev
npm run typecheck
npm run deploy # wrangler deploy
The server is stateless: it reads inetGeek's public JSON feeds and Markdown mirrors at request time and holds no database. Deploying your own copy gives you the same data from the same origin — useful if you want a different tool surface, different descriptions, or your own Cloudflare account in the path.
Three optional bindings. Without any of them the server still runs.
USAGE, an Analytics Engine dataset, counts calls per tool. It
records the method, the tool name and the client's self-declared name — no IP
address, no argument values, nothing identifying a person. Drop the
analytics_engine_datasets block from wrangler.jsonc to run without it.
FEEDBACK (D1) and FEEDBACK_RATE_LIMIT back send_feedback. The row
holds what the agent submitted, the time and the client's User-Agent. The IP
is used only as the rate-limit key (5 a minute) and is never written. A daily
cron deletes closed reports after 90 days and every report after a year. To
collect feedback on your own copy:
wrangler d1 create <your-db-name> # put the id in wrangler.jsonc
wrangler d1 migrations apply <your-db-name> --remote
Without the binding, send_feedback still registers and tells the caller that
feedback is not being collected. Treat every stored message as untrusted
input: it was written by an arbitrary caller of a public tool.
The code here is MIT. The data it serves is not part of this licence — it lives at inetgeek.com and is published for reading, with each figure attributed to the vendor page it came from.
Found a figure that is wrong or has moved, or a page of yours we recorded as silent when it is not? Send the URL: https://inetgeek.com/contact/. Corrections replace the record rather than argue with it, and the change is published at /ledger/.
Issues and pull requests are welcome here for the server itself. For a wrong figure or a missing provider, use the issue templates in this repository or the contact page above; the data is edited on the site, not here.
get_ledger | Every vendor page read and found silent on a criterion, with the page and the date; every criterion a product cannot have; every case where two pages of one vendor disagree, with both quotes; every changed figure. A silence record is an observation, not a claim the provider lacks the thing. |
get_changelog | Every figure that moved — before, after, source and date — optionally since a date or for one provider. |
get_dns_record | The reference page for one DNS record type or email-authentication mechanism, as text. |
check_dns | A live DNS lookup for a domain's A/AAAA/CNAME/MX/TXT/NS records. |
check_spf | A live SPF evaluation, including the ten-lookup limit. |
check_dns_propagation | A live check of one record across four independent public resolvers. |
send_feedback | Report a wrong figure, a broken or confusing tool, or something missing to the person who maintains the site. The only tool that writes: it stores a note and changes nothing; a wrong-figure report is checked against the provider's own page first. |