Servers Changes Log Check Why How it works GitHub

Transparency log · MCP tool definitions

Every MCP server's tools, on the record.

Your AI client trusts the tool descriptions an MCP server sends it — and a server can change them after you approved it. HISTOR keeps a public, signed record of what every remote MCP server in the official registry advertised, and tells you the day it changed.

Remote endpoints: it lists tools and never calls one. Registry packages: bounded canary calls run inside the isolated sandbox. It never says a server is safe — it tells you what was said, and when.

DRAG TO ORBIT
SIM
—

WebGL is unavailable here. The picture is the log itself: each label is a leaf, leaf hashes climb a Merkle tree, and a signed tree head seals the root.

—
Registry endpoints
last crawl
—
Tool sets pinned
current
—
Changes
last 7 days
—
Labels in the log
all time
—
Last signed tree head
UTC

What HISTOR is for

Tool descriptions are instructions. They should not change behind your back.

The problem

A server can change what your model reads

When you connect an MCP server, its tool descriptions go straight to the model as instructions. A server can pass your review with harmless descriptions and change them next week — one added sentence is all a prompt injection needs, and most clients never ask you again.

What HISTOR does

It keeps the public record

Every day HISTOR reads what each remote (streamable-HTTP) endpoint in the official MCP registry advertises, fingerprints it, signs what it saw and appends it to a log that can only grow. When a server's definitions change, the change gets a date and a diff.

What you get

A second pair of eyes you can check

Look up any server before you trust it. Paste what your client received and learn whether everyone else sees the same thing. Follow changes in a feed, or put a badge in your README. Every answer is signed, so you can verify it instead of believing it.

Who it is for

People who use MCP serversin Claude, Cursor or any client — check a server before you connect it, and again when it changes.
Agent builderswhose agents connect to servers on their own — call /check before trusting a tool set.
Registries and directoriesthat want more than stars and download counts — show when a listing's tools last changed.
Server authorswho want to show a stable, documented history — add the badge, and every change you ship is dated in public.

Four words used on this page

Tool definitions
The name, description and input schema of each tool a server offers — the text your model reads.
Pinned
HISTOR has recorded a fingerprint (digest) of the exact definitions it saw, so any later change is detectable.
Label
One signed statement about one observation: what was seen, what matched, whether it changed. Anyone can verify it offline.
Signed tree head
The log's signed summary after each crawl. Comparing two of them proves nothing was deleted or rewritten in between.

SiteCheck Jobs & Property

io.github.bck-stack/sitecheck-jobs-property · https://api.jobsproperty-api.workers.dev/mcp?ref=registry

114 pay-per-call agent tools: job market and real estate data tools. x402

First observed
2026-10-23
Unchanged since
2026-10-23
Last observed
2026-10-23
Observations
1
Changes on record
Tools
114

