{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T16:29:33.009Z","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp","markdownUrl":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp.md","server":{"slug":"sepehr071-karnameh-mcp","name":"Karnameh Cars","registryName":"io.github.sepehr071/karnameh-mcp","description":"Read-only Karnameh (karnameh.com) Iran car data: used ads, new-car prices, specs, comparisons, blog.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"karnameh-mcp","type":"pypi","identifier":"karnameh-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp","version":"0.1.1","transport":"stdio","scoredAt":"2026-11-05T12:00:35.338Z"},"score":{"total":66,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":66},{"date":"2026-11-04","total":81},{"date":"2026-11-03","total":80},{"date":"2026-11-02","total":65},{"date":"2026-11-01","total":79}]},"categories":[{"name":"Supply Chain Security","score":50,"verdict":"partial","reasons":["Malware scan not yet available for this package.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","1 of 35 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_no_verdict"}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"35","unhealthy":"1"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to sepehr071/karnameh-mcp).","Clear OSI-approved license (MIT).","Actively maintained (last published 3 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"sepehr071/karnameh-mcp"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"3"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":67,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 2658 tokens (~177/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"177","items":"15","tools":"15","tokens":"2658","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":13,"verdict":"partial","reasons":["Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"4"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"15"}},{"code":"toolsafety.manipulation_clean","args":{"units":"16","judged":"16"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["Malware scan not yet available for this package."],"malware":[],"components":[{"slug":"karnameh-mcp","type":"pypi","identifier":"karnameh-mcp","withdrawn":false,"score":66,"current":true,"url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp","markdownUrl":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"karnameh-mcp"},{"label":"Version","value":"0.1.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"kn_cars","title":"Search used-car ads","description":"Search Karnameh's used-car ads (karnameh.com/buy-used-cars) by brand, model, city, price, year and mileage.\n\nUse this to find cars for sale or to see what a model costs on the market. Prices are asking prices in Toman.\nPass an ad's `id` to kn_car for the full description, strengths and inspection summary. Only Karnameh's own\nlisted ads are covered (a few hundred), not all of Iran.","inputs":[{"name":"brand","type":null,"required":false,"description":"Brand name, English slug (peugeot, kia, toyota) or Persian (پژو). See kn_brands."},{"name":"city","type":null,"required":false,"description":"City slug from kn_cities, e.g. tehran, karaj, mashhad."},{"name":"inspected_only","type":"boolean","required":false,"description":"Only ads with a Karnameh expert inspection report."},{"name":"installments_only","type":"boolean","required":false,"description":"Only ads that can be bought in instalments."},{"name":"limit","type":"integer","required":false,"description":"How many ads to return (1-50)."},{"name":"max_price","type":null,"required":false,"description":"Maximum price in Toman."},{"name":"max_usage_km","type":null,"required":false,"description":"Maximum odometer reading in km."},{"name":"max_year","type":null,"required":false,"description":"Newest model year, Persian or Gregorian."},{"name":"min_price","type":null,"required":false,"description":"Minimum price in Toman, e.g. 1000000000 for one billion."},{"name":"min_year","type":null,"required":false,"description":"Oldest model year, Persian (1398) or Gregorian (2019)."},{"name":"model","type":null,"required":false,"description":"Model name within the brand, e.g. 206 or Corolla (English as listed by kn_brands) or Persian."},{"name":"offset","type":"integer","required":false,"description":"Skip this many ads (paging)."},{"name":"query","type":null,"required":false,"description":"Free text in Persian, e.g. 'سمند' or 'پژو 206'. Use brand/model for exact filters."},{"name":"sort","type":"string","required":false,"description":"Result order."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":377},{"name":"kn_car","title":"Get one used-car ad","description":"Get one Karnameh used-car ad: price, specs, seller's description, strengths and the inspection summary.\n\nUse after kn_cars to read an ad in full. The detailed inspection report itself needs a Karnameh login, so only\nits date, link and one-line body verdict are returned. Seller phone numbers are not available.","inputs":[{"name":"id","type":"string","required":true,"description":"Ad id (the `id` field from kn_cars), a UUID like 4385b37e-6ce5-413b-9477-6386b20902bd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":123},{"name":"kn_brands","title":"Look up car brands and models","description":"Look up Karnameh's car brands and models, Persian and English, to get the names the other tools expect.\n\nUse first when you only have a Persian name or are unsure of the spelling. Pass the English `brand` and `model`\nvalues to kn_cars. Zero-km price lists (kn_price_list) use their own English variant names.","inputs":[{"name":"query","type":null,"required":false,"description":"Part of a brand or model name, Persian or English, e.g. پژو, 206, kia. Empty lists all brands."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":114},{"name":"kn_cities","title":"List cities","description":"List the cities Karnameh serves, with the slug kn_cars takes as `city` and the id kn_inspection_centers takes.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"kn_price_list","title":"New-car market prices","description":"List today's market prices of new (zero-km) cars from Karnameh's car-price pages (karnameh.com/car-price).\n\nUse for \"how much is a new X\" or to compare models. Prices are Toman and daily; each row is a variant and\nproduction year with its price sources. Only variants Karnameh prices today are listed (no Peugeot Pars or 405;\nkn_latest_prices has older ones). For price movement over time call kn_price_history with a row's `name`.","inputs":[{"name":"brand","type":null,"required":false,"description":"English brand name as in the price list, e.g. Peugeot, Toyota, Changan."},{"name":"country","type":null,"required":false,"description":"Country of manufacture in English: China, Iran, Japan, Korea, German, France or Italia."},{"name":"max_price","type":null,"required":false,"description":"Maximum market price, Toman."},{"name":"min_price","type":null,"required":false,"description":"Minimum market price, Toman."},{"name":"model","type":null,"required":false,"description":"English model name within the brand, e.g. 207i."},{"name":"origin","type":null,"required":false,"description":"Iranian-made or imported cars."},{"name":"page","type":"integer","required":false,"description":"Page of 10 model groups; the answer says how many pages exist."},{"name":"search","type":null,"required":false,"description":"Free text in Persian, e.g. سمند."},{"name":"year","type":null,"required":false,"description":"Only this production year (Persian, e.g. 1405)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":267},{"name":"kn_latest_prices","title":"Latest new-car price quotes","description":"List the most recent price quotes of new cars with the day's percent change.\n\nCovers more variants than kn_price_list (including older models), each with the date of its last quote.\nUse to see what moved lately or to find a variant's exact English name for kn_price_history.","inputs":[{"name":"limit","type":"integer","required":false,"description":"How many quotes to return (1-100)."},{"name":"query","type":null,"required":false,"description":"Part of the English variant name, e.g. Pars, Dena, Corolla. Empty for all."},{"name":"year","type":null,"required":false,"description":"Production year (Persian, e.g. 1404)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":124},{"name":"kn_price_history","title":"New-car price history","description":"Get the daily average market price history of one new-car variant, per production year.\n\nUse after kn_price_list or kn_latest_prices for a trend (\"is it going up?\"). `name` must be the exact English\nvariant name. With `year`, also lists each source's current quote for that year.","inputs":[{"name":"days","type":"integer","required":false,"description":"How many of the latest daily points to return per year (1-90)."},{"name":"name","type":"string","required":true,"description":"Exact English model-variant name from kn_price_list (`name`), e.g. 'Peugeot 207i Manual TU5P'."},{"name":"year","type":null,"required":false,"description":"Production year (Persian). Omit for every year."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":144},{"name":"kn_specs_search","title":"Search car variants with specs","description":"Find car variants in Karnameh's specs catalog and return the `slug` that kn_specs and kn_compare_specs take.\n\nUse first when you want the technical specs, expert review summary or a comparison of a car. Results marked\n`variant: true` have specs; a brand or model match only names a group, so search again with more words.","inputs":[{"name":"limit","type":"integer","required":false,"description":"How many matches to return (1-30)."},{"name":"query","type":"string","required":true,"description":"Brand, model or variant name, Persian or English, e.g. 207, corolla, سمند."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":126},{"name":"kn_specs","title":"Car specs and review summary","description":"Get one car variant's technical specs, Karnameh's expert review score, pros and cons and web reviews.\n\nUse after kn_specs_search. Specs are grouped (dimensions, engine and performance, safety, comfort, multimedia).\nThe summary and score are AI-written from web reviews, so treat them as opinion. For prices call\nkn_price_list; for used ads of the car call kn_cars.","inputs":[{"name":"slug","type":"string","required":true,"description":"Variant slug from kn_specs_search (`slug`), e.g. peugeot-207i-automatic-tu5p."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":120},{"name":"kn_compare_specs","title":"Compare car specs","description":"Compare two to four car variants side by side: review score, pros, cons and every spec row.\n\nUse for \"A or B?\" questions after finding slugs with kn_specs_search. Values are listed in the same order as\n`cars`. Add prices with kn_price_list and used-market asking prices with kn_cars.","inputs":[{"name":"only_differences","type":"boolean","required":false,"description":"List only the spec rows where the cars differ."},{"name":"slugs","type":"array","required":true,"description":"Two to four variant slugs from kn_specs_search."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":112},{"name":"kn_articles","title":"Car blog articles","description":"Search or list articles of the Karnameh car magazine (karnameh.com/blog): news, reviews, maintenance, laws.\n\nNewest first. Use to find a review, a buying guide or a rule explanation, then read it with kn_article(id).","inputs":[{"name":"category","type":null,"required":false,"description":"Blog section: news, reviews and comparisons, maintenance, learning, rules, legal tips."},{"name":"limit","type":"integer","required":false,"description":"How many articles to return (1-20)."},{"name":"page","type":"integer","required":false,"description":"Page number, starting at 1."},{"name":"query","type":null,"required":false,"description":"Search words in Persian, e.g. 'کرولا' or 'بیمه'."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":133},{"name":"kn_article","title":"Read a blog article","description":"Read one article of the Karnameh car magazine as plain text.\n\nUse after kn_articles. Long articles are cut at `max_chars`; `truncated` says so and `url` has the full page.","inputs":[{"name":"id","type":"integer","required":true,"description":"Article id from kn_articles."},{"name":"max_chars","type":"integer","required":false,"description":"Cut the text after this many characters (500-20000)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":83},{"name":"kn_price_movers","title":"Biggest new-car price movers","description":"Rank new (zero-km) car variants by the percent change of their latest price quote.\n\nUse for \"which cars got more expensive lately\". `change_percent` is the change against the previous quote.\nCall kn_price_history with a row's `name` for the trend behind it.","inputs":[{"name":"days","type":"integer","required":false,"description":"Only quotes dated within this many days of the newest quote (1-30)."},{"name":"direction","type":"string","required":false,"description":"Biggest rises, biggest drops, or biggest in either direction."},{"name":"limit","type":"integer","required":false,"description":"How many rows to return (1-50)."},{"name":"year","type":null,"required":false,"description":"Production year (Persian, e.g. 1404)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":141},{"name":"kn_city_stats","title":"Used-car listing counts per city","description":"Count Karnameh's used-car ads in every city, optionally for one brand, model or price ceiling.\n\nUse to see where a car is for sale. Also gives each city's cheapest ad. Makes one request per city (9, run together), so it is\nslower than kn_cars. Search a city's ads with kn_cars(city=...).","inputs":[{"name":"brand","type":null,"required":false,"description":"Brand name, English or Persian (see kn_brands)."},{"name":"max_price","type":null,"required":false,"description":"Maximum price in Toman."},{"name":"model","type":null,"required":false,"description":"Model name within the brand."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":119},{"name":"kn_inspection_centers","title":"Karnameh inspection centers","description":"List Karnameh's walk-in car inspection and paint-check centers in a city, with address and map coordinates.\n\nUse when the user wants to get a car inspected. Booking and prices are not public here; the site books it.","inputs":[{"name":"city_id","type":"integer","required":true,"description":"City `id` from kn_cities (Tehran is 1)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":80}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T12:00:35.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":35,"partial":false,"deprecated":null,"stale":null,"noRepo":1}},"mismatches":[],"changelog":{"trackingSince":"2026-11-01","recent":[{"id":"chg_01a1ab95-1031-7ef9-8858-8f61337a2d25","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a1ab95-1031-7ef9-8858-8f61337a2d25"},{"id":"chg_01a1ab95-1033-71d4-8b7f-2e902d8f4472","kind":"score.total_changed","summary":"Trust score (81 → 66)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a1ab95-1033-71d4-8b7f-2e902d8f4472"},{"id":"chg_01a1a5e8-0d75-72a9-8aab-a348e6e5fb74","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a1a5e8-0d75-72a9-8aab-a348e6e5fb74"},{"id":"chg_01a1a0c0-32af-7ce1-9d0c-135075c23fd8","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a1a0c0-32af-7ce1-9d0c-135075c23fd8"},{"id":"chg_01a1a0c0-32b1-7870-b326-499277ceed4f","kind":"score.total_changed","summary":"Trust score (65 → 80)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a1a0c0-32b1-7870-b326-499277ceed4f"},{"id":"chg_01a19b3e-1ee5-70c2-834a-e6be384dc512","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a19b3e-1ee5-70c2-834a-e6be384dc512"},{"id":"chg_01a19b3e-1ee5-762c-b8f5-44d7f38e8ddf","kind":"package.version_changed","summary":"Package version (0.1.0 → 0.1.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a19b3e-1ee5-762c-b8f5-44d7f38e8ddf"},{"id":"chg_01a19b3e-1ee5-7aeb-a9b3-08b1ebbec273","kind":"score.total_changed","summary":"Trust score (79 → 65)","materiality":"functional","direction":"regression","scoreDelta":-14,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a19b3e-1ee5-7aeb-a9b3-08b1ebbec273"},{"id":"chg_01a1964d-da34-7b7c-97ae-18cbaae9125f","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a1964d-da34-7b7c-97ae-18cbaae9125f"},{"id":"chg_01a19629-145a-7b94-964f-2dc4d021d6c2","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp#chg-chg_01a19629-145a-7b94-964f-2dc4d021d6c2"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp","markdown":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp.md","changelogJson":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/sepehr071-karnameh-mcp/karnameh-mcp.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/karnameh-mcp/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/karnameh-mcp"},{"label":"Repository","href":"https://github.com/sepehr071/karnameh-mcp"}]}}