MCP Server

PXL8 verified fight records

io.pxl8/records
Search & Research Public & reachable MCP 2025-11-25

What this MCP does

Searches and retrieves cited, verified records for fighters, fights, people, organizations, and event cards.

fetch
Fetch one record
Read one record by the id search returned (person:<handle>, organization:<handle>, fighter:<slug>, parcel:<jurisdiction>/<apn>, provider:<npi>, chrb_ruling:<subject_key>, cpsc_recall:<subject_key>, fdic_institution:<subject_key>, khrc_ruling:<subject_key>, vehicle_manufacturer:<subject_key>, exclusion:<subject_key> or fda_device_recall:<subject_key>). Answers { id, title, text, url, metadata } as one JSON document; metadata carries kind, recordStatus, citeAs and lastReviewed. The text presents facts in three separate grades, each its own list; a fact stated by the subject is the subject's own statement; a disputed fact remains present, marked Disputed. The url and the citeAs line in metadata identify the page for attribution. Each result carries its `url` and the `citeAs` attribution line in `metadata`; a disputed fact remains in the answer, marked with the word Disputed. This is the lookup tier that needs no key (rate-limited per client and in total); keyed partner access with higher limits exists.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 257, 'minLength': 1, 'description': 'An id from search: person:<handle>, organization:<handle>, fighter:<slug>, parcel:<jurisdiction>/<apn>, provider:<npi>, chrb_ruling:<subject_key>, cpsc_recall:<subject_key>, fdic_institution:<subject_key>, khrc_ruling:<subject_key>, vehicle_manufacturer:<subject_key>, exclusion:<subject_key> or fda_device_recall:<subject_key>'}}}
find_fighter
Find a fighter
Resolve a fighter's name (optionally with a hometown or region and a discipline) to candidate fighter pages on https://pxl8.io. Answers at most 5 candidates, each with a confidence band, the bouts on file, its canonical page URL and its slug. The name must be at least 3 characters. Every result carries its canonical page URL (`canonicalUrl`) and a `citeAs` attribution line. A tally or bout count is a count of bouts on file from the earliest date on file — it is not a career record. Results are as published by the named athletic commissions and federations. This is the lookup tier that needs no key (rate-limited per client and in total); keyed partner access with higher limits exists.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "The fighter's name, or the first characters of it"}, 'place': {'type': 'string', 'maxLength': 120, 'description': 'A hometown city, state/region or country to narrow the match'}, 'discipline': {'enum': ['BOXING', 'MMA', 'MUAY_THAI', 'KICKBOXING', 'BARE_KNUCKLE', 'SLAP', 'OTHER'], 'type': 'string', 'description': 'Narrow to one discipline'}}}
find_subject
Find a person or an organization
Resolve the name of a person or an organization to published records on https://pansofica.com — records whose subject proved who they are and reviewed what is said about them. Answers at most 5 candidates (the name must be at least 3 characters), each carrying its handle and kind. This is a lookup, not a list. The facts come in three separate grades, each its own list, never one merged list or count: facts from a registry document, facts from the open web, and facts stated by the subject. A fact stated by the subject is the subject's own statement, not a confirmation; a disputed fact remains in the answer, marked Disputed, with no reason attached. This is the lookup tier that needs no key (rate-limited per client and in total); keyed partner access with higher limits exists.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'kind': {'enum': ['person', 'organization'], 'type': 'string', 'description': 'Narrow to people or to organizations'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "The person's or the organization's name, or the first characters of it"}}}
get_event_card
Get an event card
A published event card (https://pxl8.io/event/<slug>): promotion, date, venue, status and the bouts in order, with each corner's name and fighter page where one exists. Every result carries its canonical page URL (`canonicalUrl`) and a `citeAs` attribution line. A tally or bout count is a count of bouts on file from the earliest date on file — it is not a career record. Results are as published by the named athletic commissions and federations. This is the lookup tier that needs no key (rate-limited per client and in total); keyed partner access with higher limits exists.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "The event page's slug — the last part of its canonical URL"}}}
get_fighter_record
Get a verified fighter record
The verified record for one fighter page (https://pxl8.io/<slug>), exactly as the public page states it: every bout on file with its date, result, method, the commission that published it and the sha256 of that document, plus a tally labelled "on file from <date>". Where the reported grade is released, it is returned as a SEPARATE list that is never added to the verified tally. The record and every bout carry a record status (verified, confirmed by the athlete, corrected at the athlete's request, or disputed) with the date it was last reviewed; a disputed bout stays in the list — the status says only that it is disputed, never why. Every result carries its canonical page URL (`canonicalUrl`) and a `citeAs` attribution line. A tally or bout count is a count of bouts on file from the earliest date on file — it is not a career record. Results are as published by the named athletic commissions and federations. This is the lookup tier that needs no key (rate-limited per client and in total); keyed partner access with higher limits exists.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': "The fighter page's slug — the last part of its canonical URL"}}}
get_subject
Get the record of a person or an organization
One published record (https://pansofica.com/<handle> for a person, https://pansofica.com/org/<handle> for an organization), exactly as its public page states it: the facts in three separate lists by grade, each fact with its field, value, sources and status, plus the record status and when it was last reviewed. A fact from a registry document or from the open web carries a status (verified, reported, confirmed by the subject, or disputed); a fact stated by the subject carries NO status — it is a statement, not a confirmation. The facts come in three separate grades, each its own list, never one merged list or count: facts from a registry document, facts from the open web, and facts stated by the subject. A fact stated by the subject is the subject's own statement, not a confirmation; a disputed fact remains in the answer, marked Disputed, with no reason attached. This is the lookup tier that needs no key (rate-limited per client and in total); keyed partner access with higher limits exists.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['handle', 'kind'], 'properties': {'kind': {'enum': ['person', 'organization'], 'type': 'string', 'description': 'person or organization'}, 'handle': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The record's handle — the last part of its page URL"}}}
search
Search records
Search Pansofica records of people and organizations and pxl8.io fighter records by name. Each result carries an id in the form the fetch tool reads, and its url. Answers { results: [{ id, title, url }] } as one JSON document: at most 5 person or organization records first, then at most 5 fighter records; a query under 3 characters answers an empty list. A notice member says when one of the two sources could not be searched. This is a lookup, not a list. Each result carries its `url` and the `citeAs` attribution line in `metadata`; a disputed fact remains in the answer, marked with the word Disputed. This is the lookup tier that needs no key (rate-limited per client and in total); keyed partner access with higher limits exists.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 400, 'minLength': 1, 'description': "A person's, an organization's or a fighter's name, or the first characters of it (at most 200 characters)"}}}
Changed
fetch
Oct. 1, 2026, 2:43 a.m.
Changed
fetch
Sept. 25, 2026, 2:50 a.m.
Changed
fetch
Sept. 23, 2026, 2:41 a.m.
Changed
search
Sept. 23, 2026, 2:41 a.m.
Changed
get_subject
Sept. 23, 2026, 2:41 a.m.
Changed
find_subject
Sept. 23, 2026, 2:41 a.m.
Changed
get_event_card
Sept. 23, 2026, 2:41 a.m.
Changed
get_fighter_record
Sept. 23, 2026, 2:41 a.m.
Changed
find_fighter
Sept. 23, 2026, 2:41 a.m.
Added
fetch
Sept. 21, 2026, 2:49 a.m.
Added
search
Sept. 21, 2026, 2:49 a.m.
Added
get_subject
Sept. 21, 2026, 2:49 a.m.
Added
find_subject
Sept. 21, 2026, 2:49 a.m.
Changed
get_fighter_record
Sept. 21, 2026, 2:49 a.m.
Added
get_event_card
Sept. 19, 2026, 2:40 a.m.
Added
get_fighter_record
Sept. 19, 2026, 2:40 a.m.
Added
find_fighter
Sept. 19, 2026, 2:40 a.m.