{"id":529647,"recorded_at":"2026-10-27T18:28:44.157648Z","observed_at":"2026-10-27T18:28:44.157497Z","subject_kind":"endpoint","subject":"61f0727f-a329-4b6e-a9d0-57a59d325616","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":9,"tools":[{"description":"Read an MEP identity or membership history including published committee, delegation, and political-group records. Default section overview returns identity and membership_count; section memberships pages full membership records. Missing end dates do not establish current membership. Continue memberships with page.next_offset and snapshot; restart at offset 0 without snapshot after snapshot_changed. Missing detail succeeds with found false; discover IDs with euparl_search_meps.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"language":{"description":"Supported EU ISO-639-1 language, case-insensitive; default en; source text is never translated.","type":"string"},"limit":{"default":20,"description":"Whole items requested; default 20, effective maximum 100 with notice.","maximum":1000,"minimum":1,"type":"integer"},"mep_id":{"description":"Decimal person ID, person/ prefix, or exact https://data.europarl.europa.eu/person/ URI.","minLength":1,"pattern":"^(?:https:\\/\\/data\\.europarl\\.europa\\.eu\\/person\\/|person\\/)?\\d+$","type":"string"},"offset":{"default":0,"description":"Zero-based collection offset; default 0.","maximum":9007199254740991,"minimum":0,"type":"integer"},"section":{"default":"overview","description":"Default overview returns identity and membership count; memberships returns the selected history page.","enum":["overview","memberships"],"type":"string"},"snapshot":{"description":"Returned membership snapshot; required for membership offset above 0, optional at offset 0.","type":"string"}},"required":["mep_id"],"type":"object"},"name":"euparl_get_mep"},{"description":"Discover sittings with mode sittings and year; default decisions pages compact summaries with labels and separate decided-on and recording document relations for sitting_id. Optional document_id filters decisions before paging by exact document identity or hyphen-boundary descendant. Mode decision requires decision_id and returns one rich record with reference text and commentary; it rejects nondefault paging and snapshot. Optional decision-only mep_id returns independent recorded and intended positions with publication availability, without a roster lookup; empty positions do not prove absence from the vote. Mode voters requires decision_id and one position, paging recorded and intended voters independently. Missing arrays succeed with available false; published empty arrays have available true. Optional resolve_names requires explicit roster_term and joins only published names from that complete term roster, never voting-date affiliations or current-roster substitutes. Some IDs may remain unresolved. Continue local decisions or voters with page.next_offset and snapshot; restart at offset 0 without snapshot after snapshot_changed. Missing sitting decisions succeed empty; absent selected decision fails decision_not_found.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"decision_id":{"description":"Required for decision and voters: exact returned canonical decision ID, known eli/dl/event/ prefix, or exact public event URI; forbidden for sittings and decisions.","minLength":1,"pattern":"^(?:https:\\/\\/data\\.europarl\\.europa\\.eu\\/eli\\/dl\\/event\\/|eli\\/dl\\/event\\/)?[A-Za-z0-9][A-Za-z0-9_-]*$","type":"string"},"document_id":{"description":"Decisions-only document filter: canonical ID, eli/dl/doc/ prefix or exact public URI. Matches decided-on or recording relations by exact ID or hyphen-boundary descendant before paging.","type":"string"},"language":{"description":"Supported EU ISO-639-1 language, case-insensitive; default en; source text is never translated.","type":"string"},"limit":{"default":20,"description":"Whole items requested; default 20, effective maximum 100 with notice.","maximum":1000,"minimum":1,"type":"integer"},"mep_id":{"description":"Decision-only member lookup: canonical numeric ID, person/ prefix or exact public person URI. Uses published arrays without a roster join; empty positions do not prove absence from the vote.","type":"string"},"mode":{"default":"decisions","description":"Default decisions returns compact summaries; sittings discovers by year, decision returns one rich record, voters pages one position.","enum":["sittings","decisions","decision","voters"],"type":"string"},"offset":{"default":0,"description":"Zero-based collection offset; default 0.","maximum":9007199254740991,"minimum":0,"type":"integer"},"position":{"description":"Required only for voters: favor, against, abstention, intended_favor, intended_against, or intended_abstention.","enum":["favor","against","abstention","intended_favor","intended_against","intended_abstention"],"type":"string"},"resolve_names":{"default":false,"description":"Default false retains IDs only; true is voters-only and requires roster_term for complete names-only roster resolution.","type":"boolean"},"roster_term":{"description":"Explicit parliamentary term 0–10 containing the sitting; required with resolve_names true, forbidden otherwise. No term is inferred from dates.","maximum":10,"minimum":0,"type":"integer"},"sitting_id":{"description":"Required outside sittings: real YYYY-MM-DD date, MTG-PL-YYYY-MM-DD, known event prefix, or exact public event URI.","minLength":1,"pattern":"^(?:https:\\/\\/data\\.europarl\\.europa\\.eu\\/eli\\/dl\\/event\\/|eli\\/dl\\/event\\/)?(?:MTG-PL-)?\\d{4}-\\d{2}-\\d{2}$","type":"string"},"snapshot":{"description":"Returned decisions or voter-position snapshot; required for local offset above 0, optional at offset 0; forbidden for sittings and decision.","type":"string"},"year":{"description":"Four-digit year, required only for sittings and forbidden in other modes.","maximum":9999,"minimum":1000,"type":"integer"}},"type":"object"},"name":"euparl_get_plenary_votes"},{"description":"Read a procedure title, stage, events, participants, or linked parliamentary documents. Default section overview returns scalar fields and collection counts; events, participants, and documents page one selected collection. Continue with page.next_offset and the returned snapshot; restart at offset 0 without snapshot if the collection changes. Historical participation groups remain historical. Missing detail succeeds with found false; discover references with euparl_list_procedures. Linked documents can be read with euparl_search_documents mode get; files are linked, not parsed.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"language":{"description":"Supported EU ISO-639-1 language, case-insensitive; default en; source text is never translated.","type":"string"},"limit":{"default":20,"description":"Whole items requested; default 20, effective maximum 100 with notice.","maximum":1000,"minimum":1,"type":"integer"},"offset":{"default":0,"description":"Zero-based collection offset; default 0.","maximum":9007199254740991,"minimum":0,"type":"integer"},"procedure_id":{"description":"Procedure YYYY-NNNN or YYYY/NNNN, optional letter suffix and (TYPE), known eli/dl/proc/ prefix or exact public procedure URI.","minLength":1,"pattern":"^(?:https:\\/\\/data\\.europarl\\.europa\\.eu\\/eli\\/dl\\/proc\\/|eli\\/dl\\/proc\\/)?\\d{4}[-/]\\d{4}[A-Z]?(?:\\([A-Z]+\\))?$","type":"string"},"section":{"default":"overview","description":"Default overview returns scalars and counts; choose a collection for complete paged items.","enum":["overview","events","participants","documents"],"type":"string"},"snapshot":{"description":"Previous collection snapshot; required for local offset above 0, optional at offset 0.","type":"string"}},"required":["procedure_id"],"type":"object"},"name":"euparl_get_procedure"},{"description":"List procedure references by procedure type. Titles, stages, and participants require euparl_get_procedure with a returned procedure_id. Use euparl_list_reference topic procedure_types for supported process_type codes. No keyword, year, committee, or stage filter is available. Search exposes at most 10000 results; continue with page.next_offset when present, otherwise narrow process_type.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"language":{"description":"Supported EU ISO-639-1 language, case-insensitive; default en; source text is never translated.","type":"string"},"limit":{"default":20,"description":"Whole items requested; default 20, effective maximum 100 with notice.","maximum":1000,"minimum":1,"type":"integer"},"offset":{"default":0,"description":"Zero-based collection offset; default 0.","maximum":9007199254740991,"minimum":0,"type":"integer"},"process_type":{"description":"Optional procedure-type code from euparl_list_reference topic procedure_types; case-insensitive and whitespace-trimmed.","type":"string"}},"type":"object"},"name":"euparl_list_procedures"},{"description":"List parliamentary questions by year and work_type or retrieve metadata, source-file links and published answers with mode get and question_id. Human citations such as E-000001/2025 retain their full year; omission of term checks canonical candidates for every overlapping parliamentary term and requires one verified match. Supply term to disambiguate; canonical IDs resolve directly. Use euparl_list_reference topic question_types for work_type codes. No keyword, author or addressee search is available. Empty answers means no answer relation was published in this response. Get rejects list filters and nondefault paging; continue lists with page.next_offset.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"language":{"description":"Supported EU ISO-639-1 language, case-insensitive; default en; source text is never translated.","type":"string"},"limit":{"default":20,"description":"Whole items requested; default 20, effective maximum 100 with notice.","maximum":1000,"minimum":1,"type":"integer"},"mode":{"default":"list","description":"Default list discovers questions; get requires question_id and forbids year and work_type.","enum":["list","get"],"type":"string"},"offset":{"default":0,"description":"Zero-based collection offset; default 0.","maximum":9007199254740991,"minimum":0,"type":"integer"},"question_id":{"description":"Get-only canonical E-{term}-{year}-{six-digit-sequence}, known document prefix/public URI, or human E-NNNNNN/YYYY citation; corresponding P/O prefixes are accepted.","type":"string"},"term":{"description":"Get-only term 0–10 to disambiguate a human citation; must agree with a canonical ID. Omit to verify candidates for every term overlapping the citation year.","maximum":10,"minimum":0,"type":"integer"},"work_type":{"description":"List-only question code from euparl_list_reference topic question_types; case-insensitive and whitespace-trimmed.","type":"string"},"year":{"description":"List-only four-digit question year.","maximum":9999,"minimum":1000,"type":"integer"}},"type":"object"},"name":"euparl_list_questions"},{"description":"List parliamentary codes, identifier formats, historical committees and political groups, or coverage limitations. Choose organizations with organization_ids to resolve supported membership organization IDs into published names and dates; ordered per-item found false means no detail was published. Organization lookups page the supplied IDs with an effective maximum of 20 per call; repeat the same ID list with page.next_offset. Other topics retain historical coverage and an effective maximum of 100. These lists do not require snapshots; missing end dates do not establish current status.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"language":{"description":"Supported EU ISO-639-1 language, case-insensitive; default en; source text is never translated.","type":"string"},"limit":{"default":20,"description":"Whole items requested; default 20, effective maximum 20 for organizations or 100 for other topics, with notice.","maximum":1000,"minimum":1,"type":"integer"},"offset":{"default":0,"description":"Zero-based collection offset; default 0.","maximum":9007199254740991,"minimum":0,"type":"integer"},"organization_ids":{"description":"Required nonempty list only for organizations; order and duplicates retained, with at most 20 looked up per page.","items":{"description":"Decimal organization ID, org/ prefix, or exact https://data.europarl.europa.eu/org/ URI.","type":"string"},"type":"array"},"topic":{"description":"Reference topic; organizations requires organization_ids, which other topics reject.","enum":["committees","political_groups","organizations","procedure_types","document_types","question_types","activity_types","mep_filters","identifiers","coverage"],"type":"string"}},"required":["topic"],"type":"object"},"name":"euparl_list_reference"},{"description":"Search adopted texts, committee documents, or plenary documents, then retrieve metadata and source-file links with mode get and document_id. Get accepts IDs from procedures, speeches, votes, questions and answers without a source family; parent_document_ids lead from subdivisions to parent files. Detail preserves adopted_document_ids, based_on_document_ids and public_register_ref; follow published document relations with mode get, while preserving ordinary missing-record and upstream-error outcomes for unavailable targets. Document relations never imply procedure links. Only adopted_texts supports text, title, sitting dates and related_process_id. Committee supports term but no year; plenary supports year but no term. Use euparl_list_reference topic document_types for family-specific work_type codes. Detail returns links, not extracted full text. Adopted texts expose at most 10000 search results; continue with page.next_offset when present, otherwise narrow supported filters.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"document_id":{"description":"Get-only canonical work ID, eli/dl/doc/ prefix or exact public URI; no family restriction.","type":"string"},"language":{"description":"Supported EU ISO-639-1 language, case-insensitive; default en; source text is never translated.","type":"string"},"limit":{"default":20,"description":"Whole items requested; default 20, effective maximum 100 with notice.","maximum":1000,"minimum":1,"type":"integer"},"mode":{"default":"search","description":"Default search discovers records; get requires document_id and rejects source and all search filters.","enum":["search","get"],"type":"string"},"offset":{"default":0,"description":"Zero-based collection offset; default 0.","maximum":9007199254740991,"minimum":0,"type":"integer"},"related_process_id":{"description":"Adopted-texts-only procedure reference YYYY-NNNN, YYYY/NNNN(TYPE), known prefix or public URI.","type":"string"},"sitting_date":{"description":"Adopted-texts-only sitting date YYYY-MM-DD; start of range when sitting_date_end is supplied.","type":"string"},"sitting_date_end":{"description":"Adopted-texts-only inclusive range end YYYY-MM-DD; requires sitting_date and must not precede it.","type":"string"},"source":{"description":"Search-only family; omitted search defaults to adopted_texts. Omit entirely in get mode.","enum":["adopted_texts","committee","plenary"],"type":"string"},"term":{"description":"Parliamentary term 0–10; adopted_texts and committee search only.","maximum":10,"minimum":0,"type":"integer"},"text":{"description":"Adopted-texts-only keyword search in the requested language.","type":"string"},"title":{"description":"Adopted-texts-only title search in the requested language.","type":"string"},"work_type":{"description":"Search-only family-specific code from euparl_list_reference topic document_types; case-insensitive and whitespace-trimmed.","type":"string"},"year":{"description":"Four-digit document year; adopted_texts and plenary search only.","maximum":9999,"minimum":1000,"type":"integer"}},"type":"object"},"name":"euparl_search_documents"},{"description":"Find MEPs by name, country, political group, gender, or parliamentary term. Omitted term selects members in office today; explicit term selects that published term roster. Name matching requires every normalized token after case, diacritic, and punctuation normalization over the complete roster before paging. Country and group describe roster context, never voting-date affiliation. Continue with page.next_offset and snapshot; restart at offset 0 without snapshot after snapshot_changed. Read identity and membership history with euparl_get_mep. Empty matches succeed with guidance.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"country":{"description":"Supported ISO alpha-2 country code, case-insensitive; GB maps to historical UK and does not establish current membership. See euparl_list_reference topic mep_filters.","type":"string"},"gender":{"description":"Supported gender code FEMALE, MALE, NAP, NKN, or NST, case-insensitive.","type":"string"},"language":{"description":"Supported EU ISO-639-1 language, case-insensitive; default en; source text is never translated.","type":"string"},"limit":{"default":20,"description":"Whole items requested; default 20, effective maximum 100 with notice.","maximum":1000,"minimum":1,"type":"integer"},"name_contains":{"description":"All-token name filter over the complete selected roster; case, diacritics, and punctuation are normalized, without fuzzy scoring.","type":"string"},"offset":{"default":0,"description":"Zero-based collection offset; default 0.","maximum":9007199254740991,"minimum":0,"type":"integer"},"political_group":{"description":"Supported political group code, case-insensitive; accepts EPP, S&D, Verts/ALE, Greens/EFA, The Left, GUE/NGL, Renew, PfE, and Patriots aliases. Query aliases never rewrite historical organization identities. See euparl_list_reference topic mep_filters.","type":"string"},"snapshot":{"description":"Returned roster snapshot; required for offset above 0, optional at offset 0.","type":"string"},"term":{"description":"Parliamentary term 0–10; omitted selects members in office today.","maximum":10,"minimum":0,"type":"integer"}},"type":"object"},"name":"euparl_search_meps"},{"description":"Search speech activities in parliamentary term 9 or 10, default 10, or retrieve one with mode get and speech_id. Text and title search return activity metadata, not transcripts. Follow document_ids with euparl_search_documents mode get and any returned parent_document_ids to source files. Use euparl_list_reference topic activity_types for activity_type codes. Get rejects search filters and nondefault paging. Search exposes at most 10000 results; continue with page.next_offset when present, otherwise narrow text, title, person_id, activity_type or sitting dates.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"activity_type":{"description":"Search-only code from euparl_list_reference topic activity_types; case-insensitive and whitespace-trimmed.","type":"string"},"language":{"description":"Supported EU ISO-639-1 language, case-insensitive; default en; source text is never translated.","type":"string"},"limit":{"default":20,"description":"Whole items requested; default 20, effective maximum 100 with notice.","maximum":1000,"minimum":1,"type":"integer"},"mode":{"default":"search","description":"Default search discovers speech activities; get requires speech_id and rejects search filters.","enum":["search","get"],"type":"string"},"offset":{"default":0,"description":"Zero-based collection offset; default 0.","maximum":9007199254740991,"minimum":0,"type":"integer"},"person_id":{"description":"Search-only numeric MEP identifier, person/ prefix or exact public person URI.","type":"string"},"sitting_date":{"description":"Search-only sitting date YYYY-MM-DD; start date when a range end is supplied.","type":"string"},"sitting_date_end":{"description":"Search-only inclusive end date YYYY-MM-DD; requires sitting_date and cannot precede it.","type":"string"},"speech_id":{"description":"Get-only canonical activity ID, eli/dl/event/ prefix or exact public URI.","type":"string"},"term":{"anyOf":[{"const":9,"type":"number"},{"const":10,"type":"number"}],"description":"Search-only parliamentary term 9 or 10; omitted search defaults to 10. Omit in get mode."},"text":{"description":"Search-only keywords in the selected language; matching does not guarantee transcript output.","type":"string"},"title":{"description":"Search-only published activity title keywords in the selected language.","type":"string"}},"type":"object"},"name":"euparl_search_speeches"}]},"body_sha256":"259b7b450276ce8eaf2518744f369dc3332c8a89c22e1ae998edb0c6079d6af8","prev_id":null,"leaf":"0x18e8ee554429ffa2becaaf3f34c977692271c17b4f5f95972f1bc453720cc2ba","leaf_text":"{\"body\":\"259b7b450276ce8eaf2518744f369dc3332c8a89c22e1ae998edb0c6079d6af8\",\"id\":529647,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793125724157497,\"prev\":null,\"subject\":\"61f0727f-a329-4b6e-a9d0-57a59d325616\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0x18e8b0f960822a619d5b35d34d8865c107bf05e98ccc29a68d719cbc89a72902","0x6604649012cf37141c2567cfb2ba437147fd9b1669522c9e298a23ee1ef703ca","0x03db1f33168b805c626a16c028850b5ad09c90347cfb5e9c60ce89f7fd362cc8","0x7a100b36d17781061757d160785281584250ad6163d164da9371b8ee81852837","0x8f2f1cbce0b7d744a52fcd2757e07b403151d5d0ced4876fee63b1bdb696c87e","0xdb929f5289bbe0f059091bdb157894786f015414f961b5346c7f4fbca3255436","0x7a783eb5e74fd231a9a42bae887e4426fa4c138fab9218e6913b26ae2cb110a0","0xccbc374a342cfbe6da330ec3576ad95b9990f27e6e99bcd85276d0a2b6d007ef","0x33b63d0f6c363352bc2d33f17994311ba4366a5fd6c4c263f3a19c74e774f933","0x2b19e87aeca91c4eac6c69304b561436045865acff78c8de473b73789ce9489d","0x3a308d481ae12b05ff4d5f5a64f87b375db92eb3a8ef3972c9ec3311eb3e6ae7","0x7afa806e5533c63e57a18fda23b38702b370e8b298a35edc0c1de641c8ffcaec","0xca0b37bb3b043ccf0f24c50fccd9c2f22b7e5290df49886008fc2ff55380fdd1","0x2064e3a2b01d0d12d5079bf720a0d0125e9703c55e92de54ad40c302469ec047","0x6913cb48392acb8dc5c940dcdb6e6fc889d544f85dff11da249551a5f027e688","0x518b93854db03dc9fc938883abf30da6eaae5ae0d4336903968fd32a7df8c71b","0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c","0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}