Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
Levels.fyi is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Salary, level and job data from 1M+ pay reports. Benchmark pay, evaluate offers, search open jobs.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http levels-fyi-mcp https://mcp.levels.fyi/
# 2 — ask your agent for something these tools do
# get-permissions, get-salary-percentiles, get-salaries-by-company-level and 27 more
Levels.fyi costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http levels-fyi-mcp https://mcp.levels.fyi/Reconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
30 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Connectivity check for the Levels.fyi MCP server. Returns "pong", echoes an optional message, and lists what each tool returns and the rate limits. Call it when a result looks smaller than expected, instead of retrying.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| message | string | no | Optional text to echo back in the response. |
Get the median (p50) yearly total compensation in USD for a job family in one location, across all levels, from submissions in the last 12 months. This is the figure to quote for one location's pay; get-location-stats ranks locations over a longer window, so its medians can differ. For one company's pay by level, use get-salaries-by-company-level instead. Free limit: Median (p50) total compensatio
| Parameter | Type | Required | Notes |
|---|---|---|---|
| jobFamilySlug | string | yes | A Levels.fyi job family slug, e.g. "software-engineer", "product-manager", "data-scientist". |
| locationSlug | string | yes | One location slug (metro, state, country or region; not a city), e.g. "san-francisco-bay-area". Resolve it with search-locations first; for a city, use its parent metro. |
Get median (p50) yearly total compensation in USD for each of ONE company's internal levels (e.g. Google L3/L4/L5, Meta E3/E4/E5) for a job family in one location, from submissions in the last 12 months. Call get-company-levels first to learn the company's level names. The company must have a known level structure. Free limit: Total compensation per level for one company and job family. No percent
| Parameter | Type | Required | Notes |
|---|---|---|---|
| jobFamilySlug | string | yes | A Levels.fyi job family slug, e.g. "software-engineer", "product-manager", "data-scientist". |
| locationSlug | string | yes | One location slug (metro, state, country or region; not a city), e.g. "san-francisco-bay-area". Resolve it with search-locations first; for a city, use its parent metro. |
| companySlug | string | yes | A company slug, e.g. "google". Resolve it with search-companies first. |
Get the newest individual salary submissions for a job family, optionally narrowed to one location and/or one company. Each row has the company, title, level, location, years of experience, base salary and total compensation. Every amount is in USD; originalCurrency is only the currency the salary was submitted in. Returns { total, rows }; total counts matches up to 250, and only the newest rows a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| jobFamilySlug | string | yes | A Levels.fyi job family slug, e.g. "software-engineer", "product-manager", "data-scientist". |
| locationSlug | string | no | One location slug (city, metro, state, country or region), e.g. "san-francisco-bay-area". Resolve it with search-locations first. |
| companySlug | string | no | A company slug, e.g. "google". Resolve it with search-companies first. |
Look up a single company by its slug (preferred) or name, returning its full profile: name, slug, employee count, headquarters, founding year, ticker, company type, and estimated valuation. Use search-companies first if you only have a name and need the exact slug. REQUIRED arguments: companyNameOrSlug.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| companyNameOrSlug | string | yes | Name or slug of a company |
Get a company's INTERNAL level names for a job family, ordered by seniority (e.g. Google L3/L4/L5, Meta E3/E4/E5, Stripe IC1/IC2/IC3), with any alternate names per level. Use this FIRST when a question names a specific level at a specific company (e.g. "what does a Meta E5 make"), then call get-salaries-by-company-level. Returns an empty list with an explanation when the company has no known level
| Parameter | Type | Required | Notes |
|---|---|---|---|
| companySlug | string | yes | The company (slug) whose internal level structure to list, e.g. "google", "meta", "stripe". Resolve a company name to its slug via search-companies first. |
| jobFamilySlug | string | yes | A Levels.fyi job family slug, e.g. "software-engineer", "product-manager", "data-scientist". |
Resolve a named company group (e.g. "FAANG", "AI", "Fintech") into its list of company slugs, for use in the benchmark tools' companySlugs filter. Matching is case- and separator-insensitive. Omit "group" (or pass an unknown one) to get the list of available group names. Available groups: FAANG, AUTOMOTIVE, SPACE, SOCIAL_MEDIA, AI, AI_PLUS, FINTECH, FAANG_PLUS, HEDGE_FUNDS, SEMICONDUCTOR, BIOTECH,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group | string | no | Company group name to resolve (e.g. "FAANG", "AI", "Fintech"). Case/separator-insensitive. Omit to list all available groups. |
Search companies using searchText input (required) and get their Levels.fyi slugs. Use this FIRST to resolve a company name (e.g. "Google", "Meta") into the slug that the benchmark tools require in their companySlugs filter. Also matches former names and aliases, so a renamed company is found under its old name. Returns an array of { name, slug } matches. If this returns no matches, fall back to s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| searchText | string | yes | Company name to search for, current or former (e.g. "Google", "Pure Storage"). |
| limit | number | no | Max results to return (1–15). |
Find companies by their equity vesting characteristics: vesting/equity type (e.g. "RSU"), vesting shape (frontloaded, backloaded like Amazon, linear, one/two/three_year, or extended 5+ years), total years, and whether there's a 1-year cliff. Returns matching companies (most data-rich first) with their decoded vesting schedules.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| vestingType | string | no | Filter by vesting/equity type substring, e.g. "RSU", "Stock Options". |
| vestingPattern | string | no | Filter by vesting shape: frontloaded, backloaded (e.g. Amazon), linear (equal each year), one_year / two_year / three_year (total length), or extended (5+ years). |
| minYears | number | no | Minimum total vesting years. |
| maxYears | number | no | Maximum total vesting years. |
| hasCliff | boolean | no | Filter by whether the schedule has a 1-year cliff. |
| limit | number | no | Max companies to return (1–50). |
Get the top-paying companies for a job family within one country, ranked by median (p50) yearly total compensation in USD. Returns up to 10 companies with their median. Companies with too few submissions are left out. Free limit: Median (p50) total compensation for the top companies in one country. No sample size, level or years-of-experience filter. Pass canonical slugs (jobFamilySlug, locationSl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| jobFamilySlug | string | yes | A Levels.fyi job family slug, e.g. "software-engineer", "product-manager", "data-scientist". |
| countrySlug | string | yes | A COUNTRY location slug, e.g. "united-states", "india", "united-kingdom". Resolve it with search-locations first; cities, metros and states are rejected. |
Look up one or more location slugs and get their details: name, type (country / metro-DMA / state), parent country, currency, and coordinates. Use search-locations first if you only have a name. Errors if any slug is invalid. REQUIRED arguments: locationSlugs. Array-typed arguments (locationSlugs) must be passed as arrays, even for a single value.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| locationSlugs | array | yes | Location slug for the locations |
Get the top-paying locations for a job family within one country, ranked by median (p50) yearly total compensation in USD from submissions in the last 2 years. Returns up to 10 locations with their median. Use it to compare where a role pays most inside a country. Its window differs from get-salary-percentiles (the last 12 months), so the same location can show a different median: quote get-salary
| Parameter | Type | Required | Notes |
|---|---|---|---|
| jobFamilySlug | string | yes | A Levels.fyi job family slug, e.g. "software-engineer", "product-manager", "data-scientist". |
| countrySlug | string | yes | A COUNTRY location slug, e.g. "united-states", "india", "united-kingdom". Resolve it with search-locations first; cities, metros and states are rejected. |
Search locations (countries, metro areas / DMAs, and US states) using searchText input (required) and get their Levels.fyi slugs. Use this to resolve a location name (e.g. "San Francisco", "United States") into the slug the benchmark tools require in their locationSlugs filter. Each result includes its location type. Optionally restrict to one type. Without a type, a name that matches no country,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| searchText | string | yes | Location name to search for (country, metro area / DMA, or US state). |
| type | string | no | Restrict results to one location type. Omit to search countries, metros (DMAs), and states together. Cities are only returned with type "city". |
| limit | number | no | Max results to return (1–15). |
Look up a job family by its slug and get its focus areas (specializations) with their titles, plus untagged titles. Use this to discover the focus tags and titles available within a role (e.g. to find focusTagSlugs for the benchmark tools). Use search-job-families first if you only have a name. REQUIRED arguments: jobFamilySlug.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| jobFamilySlug | string | yes | A Levels.fyi job family slug, e.g. "software-engineer", "product-manager", "data-scientist". |
Search job families / roles using searchText input (required) and get their Levels.fyi slugs. Use this to resolve a role name (e.g. "software engineer", "product manager", "data scientist") into the jobFamilySlug the benchmark tools require. Returns matching job families with their slugs. A specific title (e.g. "UX designer") is not a job family: if this returns no matches, use search-role-terms,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| searchText | string | yes | Job family / role name to search for (e.g. "software engineer", "product"). |
| limit | number | no | Max results to return (1–15). |
Search specific job titles by name. Each result includes its id (the titleId the benchmark tools accept in the jobTitleIds filter) and its parent job family, so use this to narrow a benchmark query to an exact title (e.g. "Forward Deployed Software Engineer") within a job family. Set excludeFamilyLikeTitles to drop titles that are effectively just the job family. If this returns no matches, fall b
| Parameter | Type | Required | Notes |
|---|---|---|---|
| searchText | string | yes | Job title to search for (e.g. "forward deployed engineer", "iOS engineer"). |
| limit | number | no | Max results to return (1–15). |
| excludeFamilyLikeTitles | boolean | no | When true, exclude titles that are effectively the same as their job family. |
Search focus tags (specializations within a role, e.g. "mobile-ios-android", "ml-ai", "devops", "security") using searchText input (required) and get their slugs. Use this to resolve a specialization into the focusTagSlugs the benchmark tools accept. Returns matching focus tags with their slugs. If this returns no matches, fall back to search-all, which searches every entity type and applies a fuz
| Parameter | Type | Required | Notes |
|---|---|---|---|
| searchText | string | yes | Focus tag / specialization name to search for (e.g. "mobile", "ml", "devops"). |
| limit | number | no | Max results to return (1–15). |
Resolve a role term by searching job families, job titles, and focus tags TOGETHER in one call. Use this when you're unsure whether a term (e.g. "ML engineer", "mobile", "SRE") is a job family, a specific title, or a specialization — each result is tagged with its type and slug so you can feed the right one to the benchmark tools. REQUIRED arguments: searchText.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| searchText | string | yes | Role term to resolve across job families, titles, and focus tags. |
| limit | number | no | Max results to return (1–15). |
Get the signed-in user's own Levels.fyi career profile: current title, company, career level, job family, focus area, location, years of experience, skills, certifications and work history, plus the status of their resume (none, pending while it is being parsed, parsed, or failed) and when it was uploaded. Never returns contact details or the resume file. Use it to personalize answers about the us
No parameter schema on file.
Add or replace the signed-in user's resume on Levels.fyi. Call this only when the user asks to upload their resume. Before you call, tell the user Levels.fyi uses it to fill in their profile and match them with jobs and recruiters. Never upload a resume for another person. Accepts a PDF (at most 5 pages) or a DOCX, at most 4.5 MB. Set fileType from the file's actual extension: the upload must be
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fileType | string | yes | The resume file's format: "pdf" or "docx". |
Add the user's own compensation to Levels.fyi: pay they earn now or a job offer they received. Call this only when the user is evaluating their compensation, asks to add their pay, or says yes when you offer. Adding compensation is how the data stays useful for everyone, the user included. Write a complete submission. Resolve the company, job family and focus area to slugs with the search tools f
| Parameter | Type | Required | Notes |
|---|---|---|---|
| companySlug | string | no | The company slug from search-companies. Send companyName instead only when search-companies has no match. |
| companyName | string | no | The company name, only for a company that search-companies cannot find. |
| jobFamilySlug | string | yes | A Levels.fyi job family slug, e.g. "software-engineer", "product-manager", "data-scientist". |
| title | string | yes | The job title as the user states it, e.g. "Software Engineer". In English. |
| level | string | no | The company's own level name from get-company-levels, e.g. "L5". Required for companies with a level ladder; the error says so. |
| focusTagSlug | string | no | A focus area slug from get-job-family for this job family, e.g. "ml-ai". Omit when the user did not name one. |
| team | string | no | The team or organization within the company, e.g. "Google Cloud". In English. |
| locationSlug | string | yes | A CITY slug from search-locations with type "city". Not a metro, state or country. |
| compensationPerspective | string | yes | "offer" for a job offer the user received, "employee" for pay they earn now. |
| sourceDate | string | no | YYYY-MM-DD. For an offer, the offer date (required). For an employee, the date the pay was current; omit for today. |
| currency | string | yes | The currency of every amount in this submission, e.g. "USD", "INR", "GBP". |
| baseSalaryValue | number | yes | The base salary per baseSalaryTimeUnit. |
| baseSalaryTimeUnit | string | yes | The period baseSalaryValue is paid per, usually "yearly". |
| totalStockGrantValue | number | no | Offers only: the total value of the stock (RSU) grant over the whole vesting period. Send vestingSchedule with it. |
| vestingSchedule | array | no | Offers only; required with totalStockGrantValue. The vesting schedule, one entry per year: percent of the grant vesting that year and occurrences (vests that year, 4 = quarterly). 4 equal years vestin |
| avgAnnualStockGrantValue | number | no | Employees only: the stock (RSU) value they receive per year. |
| stockType | string | no | "stock" for RSUs, "option" for stock options. Optional: it follows from the fields sent. One type per submission. |
| totalOptionsGranted | number | no | Offers only: the number of stock options in the whole grant. Send vestingSchedule with it. |
| avgAnnualOptionsGranted | number | no | Employees only: the number of stock options that vest per year. |
| optionStrikePrice | number | no | With options: the exercise (strike) price per option. Send with optionPreferredPrice; together they value the options. |
Get a single salary submission by its UUID: company, title, level, location, years of experience, offer date, base salary and total compensation. Every amount is in USD; originalCurrency is only the currency the salary was submitted in. Use the uuid from a search-raw-data-points row. Free limit: Base salary and total compensation only, in USD. REQUIRED arguments: uuid.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| uuid | string | yes | The unique uuid of the salary |
Get equity vesting schedules for one or more companies, decoded into structured data: per-year vesting percent and frequency (cliff/quarterly/monthly), whether there's a 1-year cliff, whether it's backloaded (e.g. Amazon 5/15/40/40) / frontloaded / linear, plus a plain-English description and vesting type (RSU, options). Pass company slugs (use search-companies to resolve names first). REQUIRED ar
| Parameter | Type | Required | Notes |
|---|---|---|---|
| companySlugs | array | yes | Company slugs to fetch vesting schedules for. |
Search open jobs on Levels.fyi, with the pay range each posting states. Returns { jobs, totalMatchingJobs, nextOffset }; each job has its title, company, locations, work arrangement, posting date, pay range, url (the Levels.fyi job page) and applyUrl. Simplify the user's request to role names and terms that appear in job posts. Pass at most one location per call, and only one the user named: reso
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Role names and terms that appear in job posts, e.g. "backend engineer" or "product designer fintech". Simplify the user's words; leave out locations and salary. |
| locationSlug | string | no | One location slug from search-locations (city, metro, state or country). Only a location the user named. |
| companySlugs | array | no | Company slugs from search-companies, at most 5. |
| jobFamilySlugs | array | no | Job family slugs from search-job-families, at most 10. |
| standardLevels | array | no | — |
| workArrangements | array | no | — |
| employmentTypes | array | no | — |
| postedWithinDays | number | no | Only jobs posted in the last N days. |
| minBaseCompensation | number | no | Minimum base salary, compared with the top of the posting's range as posted (most postings are USD). |
| minMedianTotalCompensation | number | no | Minimum total compensation, compared with the top of the posting's range. |
| sortBy | string | no | — |
| limit | number | no | Companies per page (default 10, max 25). Each returns up to 2 jobs; with one companySlug it is jobs per page. |
| offset | number | no | Pass the previous result's nextOffset to get the next page. |
Get one job posting by its jobId from search-jobs: the full description as text, locations, work arrangement, employment type, the pay range the posting states, Levels.fyi's estimated total compensation by level for the role (USD; matchesThisPosting marks the level the posting is for), the company, the url of the Levels.fyi job page, and applyUrl to apply on the employer's site. REQUIRED arguments
| Parameter | Type | Required | Notes |
|---|---|---|---|
| jobId | string | yes | A jobId from search-jobs. |
Report wrong or missing Levels.fyi data, or a missing feature, to the Levels.fyi team. Call it only after telling the user what you will send and getting their agreement. Never include personal details; contactEmail only when the user wants a reply and gives it. Returns { received, id }. REQUIRED arguments: kind, message.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | What the report is about. |
| message | string | yes | What is wrong or missing, in the user’s words. No personal details. |
| toolName | string | no | The tool whose result the report is about. |
| companySlug | string | no | The company the report is about, as a slug. |
| jobFamilySlug | string | no | The job family the report is about, as a slug. |
| locationSlug | string | no | The location the report is about, as a slug. |
| contactEmail | string | no | Only when the user wants a reply and gives this address. |
Search across ALL entity types at once (companies, job families, job titles, focus tags, locations, and industries) by passing searchText (required) and get a single ranked list, each result tagged with its type and slug/id. Use this when you don't yet know which track an entity belongs to, or to disambiguate an ambiguous name; once the type is known, prefer the type-specific tools (search-compani
| Parameter | Type | Required | Notes |
|---|---|---|---|
| searchText | string | yes | Free-text query to search across all entity types (companies, job families, job titles, focus tags, locations, industries). |
| limit | number | no | Max results to return (1–15). |
| excludeFamilyLikeTitles | boolean | no | When true, exclude TITLE results that are effectively the same as their job family. |
List which inputs and filter values the free tier can use. The free inputs are jobFamilySlug, one locationSlug or countrySlug, and companySlug; every result is total compensation from the last 12 months. Dimensions marked free: false (levels, years of experience, focus areas, titles, company size, funding stage, revenue, valuation, work arrangement, offer vs employee) are not accepted by any tool
No parameter schema on file.
Explain a Levels.fyi compensation metric or concept (e.g. "TC" / total_compensation, base salary, total_cash, tc_first_year, vesting, sign_on, target_bonus) — its meaning, formula, and caveats. Pass an unknown metric to get the list of known ones. REQUIRED arguments: metric.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| metric | string | yes | Compensation metric or concept to explain, e.g. "TC", "total_compensation", "base", "vesting", "sign_on", "tc_first_year". Case/separator-insensitive. |
Get reference knowledge about the Levels.fyi data model, by topic: compensation, levels, vesting, company_groups, locations, job_families, enums, negotiation_coaching. Covers compensation concepts, the standard level ladder, vesting patterns, company groups, and how to resolve locations / job families / enums. negotiation_coaching describes Levels.fyi's offer negotiation coaching: use it only when
| Parameter | Type | Required | Notes |
|---|---|---|---|
| topic | string | no | Data-model topic to fetch. Omit to get all topics. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Levels.fyi or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| get-permissions | no tags | |
| get-salary-percentiles | no tags | |
| get-salaries-by-company-level | no tags | |
| search-raw-data-points | no tags | |
| get-company | no tags | |
| get-company-levels | no tags | |
| get-company-group | no tags | |
| search-companies | no tags | |
| search-companies-by-vesting | no tags | |
| search-top-companies | no tags | |
| get-location | no tags | |
| get-location-stats | no tags | |
| search-locations | no tags | |
| get-job-family | no tags | |
| search-job-families | no tags | |
| search-job-titles | no tags | |
| search-focus-areas | no tags | |
| search-role-terms | no tags | |
| get-profile | no tags | |
| upload-resume | external-sinkstate-write | external-sink: keyword "http_request"; state-write: declares readOnlyHint: false, destructiveHint: true |
| add-salary-submission | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| get-salary-submission-by-id | no tags | |
| get-vesting-schedules | no tags | |
| search-jobs | no tags | |
| get-job | no tags | |
| send-feedback | state-write | state-write: declares readOnlyHint: false |
| search-all | no tags | |
| get-available-filters | no tags | |
| get-metric-explanation | no tags | |
| get-domain-knowledge | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Levels.fyi can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.