Tool definitions as last observed (114)

  • jobs_4dayweek_jobs — Newest 4-day-week and flexible job postings from 4dayweek.io's public RSS feed: role title, company (author field), link, publish time. The feed has no salary or location fields, so they are not returned. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_alternative_me_fear_greed — Crypto Fear & Greed Index (0-100) from alternative.me: today's value and label, plus up to 30 previous days. Daily data from alternative.me, which asks for attribution. Not a job or salary dataset. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_arbeitnow_jobs — Job openings from the Arbeitnow public job board API (mostly Europe, many remote roles). Returns the newest 300 postings; title, company, location, remote flag, tags, posted time, link. No salary field in the source. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_arc_dev_jobs — Remote engineering and other roles listed on Arc.dev, read from the job list embedded in its public page: title, job type, experience level, posted time, annual or hourly pay when given, skill categories. The company name is not present in the public list, so it is not returned. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_ashby_jobs_board — Open roles from one company's public Ashby job board (pass its organization name, e.g. ashby). Title, department, location, remote flag, published time, apply link. Ashby gives no salary in this feed; one company per call. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_authentic_jobs — Open jobs on Authentic Jobs (design, front-end/back-end engineering, product, marketing): title, company and website, location, remote flag, job type, categories, salary when posted, featured flag, how to apply (URL or email the employer published), posted date, a description extract and job URL, newest first; plus the total number of open jobs. Optional keyword, category and type filters. Price: …
  • jobs_bayt — Bayt.com job search for the Middle East and North Africa: job id, title, company, location, summary, posted time (date and Bayt's label), Easy Apply flag, company logo and job link for a keyword in a country (optionally a city), up to ~30 jobs per page. From bayt.com via a residential proxy. Price: $0.01 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charge …
  • jobs_breezy_jobs — Open positions of a company that hires through Breezy HR, from its public career-site feed: job title, department, employment type, location(s) with country, remote flag and remote policy, salary text when published, published date and apply URL. Give the company's Breezy subdomain (the part before .breezy.hr). Optional keyword and remote-only filters. Price: $0.002 in USDC per successful call, pa …
  • jobs_builtin_tech_jobs — Tech and startup jobs from Built In for a search term: job title, company, work mode (remote/hybrid/in-office), locations, seniority level, salary range when published, how recently it was posted and job URL, 25 per page, from Built In's public job search page. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_career_site_jobs — Open roles for one company token, looked up on the three public applicant-tracking job APIs (Greenhouse, Lever, Ashby). Each job says which system it came from; a system that has no board for that token is reported as not found. Title, location, team or department, posted time, apply link. Salary is given only when the feed provides it, which these feeds mostly do not. Price: $0.002 in USDC per su …
  • jobs_clearancejobs — ClearanceJobs postings for a keyword (US defense and intelligence jobs that need a security clearance): title, company, locations with on-site/remote type, required clearance (e.g. Secret, TS/SCI), polygraph, career level, salary range when published, posted/updated dates and job URL, 20 per page, plus the total match count. From the public search page. Price: $0.002 in USDC per successful call, p …
  • jobs_cv_library_uk_jobs — CV-Library (UK) jobs for a location and optional keyword: job id, title, company, location (town or postcode), salary text, job type (permanent, contract...), posted time, snippet and link, 20 per page (page 1 to 5), plus the total shown ('10,000+'). From cv-library.co.uk's public search pages via a rendering residential proxy. Price: $0.02 in USDC per successful call, paid with x402 (Base, Solana …
  • jobs_cv_optimizer — Resume vs job-ad keyword check, the way applicant tracking systems screen: extracts the job ad's key terms (words and two-word phrases, weighted by frequency), shows which the resume already covers and which are missing, and gives a 0-100 coverage score and the top terms to add. Plain text analysis of the two texts you send; no AI rewriting and no data is stored. Price: $0.002 in USDC per successf …
  • jobs_devbg_bulgarian_jobs — Bulgarian IT jobs from DEV.BG for a technology category (e.g. python, java, javascript, devops, qa): job title, company, location, work mode (on-site/hybrid/remote), tech stack icons, salary when published, posting date as shown (Bulgarian) and job URL, from the public category listing page (first page). Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls …
  • jobs_dice — Tech job listings from Dice (US) for a keyword and optional location: title, company, location, how long ago it was posted, employment type (full-time, contract...), salary text as posted, and job URL, about 20 per page, plus the total number of matching jobs. Optional remote-only filter. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_djinni_co — Tech job postings from Djinni.co's public job list (mostly Ukraine and remote roles), read from the schema.org JobPosting data on the page: title, company, location type, posted time, salary range when the employer gives one, link. Djinni shows about 15 postings per page. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_eu_eures_jobs — Job vacancies from EURES, the EU job mobility portal (public employment services of EU/EEA countries): title, employer, country and NUTS region, working time, contract kind, number of posts, ad languages, EURES flag (open to foreign applicants), ESCO codes, description extract, created date and link. Keyword search, optional country, newest first or best match; plus total count. Price: $0.002 in U …
  • jobs_flexjobs — FlexJobs remote and flexible jobs for a job title or category (e.g. 'developer', 'customer-service', 'writing'): title, summary, allowed locations, remote level, schedule, salary range, benefits, categories, posted and expiry dates, plus the total count. From flexjobs.com's public listing pages via a residential proxy. FlexJobs hides employer names from non-members, so company is not included. Pri …
  • jobs_foundit_jobs — Job ads on foundit.in (India, formerly Monster India) for keywords and an optional city: title, company, locations, experience range in years, salary range in INR per year when the employer shows it, employment type, posting time and job URL, plus the total match count, from the public JSON route behind foundit's search page. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana …
  • jobs_glassdoor — Glassdoor employer reviews: overall rating, review count, sub-ratings (culture, work-life, pay, career, management, diversity), CEO approval, recommend and outlook shares, star distribution and the 3 reviews shown to logged-out visitors (title, pros, cons, job, location, date). Needs the employer's Glassdoor name and id, e.g. Apple-E1138. Via a residential proxy. Price: $0.002 in USDC per successf …
  • jobs_glassdoor_jobs — Glassdoor job search: title, employer, employer rating, location, Glassdoor's estimated pay range (p10/p50/p90 with period and currency), age in days, easy-apply flag and link for up to 30 jobs, plus the total count. US-wide by keyword, or one city when you pass Glassdoor's city id (the IC number in a Glassdoor jobs URL, e.g. 1139761 = Austin, 1148170 = Denver). Via a residential proxy. Price: $0. …
  • jobs_governmentjobs — US public-sector job postings from GovernmentJobs.com (NEOGOV; state, county, city and agency jobs) for a keyword and optional location: title, hiring agency, location, job type, published salary range, closing note, featured flag and job URL, 10 per page. From the public search results page. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not char …
  • jobs_greenhouse_jobs — Open roles from one company's public Greenhouse job board (pass its board token, e.g. airbnb or stripe). Title, location, posted time, apply link. Greenhouse does not give salary here; one company per call. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_gumtree_jobs — UK job ads from Gumtree for a town or city and optional keyword: title, location (area, town), pay text as posted (e.g. £13/hour, up to £650/week), tags such as contract type and recruiter, featured flag, how long ago it was posted, ad ID and URL, about 30 per page, plus the total number of matching ads. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls …
  • jobs_idealist_nonprofit_jobs — Nonprofit and social-impact listings from Idealist: jobs (default), internships or volunteer roles for a keyword, optionally by country or remote only. Each listing: title, organisation and type, city, state, country, onsite/remote/hybrid, job type, salary range (min, max, currency, period) when posted, professional level, education, published date, coordinates and URL; plus the total number of ma …
  • jobs_indeed — Indeed job search (US): title, company, location, salary range, job type, posting date and link for the first page of results (up to ~15 jobs) for a keyword and location, read from indeed.com's public search page through a residential proxy. Rankings and salaries are as Indeed shows them; no job descriptions. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed c …
  • jobs_infojobs — Newest offers on InfoJobs' public Spanish job list page: title, company, city, contract type, remote/on-site mode, publish time, link. Salary and description are not returned. Text is in Spanish (or Catalan) as the employer wrote it. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_internshala — Jobs listed on Internshala's public /jobs/ page, read from the schema.org ItemList the page embeds: job title and detail-page link, in page order. The list gives only titles and links; company, location and pay are not in it, so they are not returned. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_jobrapido — Jobrapido job search on a country site (uk, us, it, fr, de, es, in, br, ...): advert id, title, company, location(s), posted date label, salary, source website, sponsored flag and job link, for a keyword and place, up to about 20 results per page. From jobrapido.com via a residential proxy. Price: $0.01 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged …
  • jobs_jobspresso — Newest remote jobs from Jobspresso's public job feed: title, company, location (as the employer wrote it), job category, link, publish time. Salary and description are not returned. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_jooble — Job search on Jooble's aggregator through its official REST API: title, company, location, salary text, employment type, snippet, original source, last update time and Jooble link, plus the total match count. A jooble.org key covers US listings only. Requires the operator's JOOBLE_API_KEY. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged …
  • jobs_levels_fyi — Tech compensation for one company and job family from Levels.fyi's public salary page (e.g. google + software-engineer): total-comp, base, stock and bonus percentiles (p10-p90) with sample size, and the average package per level (L3, L4 ...) with typical years of experience. United States figures in USD as published; reflects user-reported data. Price: $0.002 in USDC per successful call, paid with …
  • jobs_lever_jobs — Open roles from one company on Lever (pass its Lever site name, e.g. spotify). Title, team, location, commitment, workplace type, posted time, apply link. Lever gives no salary in this feed; one company per call. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_linkedin_jobs — LinkedIn job postings for a keyword and location from LinkedIn's public (logged-out) job search: job title, company, company page, location, posting date, 'actively hiring' flag, job ID and job URL, 10 per page. Job descriptions, salaries and applicant counts are not included. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_multi_job_board — Open roles from up to 5 named company boards in one call. Pass boards as system:token pairs separated by commas, where system is greenhouse, lever or ashby, e.g. greenhouse:airbnb,lever:spotify,ashby:ashby. Each job says which board it came from. A board that does not exist is reported as not found. Title, location, team, posted time, apply link; salary is not in these feeds. Price: $0.002 in USDC …
  • jobs_naukri_com — Naukri.com (India) job search: job id, title, company, company rating and review count (AmbitionBox), experience range, salary text when shown, locations, description snippet, skill tags, posted label and link, 20 per page (page 1 to 5), plus the total count from the page title. From naukri.com's public search pages through a rendering residential proxy. Price: $0.02 in USDC per successful call, p …
  • jobs_nodesk_remote_jobs — Newest remote job postings from NoDesk's public RSS feed: title, company (from the title 'Role at Company'), link, publish time. The feed has no salary, location or description fields, so they are not returned. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_nofluffjobs — No Fluff Jobs IT job postings (Poland and Central/Eastern Europe) for a technology or skill: title, company, category, seniority, cities, remote flag, salary range with currency, period and contract type (No Fluff Jobs requires salaries), posting date and URL, plus the total match count. From No Fluff Jobs' public search JSON. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana …
  • jobs_payscale — US median pay for a job title from PayScale's public salary research page: the title's compensation (USD, annual) and the related career-path roles with their pay. Pass the title as PayScale writes it in its URL, e.g. Software_Engineer. Figures are PayScale's published estimates. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_recruitee_jobs — Published openings on one company's public Recruitee careers site (pass its subdomain, e.g. bunq for bunq.recruitee.com). Title, department, city, country, employment type, remote flag, publish time, apply link, and salary when the company publishes it. One company per call. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_reed_co_uk — UK job search from the official Reed Jobs API: title, employer, location, salary range, posted and expiry dates, application count, short description and link. Filter by keywords, location, distance and minimum salary. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_seek — Job ads on SEEK Australia or New Zealand for keywords and a place: title, company, location, salary text (when the advertiser shows one), work type, work arrangement, classification, teaser, listing date and job URL, plus the total match count, from SEEK's public job-search JSON service (the one its website uses). Up to 100 ads per page. Price: $0.002 in USDC per successful call, paid with x402 (B …
  • jobs_seekingalpha — SEEK job ads (Australia or New Zealand) for keywords and a location: title, advertiser, location, work type and arrangement, salary text when shown, classification, short teaser, bullet points, listing date and job URL, plus the total number of matching ads. From SEEK's public job-search JSON. Full ad text and applicant data are not included. Price: $0.002 in USDC per successful call, paid with x4 …
  • jobs_simplyhired — SimplyHired job search (US): title, company, location, salary text, job type, requirements, benefits, posting date and link for the first page of results (up to 20) for a keyword and optional location, plus the total result count. Read from simplyhired.com's public search page through a residential proxy; no full descriptions. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana …
  • jobs_smartrecruiters_jobs — Open postings of one company on SmartRecruiters' public Posting API (pass the company identifier, e.g. canva). Title, city, region, country, location text, remote/hybrid flags, employment type, function, release time, and the posting's API link. Descriptions are not included. One company per call. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not …
  • jobs_snagajob — Snagajob hourly-job search near a US place: total matches and up to 30 jobs with posting id, title, normalized title, company, address, city, state, zip, distance (miles), wage text, hourly median, Snagajob's estimated market wage, full/part-time, industries, easy-apply and sponsored flags, created and updated dates and job link. From snagajob.com via a residential proxy. Price: $0.01 in USDC per …
  • jobs_specialized_job_boards — Remote tech and other remote jobs from RemoteOK's public JSON feed: title, company, location, tags, salary range when given, apply link. Feed is refreshed frequently; RemoteOK asks API users to link back to remoteok.com. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_teamtailor_jobs — Open roles on one company's public Teamtailor career site, read from its jobs.rss feed (pass the subdomain, e.g. career for career.teamtailor.com). Title, city, country, department, role, remote status, publish time, link. Salary is not in the feed; one company per call. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_thecatapi_cat_breeds — Cat breeds from TheCatAPI: name, other names, origin country, temperament, life span, weight range, short description and a photo link; optionally filtered by words in the name, other names or origin (e.g. "turkish", "Egypt"). Not a job data source; it is in this batch's wish list. Needs a free TheCatAPI key (set CAT_API_KEY); without it the tool answers 503. Price: $0.002 in USDC per successful c …
  • jobs_themuse_jobs — Job listings from The Muse public API (US and remote companies): title, company, locations, level, category, posted date, link. The API has no salary field. Returns one page of up to 20 jobs per call. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_upwork_jobs — Upwork job search: the newest freelance jobs for a keyword (10 per page, up to page 5) with title, description (first 600 characters), hourly range or fixed budget, experience level, duration, skills, client country, payment-verified flag, client spend and posted time, plus the total count. From upwork.com's public job search through a residential proxy; logged-out visitors see a limited result se …
  • jobs_usajobs — US federal job openings from the official USAJOBS Search API: title, agency, location, pay range, closing date, link. Needs a free USAJOBS key (set USAJOBS_API_KEY and USAJOBS_EMAIL); without them the tool answers 503. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_wantedly — Newest job postings ('projects') from Wantedly's public projects API, mostly Japanese employers: title, company name, location, what they look for (e.g. remote OK), publish time, page link. Pay and description are not returned. Text is in the language the employer wrote it, usually Japanese. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charg …
  • jobs_we_work_remotely — Newest remote programming jobs from We Work Remotely's programming category RSS feed: title, company (from the title), region, category, link, publish time. The feed has no salary field. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_wellfound_jobs — Startup job listings from Wellfound (formerly AngelList Talent) for a role, either remote or in a city: job title, job type, compensation range as posted (salary, sometimes equity), locations, remote flag and accepted remote regions, years of experience, posted date and job URL, grouped with the hiring startup (name, one-line pitch, company size, badges such as stage or actively hiring, profile UR …
  • jobs_weworkremotely — Newest remote job postings from We Work Remotely's public RSS feed: title, company (from the title), region, category, job type, link, publish time. The feed has no salary field. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • jobs_workday_jobs — Open roles on one company's public Workday career site (pass tenant, wd number and site name from its careers URL, e.g. salesforce / 12 / External_Career_Site). Title, location text, posting text (e.g. 'Posted Today'), requisition id, and link. Workday's public list has no salary or company name field; the link is built from the site address and the posting path. Price: $0.002 in USDC per successf …
  • jobs_xing — Job listings from XING (Germany, Austria, Switzerland) for a keyword and optional location: title, company, location, employment type, salary band as shown by XING (EUR), posting time (ISO, when XING shows it), whether it is an external partner ad, and job URL, plus the number of matching jobs XING reports (capped at 999 by XING). Price: $0.002 in USDC per successful call, paid with x402 (Base, So …
  • jobs_ziprecruiter — ZipRecruiter job search (US): job title, company, location, work setting (on-site/remote/hybrid), pay text when shown, benefit labels and job link, 20 per page (page 1 to 5), for a keyword and location. From ziprecruiter.com's public search pages via a rendering residential proxy. Price: $0.02 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_apartments_com — Apartments.com rental listings for a US city: property name, street address, ZIP, coordinates, rent range (low/high, USD per month), phone, amenities (pets, pool, fitness...), image and link, 40 per page (page 1 to 28), plus the total number of rentals in the city. From apartments.com's public search pages via a residential proxy. Price: $0.002 in USDC per successful call, paid with x402 (Base, So …
  • realestate_aqarmap_egypt — Egyptian property listings from Aqarmap for sale or rent, by property type and location (e.g. apartment in cairo, villa in alexandria, cairo/new-cairo): listing ID, title, type, price in EGP, area (m²), rooms, baths, floor, finish type, year built, full location path, address, listing kind (owner/broker/sponsored), payment method, last update, photo and URL; 22 per page plus the total count. Selle …
  • realestate_auction_com_property — HUD homes for sale by online bid (official HUD Home Store FHA-foreclosure inventory) in a US state or city: case number, address, county, list price, beds, baths, square feet, year built, type, status, listing period, FHA financing code, list and bid dates, eligible bidders, coordinates and link. Replaces Auction.com, which blocks automated access. Price: $0.002 in USDC per successful call, paid w …
  • realestate_auction_com_property_scraper_ppe — Upcoming U.S. Treasury auctions of seized/forfeited real property (official treasury.gov list): property type, address, state, ZIP, sale method (online auction or broker sale), auction date (null while 'coming soon'), Treasury sale number, short description (size, rooms, lot) and detail-page URL. Filter by state or property type. Replaces Auction.com, which blocks automated access. Price: $0.002 i …
  • realestate_bankrate_mortgage_rates — Today's US mortgage rates from Bankrate: national average interest rate and APR for each product (30-, 20-, 15- and 10-year fixed, 30-year FHA, VA and jumbo, adjustable-rate mortgages) for purchase and refinance, with Bankrate's 'rates as of' time, plus the daily 30-year fixed purchase rate and APR history from Bankrate's chart (about 60 days). Price: $0.002 in USDC per successful call, paid with …
  • realestate_bienici_real_estate — French property ads from Bien'ici for a city or area: title, city, postcode, district, price (EUR, plus price per m²), surface, rooms, bedrooms, property type, energy class, agency, new-build flag, price-drop flag and ad URL, plus the total number of matching ads. To buy or to rent; flats, houses, parking or land. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); fai …
  • realestate_catastro_spain_property — Official Spanish Cadastre (Catastro) lookup: municipalities of a province with their Catastro codes, from the public OVCCallejero web service. Municipality level only; a property-level lookup needs a cadastral reference, which this tool does not take. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_century_21 — Homes for sale on CENTURY 21 (US) in a city: street address, ZIP, coordinates, list price (USD), bedrooms, bathrooms, floor size (sq ft), property type and main photo, plus the page's listing count (up to about 300). Pick the page by type (single-family, condo, townhouse, multi-family, land, rental, new-construction, open-house); filter by price range and minimum bedrooms. Price: $0.002 in USDC pe …
  • realestate_commercial_property_transactions — Recently recorded NYC real-property documents from the city's ACRIS master file (NYC Open Data): document type (e.g. DEED, MTGE), document date, recorded date, borough and document amount in USD. Not limited to commercial property, and it is the recording record, not a sales-price database. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charge …
  • realestate_commercial_real_estate_listings — Crexi commercial real estate listings (for sale and auction) from the JSON search the crexi.com site uses: listing ID, name, short description, property types, status (On-Market, Auction...), asking price (null when unpriced), square footage, brokerage, address with county and coordinates, listed/updated dates, offers-due date and URL, plus the total match count. Filter by US state, property type …
  • realestate_cook_county_property_records — Cook County (Illinois) assessor parcel records by 14-digit PIN from the Cook County Open Data portal: yearly assessment class, township, neighborhood code, property address and ZIP. Owner names are not returned. Yearly rows, newest first. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_cookcountyassessor — Cook County Assessor building characteristics by 14-digit PIN (Open Data portal): year built, building and unit square feet, bedrooms, land square feet and class, per assessment year. Only what the assessor publishes; no owner data. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_estately — US homes for sale from Estately (regional MLS data) for a city: per listing the address, ZIP, county, coordinates, list price, beds, baths, living area and lot size (sq ft), property type, status, annual tax, MLS and listing number, listing office and phone, next open house, photo count, main photo, time on Estately and link, plus the total listings in the city. Filter by type, price range and min …
  • realestate_estatesales_listings — Upcoming and current estate sales, moving sales and auctions near a US city from EstateSales.NET: per sale the ID, title, sale type, organiser company (website, phone, listing tier), street address when published, ZIP, city, state, coordinates, every sale day with start and end time (UTC and local), picture count and links, plus how many sales the city page lists in total. Price: $0.002 in USDC pe …
  • realestate_habitaclia_spain — Barcelona homes for sale (first results page) from the public habitaclia.com search page: title, asking price in EUR, rooms, surface in m2, location and listing link. Read from the page's embedded state JSON; Habitaclia has no free public API. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_healthgrades — Doctors near a US city from Healthgrades' specialty directory (family practice, dermatology, cardiology...): up to 20 providers with name, NPI, Healthgrades ID, specialty, rating and review counts, practice address, distance, gender, age, new-patient and telehealth flags, appointment availability, number of accepted insurance plans and profile link. Price: $0.002 in USDC per successful call, paid …
  • realestate_hemnet — Hemnet (Sweden) homes for sale in an area: address, housing form, asking price and price per m2 (SEK), monthly fee, rooms, living area, coordinates, broker, upcoming viewings, labels, published time and link; 50 per page (pages 1-10), newest first, plus total count. The area is Hemnet's location id from a hemnet.se search URL (17744 = Stockholms lan). Via a residential proxy. Price: $0.002 in USDC …
  • realestate_hmda_mortgage_loan_data — Official US mortgage application totals from the CFPB HMDA Data Browser API for one state and year: number of loans and their total dollar amount (aggregated, no borrower data). Filter by HMDA action taken (1 = loan originated, default). Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_hotpads_rentals — HotPads rental listings for a US city: building or home name, type (apartment complex, house...), street address, city, ZIP, bedrooms, rent range (USD per month), image and link, about 40 per page (page 1 to 20), plus the total number of rentals. Filter by apartments, houses, condos or townhomes. From hotpads.com's public search pages via a residential proxy. Price: $0.002 in USDC per successful c …
  • realestate_houzz — Houzz home-improvement professionals of one category near a US city (e.g. general-contractors, interior-designers-and-decorators, home-builders, painters): name, categories, rating (0-5), review count, projects on Houzz, cost estimate, address, phone, distance, coordinates, sponsored flag and profile URL; 15 organic results per page (plus Houzz sponsored ones, flagged) in Houzz order, and the tota …
  • realestate_immowelt — German property listings from immowelt.de for a city: per listing the property type, city, price in EUR, rooms, living area (m²), floor when given and listing URL (first page, ~30 listings), plus the market summary immowelt publishes for the search: number of offers and lowest/highest price. Apartments or houses, to buy or rent. Price: $0.002 in USDC per successful call, paid with x402 (Base, Sola …
  • realestate_iss_current_location — Live position of the International Space Station from wheretheiss.at: latitude, longitude, altitude (km), speed (km/h), and whether it is over daylight. Updates roughly every second on the source; the answer is cached 30 seconds. Not a real-estate dataset. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_james_edition_real_estate — Luxury homes for sale on JamesEdition for a location (country, region or city as in JamesEdition URLs, e.g. miami-fl-usa, spain, london-united-kingdom): listing ID, title, property type, asking price in the listing currency plus USD and EUR, beds, baths, size in m², city, region, country, coordinates, listing office and URL; 30 per page plus the total count. Data from the public search page. Price …
  • realestate_landwatch — LandWatch land, ranch, farm and hunting property listings for a US state (optionally one county): title, price, acres, price per acre, recent price change, property types, beds/baths/home size when there is a house, address, city, county, ZIP, coordinates, broker name, company and phone, last update and link; 25 per page (page 1 to 40), plus the total count. From landwatch.com's public search page …
  • realestate_loopnet — LoopNet commercial real estate listings for a US city: listing id, address, building name, property type (office, retail, industrial, land, multifamily...), listing type, price or rent text, size, unit count and other card facts, short blurb, broker and brokerage, ZIP and link; for sale or for lease, page 1 to 20. From loopnet.com's public search pages via a residential proxy. Price: $0.002 in USD …
  • realestate_luxuryestate — Luxury homes for sale in France (first results page) from the public luxuryestate.com search page: title, price in EUR, surface, rooms, bedrooms, bathrooms and city. Read from the page's embedded JSON; there is no public API. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_magicbricks_india — MagicBricks (India) homes for sale or rent in a city: listing title, project/society, locality, property type, bedrooms, bathrooms, balconies, floor, covered and carpet area, price (INR) with display text and price per sq ft, furnishing, possession status, transaction type, owner/agent, posted date, coordinates and link; 30 per page (page 1 to 10), plus the total count. From magicbricks.com throug …
  • realestate_mlssoccer_standings — Current MLS (Major League Soccer) standings from ESPN's public standings feed: rank, team, games played, wins, losses, ties, points, goals for and against, goal difference, per conference. Not a real-estate dataset; the route name is kept from the wish list. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_myhome_ie — Dublin homes for sale (first results page) from the public myhome.ie search page: address, asking price as shown on the page (EUR), size in m2, bathrooms and estate agent. Read from the page's embedded JSON; there is no official public API. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_nhc_current_storms_v2 — Active tropical cyclones from the US National Hurricane Center (NOAA) CurrentStorms.json feed: name, id, classification, intensity (knots), pressure (mb), position, movement and the latest public advisory link. Empty list when no storm is active. Not a real-estate dataset. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_niche_schools — Niche rankings of US colleges and K-12 public schools/districts, nationally or by state: rank award (e.g. #1 Best Colleges in America), name, type, overall Niche grade (A+ to D-), acceptance rate, net price and SAT range for colleges, students and student-teacher ratio for schools, review rating and count, and Niche profile URL; 25 per page plus the total number ranked. Price: $0.002 in USDC per s …
  • realestate_nobroker — NoBroker India owner-listed homes for rent or resale near a point in 10 cities (Bangalore, Mumbai, Pune, Chennai, Hyderabad, Delhi, Gurgaon, Noida, Ghaziabad, Faridabad): ID, title, BHK, rent, deposit and maintenance or sale price, size, bathrooms, floor, furnishing, society, locality, coordinates, distance, dates and URL; 26 per page. Owner names are not returned. Price: $0.002 in USDC per succes …
  • realestate_nyc_property_sales — Recent NYC property sales from the NYC Department of Finance Citywide Rolling Calendar Sales dataset: address, neighborhood, building class, units, year built, sale price and sale date. Newest first. Optional borough filter. Data lags the city's publication schedule. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_openrent_uk_listings — UK rental listings from OpenRent (landlord-direct) for a city or area: listing ID and URL, monthly rent (GBP), bedrooms, bathrooms, studio/shared flags, furnished, bills included, pets, students and families accepted, garden, parking, minimum tenancy (months), days until available, first-listed date and coordinates. Filter by max rent, min bedrooms, furnished or pets; newest first. Also returns th …
  • realestate_property24_south_africa — South African property listings from Property24 for an area: listing number, headline (e.g. 2 Bedroom Apartment), suburb, price in rand, bedrooms, bathrooms, parking spaces, floor size (m²) and listing URL, first results page (about 20 listings), for sale or to rent. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_purplebricks_property — Recorded UK residential sale prices and dates for one postcode, from HM Land Registry Price Paid Data (official open data, OGL). Historic sales only, not current listings; Purplebricks itself has no public API. Price: $0.002 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.
  • realestate_real_estate_investor_toolkit — Rental property investment calculator from your numbers: monthly mortgage payment (amortising), net operating income, cap rate, gross rental yield, monthly and annual cash flow, cash-on-cash return, debt service coverage ratio (DSCR), break-even occupancy and the 1% rule check. Any currency. Standard formulas; it does not look up prices or rents. Price: $0.002 in USDC per successful call, paid wit …
  • realestate_realtor_ca — REALTOR.ca (Canada MLS®) listings for a city: total listings and the newest 11 with MLS number, price, address, latitude/longitude, bedrooms, bathrooms, interior size, building and ownership type, land size, parking, listing brokerage and agent, time on REALTOR.ca, photo and listing link. From the city page's embedded search data via a residential proxy. Price: $0.01 in USDC per successful call, p …
  • realestate_realtytrac — RealtyTrac foreclosure listings for a US city or ZIP: bank-owned (REO) and auction homes with property type, address, county, beds, baths, living and lot square feet, RealtyTrac estimated value, estimated ROI, online auction partner, auction date/time, status and update dates, coordinates and listing URL; 24 per page plus total count. Pre-foreclosure details are mostly withheld for anonymous visit …
  • realestate_redfin_property_listings — Redfin US home listings in a box around a point, from Redfin's own CSV download: for sale (active, coming soon, pre-market) or sold in the last N days. Row: sale type, sold date, property type, address, ZIP, price, beds, baths, neighborhood, sq ft, lot, year built, days on market, $/sq ft, HOA, status, open house, MLS number and source, coordinates, URL. Up to 350. Some MLS listings/areas (e.g. Se …
  • realestate_remax — RE/MAX US homes for sale in a ZIP code (or a city by its Census place ID) from remax.com search pages: listing ID, MLS number and MLS name, address, price, beds, baths, living area (sq ft), lot (acres), property type, banners (new listing, open house...), open-house times, listing office and courtesy line, photo and URL; 24 per page plus the total count. MLS IDX data, for consumer use. Price: $0.0 …
  • … and 14 more

The signed observations, every earlier tool set and a diff of each change: this page with scripts on, or /api/v1/servers/fbf55ce8ff087709.

Read → digest → label → append → sign → compare

How the log works

Six steps, every one of them checkable by someone who does not trust HISTOR. The only thing you have to take on faith is that the observation happened when the label says it did — and the log makes it impossible to change that story afterwards.

01

Read

Remote endpoints in the official MCP registry: initialize, then tools/list, drained across every page; no tool is called, and private addresses are refused before the connection opens. npm and PyPI packages: installed and started in the sandbox described below, with no route out.

02

Digest

The tool set is reduced to name, description, input and output schema, sorted by UTF-16 code units and hashed over its RFC 8785 canonical form. Anyone holding the same tools gets the same digest — which is what makes a comparison possible.

03

Label

Four MTL/1 methods, one signed AWR/2 document each: what was observed, what the WARDEN pattern set matched, whether the definitions changed since the last label, and whether the name is on a threat list. No score, ever.

04

Append

Every label becomes a leaf of an RFC 9162 Merkle tree: leaf hash = SHA-256(0x00 ‖ JCS(label)). The label you download is the leaf input, so you can recompute its hash yourself.

05

Sign

After each crawl HISTOR signs a tree head: the size and the root. Keep yesterday's head; ask for a consistency proof to today's; if anything was removed or rewritten, the proof fails.

06

Compare

Each day a continuity label compares the new digest with the last one. Equal: "unchanged since". Different: a change, with the date and a per-tool diff. A client that checks what it received adds the view no crawler has.

Where an npm or PyPI package is run

Test conditions

A package observation is true for these conditions, and no others. Every package page names the exact image it ran in and any configuration it was given.

System

Linux x86_64, inside gVisor (runsc): the package talks to a kernel written for sandboxing, not to the host's. An unprivileged user, no capabilities, a read-only root.

Runtimes

npm packages in histor-node:22, PyPI packages in histor-python:3.12: the official node:22-bookworm-slim and python:3.12-slim images plus bash, git, Python 3 or Node 22 and a Java 21 runtime — never Docker — built when a sandbox host is installed. A package whose Requires-Python excludes 3.12 runs on histor-python:3.13 or 3.14; one that requires a newer Node runs again on histor-node:24. The exact image a package ran in is on its page.

Install

npm with --ignore-scripts, then the install scripts in a traced stage of their own. PyPI: wheels only — a package that ships only source is reported, never built.

Network

No route out. Every name the package looks up resolves to HISTOR's own traps, which record what was sent and forward nothing. A server that needs the internet to start shows that here.

Secrets

None are real. Decoy credentials sit in HOME and a decoy .env in the working directory. A variable the package says it needs gets a placeholder; where the placeholder was sent is recorded.

Limits

512 MB of memory, one CPU, 64 MB of /tmp. 360 s to install, 150 s to start and answer; up to 15 tools called once each with canary arguments, 8 s per call.

Configuration

Only names: required variables its registry entry declares or that it printed when it exited, and a start argument such as serve when its usage text offers one. Never a value from anyone else.

What a label does not say

The profile HISTOR implements forbids the words safe, secure, audited, certified, approved and trusted. Here is why, in the terms of what the log can and cannot show.

Not a safety rating

A pattern match is a reason to read a definition, not a finding. Three of the four methods can never return fail. There is no score to rank by, because no score HISTOR could compute would mean what a reader takes it to mean.

Not the code

Labels are about advertised text. A remote endpoint's source is never read and its tools are never invoked; a package runs only in the sandbox, against nothing real. A server can keep identical definitions and behave differently for real users; the log cannot see that, and says so inside every label.

A change is not an accusation

A version bump changes definitions too. A change is shown as a date and a diff, in amber, never red. What you do with it is yours: re-read, re-approve, or pin the old digest.

A package as run here, not on your machine

An npm or PyPI server is observed under the test conditions above: Linux, no internet, placeholder keys. One that needs Windows, a real account or the network may show fewer tools or none; its page says why it exited.

One operator, one key

Today one party runs the log. A second observer on another network is the next step, and any AIMarket hub can run one. Until then, what the key proves is who said it — not that it is true.

Behind a login, unseen

Endpoints that require authentication answer 401 to everyone without a key, including HISTOR. They are counted and listed as not observed, never dropped from the numbers.

For clients, registries and server authors

Use it

Before your agent trusts a server, send the tools it received. The answer is signed by the log's did:key and names the tree head it was given under.

curl -sS https://histor.modelmarket.dev/api/v1/check \
  -H 'Content-Type: application/json' \
  -d '{"endpoint":"https://example.com/mcp","tools":[ …tools/list result… ],"contribute":true}'
# -> {"type":"histor.check/v1","match":"same"|"different"|"previously-observed"|…,
#     "observed":{"unchangedSince":"…","changes":0}, "patternScan":{…}, "signature":{…}}

# README badge for your server
[![MCP tool defs](https://histor.modelmarket.dev/badge/<id>.svg)](https://histor.modelmarket.dev/s/<id>)

# Atom feed of every observed change
https://histor.modelmarket.dev/feed.xml
WARDENchecks definitions at connect
HISTORremembers what was advertised
THEMISadmits at publish
Hublists histor.check@v1
AWRthe signed format

Questions

Is this a marketplace listing?

No. The server list is the log's index: every remote endpoint in the official MCP registry, with what HISTOR could observe about it. Nothing here is for sale and nothing is ranked by quality.

Does HISTOR tell me a server is safe?

No, and it never will. It tells you what a server advertised, whether that changed, and which published patterns matched the text. Whether to trust the server is your decision — HISTOR makes sure you decide on the same facts as everyone else.

Why are so many servers "not observed"?

Most remote MCP endpoints require a login (they answer 401 to anyone without a key), some use the legacy SSE transport or need per-user values in the URL, and some are simply down. They stay on the list with the reason, so the numbers never hide them.

How do I check a server I already use?

Open the Check tab, paste the server's endpoint and the tools/list result your client received, and press Check. You get back, signed, whether HISTOR observed the same definitions — or different ones, or an older set.

How do I get a badge for my server?

Find your endpoint on the Servers tab, open it, and copy the Markdown snippet under the facts. The badge shows the date your definitions were pinned or last changed, and links to the full history.

Why should I trust HISTOR itself?

You do not have to. Every label and every tree head is signed with one published key; the Log tab proves in your browser that the log only grew; and the command-line auditor does the same from any machine. What remains is that one operator runs it today — a second, independent observer is the next step.

What does it cost?

Looking things up, the badges, the feed and /check are free. HISTOR also offers histor.check@v1 to the AIMarket Hub, so agents can reach it through the market.

I run an MCP server. What does HISTOR send it, and how do I opt out?

Once a day: initialize, notifications/initialized and tools/list — never a tool call, never a redirect followed, at most two connections per host, from a User-Agent that starts with histor/. To be left out, open an issue on the histor repository with your endpoint or host; it is then listed as not observed (operator-opt-out), with the reason, rather than silently dropped. Labels already in the log stay: the log only grows.