OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine
このMCPでできること
Searches and analyzes Swiss court decisions, statutes, doctrine, legislation, legal scholarship, citation graphs, and administrative practice.
ツール
入力スキーマ
{'type': 'object', 'properties': {'court': {'type': 'string', 'description': 'Optional court filter'}, 'query': {'type': 'string', 'description': 'Optional text query (FTS search)'}, 'article': {'type': 'string', 'description': 'Article number (requires law_code)'}, 'date_to': {'type': 'string', 'description': 'Optional end date (YYYY-MM-DD)'}, 'law_code': {'type': 'string', 'description': 'Optional law code (e.g., BV, OR, EMRK). Requires article.'}, 'date_from': {'type': 'string', 'description': 'Optional start date (YYYY-MM-DD)'}}}
入力スキーマ
{'type': 'object', 'required': ['draft_text'], 'properties': {'draft_text': {'type': 'string', 'description': 'Your draft response text.'}, 'audit_quotes': {'type': 'boolean', 'default': True, 'description': "Verifies that every quoted passage (60-400 chars) within ~250 chars of a case citation or an 'Art. X LAW' reference appears verbatim in the cited decision or in that statute article (DE/FR/IT). On by default since 2026-09-05 (0.0 % false positives measured on 3,964 statute paragraphs after the footnote fix). Pass false when the draft quotes material that is not a decision or a statute (party submissions, witness statements, contracts) to keep those quotes out of the audit."}, 'audit_grounding': {'type': 'boolean', 'description': "When true, additionally runs the LLM-judge grounding rail: for each verified case citation in the draft, the preceding claim sentence is checked against the cited Erwägung / Regeste / text by an independent Sonnet judge. Catches the 'reasoning error' class (real citation, unsupported proposition). Adds ~3 s and one Sonnet call (~$0.005). Set to true for any answer with â\x89¥2 citations or where a wrong proposition would mislead a Swiss lawyer."}}}
入力スキーマ
{'type': 'object', 'properties': {'canton': {'type': 'string', 'default': 'CH', 'description': 'Canton code (CH for federal, ZH, BE, etc.). Default: CH.'}, 'language': {'enum': ['de', 'fr', 'it'], 'type': 'string', 'description': "OPTIONAL filter. Restricts results to ONE language version. Omit (recommended default) to fan out across DE/FR/IT and merge results â\x80\x94 LexFind's API is single-language per request, so omission triggers a 3-way parallel call with deduplication. Set ONLY when the user explicitly asks for one language."}}}
入力スキーマ
{'type': 'object', 'required': ['claim', 'decision_id'], 'properties': {'claim': {'type': 'string', 'description': "The legal proposition you want to verify (e.g., 'A landlord is liable for fire-police violations under Art. 256 OR.')."}, 'pinpoint': {'type': 'string', 'description': "Optional Erwägung number ('2.3'). If given, only that paragraph is judged; more precise verdict."}, 'decision_id': {'type': 'string', 'description': 'Decision you intend to cite as authority.'}}}
入力スキーマ
{'type': 'object', 'required': ['reference'], 'properties': {'language': {'enum': ['de', 'fr', 'it'], 'type': 'string', 'description': 'Primary language for the citation_string field (all three variants always returned). Default: de.'}, 'pinpoint': {'type': 'string', 'description': "Optional Erwägung/consid. number ('2.3', '5.2.1'). Included in the citation and as a #e-2-3 URL anchor."}, 'reference': {'type': 'string', 'description': "Any form of Swiss case reference: decision_id, BGE ref, or docket number. E.g. 'BGE 140 III 86', '4A_747/2012', 'bger_4A_747_2012', 'MKGE 16 Nr. 1'."}}}
出力スキーマ
{'type': 'object', '$defs': {'CiteResponse': {'type': 'object', 'title': 'CiteResponse', 'required': ['exists'], 'properties': {'exists': {'type': 'boolean', 'title': 'Exists', 'description': 'False is a completed lookup with no resolved reference, not a server error.'}, 'queried': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Queried', 'default': None}, 'decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Decision Id', 'default': None}, 'resolved_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Resolved Id', 'default': None}, 'is_canonical': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Is Canonical', 'default': None, 'description': 'Whether the resolved record is the canonical representation; absent when the manifest is not loaded.'}, 'canonical_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canonical Url', 'default': None}, 'close_matches': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/DecisionRecord'}}, {'type': 'null'}], 'title': 'Close Matches', 'default': None}, 'markdown_link': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Markdown Link', 'default': None}, 'joined_dockets': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Joined Dockets', 'default': None, 'description': 'Secondary dockets of the resolved consolidated proceeding; absent when there are none.'}, 'rule_statement': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rule Statement', 'default': None}, 'citation_string': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'citation_string_de': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String De', 'default': None}, 'citation_string_fr': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String Fr', 'default': None}, 'citation_string_it': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String It', 'default': None}, 'canonical_decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canonical Decision Id', 'default': None, 'description': 'Canonical decision_id of the resolved record when the representation manifest is loaded; decision_id is never changed.'}}, 'additionalProperties': True}, 'ResearchError': {'type': 'object', 'title': 'ResearchError', 'required': ['error'], 'properties': {'error': {'type': 'string', 'title': 'Error'}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'available_e_numbers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Available E Numbers', 'default': None}}, 'additionalProperties': True}, 'DecisionRecord': {'type': 'object', 'title': 'DecisionRecord', 'required': ['decision_id'], 'properties': {'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Court', 'default': None}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title', 'default': None}, 'canton': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canton', 'default': None}, 'pdf_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Pdf Url', 'default': None}, 'regeste': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Regeste', 'default': None}, 'snippet': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Snippet', 'default': None}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Language', 'default': None}, 'pinpoint': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Pinpoint', 'default': None}, 'scraped_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Scraped At', 'default': None}, 'source_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Url', 'default': None}, 'decision_id': {'type': 'string', 'title': 'Decision Id'}, 'content_hash': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Content Hash', 'default': None}, 'is_canonical': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Is Canonical', 'default': None, 'description': 'Whether this record is the canonical representation (canonical_decision_id == decision_id). Absent when the manifest is not loaded.'}, 'canonical_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canonical Url', 'default': None}, 'decision_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Decision Date', 'default': None}, 'docket_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Docket Number', 'default': None}, 'markdown_link': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Markdown Link', 'default': None}, 'citation_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Citation Count', 'default': None}, 'joined_dockets': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Joined Dockets', 'default': None, 'description': 'Secondary dockets of a consolidated proceeding stored under this decision; a reference by any of them names this record. Absent when there are none.'}, 'rule_statement': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rule Statement', 'default': None}, 'is_leading_case': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Is Leading Case', 'default': None}, 'publication_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Publication Date', 'default': None}, 'date_is_estimated': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Date Is Estimated', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'citation_string_de': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String De', 'default': None}, 'citation_string_fr': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String Fr', 'default': None}, 'citation_string_it': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String It', 'default': None}, 'canonical_decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canonical Decision Id', 'default': None, 'description': 'The canonical decision_id when the representation manifest is loaded: equals decision_id unless this record is a duplicate representation of another stored decision. decision_id itself is never changed.'}}, 'additionalProperties': True}}, 'anyOf': [{'$ref': '#/$defs/CiteResponse'}, {'$ref': '#/$defs/ResearchError'}]}
入力スキーマ
{'type': 'object', 'required': ['facts'], 'properties': {'facts': {'type': 'string', 'description': 'Detailed facts of the hypothetical or real case.'}, 'limit': {'type': 'integer', 'default': 8, 'description': 'Number of case-law exemplars (default 8, max 20).'}, 'question': {'type': 'string', 'description': 'Optional legal question to decide.'}, 'fedlex_urls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional Fedlex URLs used to fetch statute text. Useful when no built-in URL mapping is available.'}, 'clarifications': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'answer'], 'properties': {'id': {'type': 'string'}, 'answer': {'type': 'string'}}}, 'description': 'Optional answers to prior clarification questions. Each item: {id, answer}. The tool withholds conclusion until high-priority clarifications are answered.'}, 'deciding_court': {'type': 'string', 'description': 'Hypothetical deciding court (e.g., bger, bvger).'}, 'preferred_language': {'enum': ['de', 'fr', 'it', 'rm', 'en'], 'type': 'string', 'description': 'Output/analysis language preference.'}, 'statute_references': {'type': 'array', 'items': {'type': 'object', 'required': ['law_code', 'article'], 'properties': {'article': {'type': 'string'}, 'law_code': {'type': 'string'}, 'paragraph': {'type': 'string'}}}, 'description': 'Optional explicit statute list. Each item: {law_code, article, paragraph?}.'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Decision id from a search result (decision_id, docket, or BGE reference).'}}}
出力スキーマ
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}
入力スキーマ
{'type': 'object', 'required': ['decision_id'], 'properties': {'decision_id': {'type': 'string', 'description': 'Decision ID (e.g., bger_6B_1_2025)'}, 'min_confidence': {'type': 'number', 'default': 0.3, 'description': 'Minimum confidence score (0-1, default 0.3)'}}}
入力スキーマ
{'type': 'object', 'required': ['decision_id'], 'properties': {'limit': {'type': 'integer', 'default': 50, 'description': 'Max citations per direction per page (default 50, max 200)'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Pagination offset per direction (default 0). The response reports *_total and *_has_more; when has_more is true, re-query with offset=next_offset to retrieve the rest (heavily-cited leading decisions exceed the 200-per-page cap).'}, 'direction': {'enum': ['both', 'outgoing', 'incoming'], 'type': 'string', 'default': 'both', 'description': "Citation direction: 'both' (default), 'outgoing', or 'incoming'"}, 'decision_id': {'type': 'string', 'description': 'Decision ID (e.g., bger_6B_1_2025)'}, 'min_confidence': {'type': 'number', 'default': 0.3, 'description': 'Minimum confidence score for resolved citations (0-1, default 0.3)'}}}
出力スキーマ
{'type': 'object', '$defs': {'CitationEdge': {'type': 'object', 'title': 'CitationEdge', 'properties': {'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Court', 'default': None}, 'target_ref': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Target Ref', 'default': None}, 'decision_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Decision Date', 'default': None}, 'docket_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Docket Number', 'default': None}, 'mention_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Mention Count', 'default': None}, 'confidence_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Confidence Score', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'source_decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Decision Id', 'default': None}, 'target_decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Target Decision Id', 'default': None}}, 'additionalProperties': True}, 'ResearchError': {'type': 'object', 'title': 'ResearchError', 'required': ['error'], 'properties': {'error': {'type': 'string', 'title': 'Error'}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'available_e_numbers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Available E Numbers', 'default': None}}, 'additionalProperties': True}, 'CitationsResponse': {'type': 'object', 'title': 'CitationsResponse', 'required': ['decision_id', 'direction', 'limit', 'offset'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit'}, 'offset': {'type': 'integer', 'title': 'Offset'}, 'incoming': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/CitationEdge'}}, {'type': 'null'}], 'title': 'Incoming', 'default': None}, 'outgoing': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/CitationEdge'}}, {'type': 'null'}], 'title': 'Outgoing', 'default': None}, 'direction': {'type': 'string', 'title': 'Direction'}, 'decision_id': {'type': 'string', 'title': 'Decision Id'}, 'next_offset': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Offset', 'default': None}, 'incoming_total': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Incoming Total', 'default': None}, 'outgoing_total': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Outgoing Total', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'incoming_has_more': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Incoming Has More', 'default': None}, 'incoming_returned': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Incoming Returned', 'default': None}, 'outgoing_has_more': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Outgoing Has More', 'default': None}, 'outgoing_returned': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Outgoing Returned', 'default': None}}, 'additionalProperties': True}}, 'anyOf': [{'$ref': '#/$defs/CitationsResponse'}, {'$ref': '#/$defs/ResearchError'}]}
入力スキーマ
{'type': 'object', 'properties': {'court': {'type': 'string', 'description': 'Optional court filter (e.g., bger, bge, bvger)'}, 'limit': {'type': 'integer', 'default': 20, 'description': 'Max results (default 20, max 100)'}, 'query': {'type': 'string', 'description': 'Optional text query to filter by topic (FTS search)'}, 'article': {'type': 'string', 'description': 'Optional article number (requires law_code)'}, 'date_to': {'type': 'string', 'description': 'Optional end date (YYYY-MM-DD)'}, 'law_code': {'type': 'string', 'description': 'Optional law code (e.g., BV, OR, ZGB, EMRK, StGB)'}, 'date_from': {'type': 'string', 'description': 'Optional start date (YYYY-MM-DD)'}, 'include_pinpoint': {'type': 'boolean', 'default': True, 'description': 'Attach a pinpoint Erwägung citation to the top 3 leading cases when a confident match exists. Defaults true.'}}}
入力スキーマ
{'type': 'object', 'required': ['decision_id', 'claim'], 'properties': {'claim': {'type': 'string', 'description': 'Free-text legal claim or proposition the user wants to verify against the decision. The more specific, the higher the confidence.'}, 'top_k': {'type': 'integer', 'default': 3, 'description': 'Number of top matches to return (default 3, max 10).'}, 'decision_id': {'type': 'string', 'description': 'decision_id, BGE reference, or docket number. Must be a federal decision (structured Erwägungen).'}}}
入力スキーマ
{'type': 'object', 'required': ['decision_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'description': 'Maximum results (1-100, default 20).'}, 'decision_id': {'type': 'string', 'description': "Canonical decision_id (e.g. 'bge_BGE_140_III_86', 'bger_4A_571_2008')."}}}
入力スキーマ
{'type': 'object', 'required': ['sr_number'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'description': 'Maximum results (1-100, default 20).'}, 'article': {'type': 'string', 'description': "Article number (e.g. '41'). Omit for all articles of the law."}, 'sr_number': {'type': 'string', 'description': "Swiss SR number (e.g. '220' for OR, '210' for ZGB)."}}}
入力スキーマ
{'type': 'object', 'required': ['topic'], 'properties': {'topic': {'type': 'string', 'description': "Legal area, statute, or concept. Examples: 'Haftpflichtrecht', 'Art. 41 OR', 'Mietrecht', 'Strafrecht', 'Vertragsrecht'."}, 'exclude_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'decision_ids already used in this session â\x80\x94 avoids repetition.'}}}
入力スキーマ
{'type': 'object', 'required': ['sr_number', 'article'], 'properties': {'article': {'type': 'string', 'description': "Article number, e.g. '41' for Art. 41 OR."}, 'language': {'enum': ['de', 'fr', 'it'], 'type': 'string', 'default': 'de'}, 'sr_number': {'type': 'string', 'description': "SR number of the federal law, e.g. '220' for OR."}, 'leading_cases_limit': {'type': 'integer', 'default': 5, 'description': 'Max leading cases (default 5, max 15).'}}}
入力スキーマ
{'type': 'object', 'required': ['sr_number', 'article'], 'properties': {'article': {'type': 'string', 'description': "Article number, e.g. '41' for Art. 41 OR. Letter-suffixed forms like '41a' supported."}, 'language': {'enum': ['de', 'fr', 'it'], 'type': 'string', 'default': 'de', 'description': 'Botschaft language (defaults to German).'}, 'sr_number': {'type': 'string', 'description': "SR (Systematische Rechtssammlung) number of the law, e.g. '220' for OR (Obligationenrecht), '101' for BV, '311.0' for StGB."}, 'max_paragraphs': {'type': 'integer', 'default': 8, 'description': 'Maximum paragraphs per Botschaft (default 8, max 20).'}}}
入力スキーマ
{'type': 'object', 'required': ['case'], 'properties': {'case': {'type': 'string', 'description': "Any case reference: BGE ref ('BGE 133 III 121', '133 III 121'), decision_id ('bge_BGE_133_III_121'), or docket number."}}}
入力スキーマ
{'type': 'object', 'properties': {'canton': {'type': 'string', 'description': "Two-letter canton code for a cantonal act (e.g. 'SH' with abbreviation 'VRG' or 'JG'). Omit for federal law."}, 'article': {'type': 'string', 'description': "Article number (e.g., '41', '8'). Omit to list available articles."}, 'language': {'type': 'string', 'default': 'de', 'description': 'Preferred language (de, en, fr, it). Falls back to de if unavailable.'}, 'sr_number': {'type': 'string', 'description': "SR number of the law (e.g., '220' for OR). Use if abbreviation unknown."}, 'abbreviation': {'type': 'string', 'description': "Law abbreviation (e.g., 'OR', 'BV', 'ZGB', 'StGB'). Preferred over sr_number."}}}
入力スキーマ
{'type': 'object', 'required': ['decision_id'], 'properties': {'full_text': {'type': 'boolean', 'default': True, 'description': 'Include full text in response (default true). Set false to get only metadata and regeste.'}, 'decision_id': {'type': 'string', 'description': 'Decision ID, docket number, or partial docket'}}}
出力スキーマ
{'type': 'object', '$defs': {'ResearchError': {'type': 'object', 'title': 'ResearchError', 'required': ['error'], 'properties': {'error': {'type': 'string', 'title': 'Error'}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'available_e_numbers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Available E Numbers', 'default': None}}, 'additionalProperties': True}, 'DecisionResponse': {'type': 'object', 'title': 'DecisionResponse', 'required': ['decision_id'], 'properties': {'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Court', 'default': None}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title', 'default': None}, 'canton': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canton', 'default': None}, 'pdf_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Pdf Url', 'default': None}, 'regeste': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Regeste', 'default': None}, 'snippet': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Snippet', 'default': None}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Language', 'default': None}, 'pinpoint': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Pinpoint', 'default': None}, 'full_text': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Full Text', 'default': None, 'description': 'Stored decision text; omitted when full_text=false. MCP caps it at 200,000 characters and explicitly provides truncation metadata and a full REST URL when capped.'}, 'scraped_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Scraped At', 'default': None}, 'source_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Url', 'default': None}, 'decision_id': {'type': 'string', 'title': 'Decision Id'}, 'content_hash': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Content Hash', 'default': None}, 'is_canonical': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Is Canonical', 'default': None, 'description': 'Whether this record is the canonical representation (canonical_decision_id == decision_id). Absent when the manifest is not loaded.'}, 'recency_note': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Recency Note', 'default': None}, 'canonical_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canonical Url', 'default': None}, 'decision_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Decision Date', 'default': None}, 'docket_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Docket Number', 'default': None}, 'full_text_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Full Text Url', 'default': None, 'description': 'REST URL for the complete stored text when the MCP response is truncated; content_hash remains the stored source hash.'}, 'markdown_link': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Markdown Link', 'default': None}, 'citation_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Citation Count', 'default': None}, 'joined_dockets': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Joined Dockets', 'default': None, 'description': 'Secondary dockets of a consolidated proceeding stored under this decision; a reference by any of them names this record. Absent when there are none.'}, 'rule_statement': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rule Statement', 'default': None}, 'is_leading_case': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Is Leading Case', 'default': None}, 'publication_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Publication Date', 'default': None}, 'date_is_estimated': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Date Is Estimated', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'citation_string_de': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String De', 'default': None}, 'citation_string_fr': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String Fr', 'default': None}, 'citation_string_it': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String It', 'default': None}, 'full_text_truncated': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Full Text Truncated', 'default': None}, 'canonical_decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canonical Decision Id', 'default': None, 'description': 'The canonical decision_id when the representation manifest is loaded: equals decision_id unless this record is a duplicate representation of another stored decision. decision_id itself is never changed.'}, 'full_text_total_chars': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Full Text Total Chars', 'default': None}, 'full_text_returned_chars': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Full Text Returned Chars', 'default': None}}, 'additionalProperties': True}}, 'anyOf': [{'$ref': '#/$defs/DecisionResponse'}, {'$ref': '#/$defs/ResearchError'}]}
入力スキーマ
{'type': 'object', 'required': ['decision_ids'], 'properties': {'full_text': {'type': 'boolean', 'default': False, 'description': "Include an excerpt of each decision's full text (default false â\x80\x94 Regeste + metadata only)."}, 'decision_ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': "Decision ids, docket numbers or BGE references (e.g. ['bge_BGE_140_III_86', '6B_1234/2025'])."}, 'max_chars_per_decision': {'type': 'integer', 'default': 20000, 'description': 'Per-decision text cap when full_text is true (default 20,000; total response stays under connector limits).'}}}
入力スキーマ
{'type': 'object', 'required': ['decision_id'], 'properties': {'decision_id': {'type': 'string', 'description': "decision_id ('bger_5A_42_2026', 'bge_140 III 86'), BGE reference, or docket number."}}}
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': "Statute article ('Art. 41 OR', 'Art. 8 BV') or legal concept ('Tierhalterhaftung', 'culpa in contrahendo'). German preferred."}}}
入力スキーマ
{'type': 'object', 'required': ['decision_id', 'e_number'], 'properties': {'e_number': {'type': 'string', 'description': "Erwägung number to retrieve (e.g. '2', '2.3', '5.2.1'). Leading 'E.' is stripped if present."}, 'decision_id': {'type': 'string', 'description': 'decision_id, BGE reference, or docket number.'}}}
出力スキーマ
{'type': 'object', '$defs': {'PassagePart': {'type': 'object', 'title': 'PassagePart', 'required': ['e_number', 'text'], 'properties': {'text': {'type': 'string', 'title': 'Text'}, 'e_number': {'type': 'string', 'title': 'E Number'}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}}, 'additionalProperties': True}, 'ResearchError': {'type': 'object', 'title': 'ResearchError', 'required': ['error'], 'properties': {'error': {'type': 'string', 'title': 'Error'}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'available_e_numbers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Available E Numbers', 'default': None}}, 'additionalProperties': True}, 'ErwaegungResponse': {'type': 'object', 'title': 'ErwaegungResponse', 'required': ['decision_id', 'e_number', 'text'], 'properties': {'text': {'type': 'string', 'title': 'Text', 'description': 'Existing source text response; cross-references can contain Markdown links.'}, 'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Court', 'default': None}, 'depth': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Depth', 'default': None}, 'parts': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/PassagePart'}}, {'type': 'null'}], 'title': 'Parts', 'default': None}, 'e_number': {'type': 'string', 'title': 'E Number'}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Language', 'default': None}, 'siblings': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Siblings', 'default': None}, 'composed_of': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Composed Of', 'default': None}, 'decision_id': {'type': 'string', 'title': 'Decision Id'}, 'canonical_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canonical Url', 'default': None}, 'markdown_link': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Markdown Link', 'default': None}, 'rule_statement': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rule Statement', 'default': None}, 'parent_e_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Parent E Number', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'citation_string_de': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String De', 'default': None}, 'citation_string_fr': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String Fr', 'default': None}, 'citation_string_it': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String It', 'default': None}}, 'additionalProperties': True}}, 'anyOf': [{'$ref': '#/$defs/ErwaegungResponse'}, {'$ref': '#/$defs/ResearchError'}]}
入力スキーマ
{'type': 'object', 'properties': {'as_of': {'type': 'string', 'pattern': '^(\\d{4}-\\d{2}-\\d{2}|\\d{1,2}\\.\\d{1,2}\\.\\d{4})$', 'description': "Past date, ISO 'YYYY-MM-DD' (or Swiss 'DD.MM.YYYY'), to retrieve the HISTORICAL edition of a federal law in force on that date. The response names the edition (snapshot_date), the act's title and in-force window and links the Fedlex edition; always report the edition date to the user. Federal laws only (rejected for cantons). Fedlex publishes machine-readable text for most acts only for editions of the 2010s and later; an older edition returns an error naming the formats Fedlex has for it."}, 'canton': {'type': 'string', 'default': 'CH', 'description': "Two-letter canton code (ZH, BE, LU, â\x80¦) or 'CH' for federal. Default 'CH' preserves backward compat."}, 'article': {'type': 'string', 'description': "Article number to retrieve (e.g., '8', '41a', '1bis'). For cantonal § laws (ZH, SH, AI, AR, BS, BL, AG), pass the § number without the § sign. If omitted, returns the full article list."}, 'language': {'enum': ['de', 'fr', 'it'], 'type': 'string', 'default': 'de', 'description': "Language for article text: de, fr, it. For cantonal laws, must match the canton's publication language (fr for FR/GE/JU/NE/VD, it for TI, de otherwise)."}, 'sr_number': {'type': 'string', 'description': "Statute number. Federal: SR number ('210'=ZGB, '220'=OR, '101'=BV). Cantonal: the canton's systematic number â\x80\x94 e.g. ZH 'LS' number '554.5' (Hundegesetz), '550.1' (Polizeigesetz). The `systematic_number` alias (as used by get_legislation) is also accepted."}, 'abbreviation': {'type': 'string', 'description': "Law abbreviation in DE, FR or IT ('BV'/'Cst'/'Cost', 'OR'/'CO', 'ZGB'/'CC', 'StGB'/'CP', 'BGG'/'LTF', 'OPP 2'), a treaty's common name ('EMRK', 'IPBPR', 'KRK', 'LugÃ\x9c', 'CISG') or a former name ('OG', 'AuG', 'aStGB' â\x80\x94 served as the current act with a note). Case, dots and spaces do not matter. Cantonal: 'ZH/StG' or 'StG/ZH' (the canton is part of the name; many cantonal acts have no abbreviation â\x80\x94 use sr_number or search_laws)."}, 'systematic_number': {'type': 'string', 'description': 'Alias for sr_number â\x80\x94 the cantonal-friendly name (LS / systematic number), matching get_legislation. Either field works.'}}}
出力スキーマ
{'type': 'object', '$defs': {'LawArticle': {'type': 'object', 'title': 'LawArticle', 'required': ['article_num'], 'properties': {'xml': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Xml', 'default': None}, 'text': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Text', 'default': None, 'description': 'Article text; a whole-law table of contents can omit it.'}, 'heading': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Heading', 'default': None}, 'section': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Section', 'default': None}, 'article_num': {'type': 'string', 'title': 'Article Num'}, 'text_status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Text Status', 'default': None, 'description': 'ok, heading_only or empty for a historical PDF edition: heading_only/empty means no article text was recovered.'}, 'section_heading': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Section Heading', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}}, 'additionalProperties': True}, 'LawResponse': {'type': 'object', 'title': 'LawResponse', 'required': ['sr_number'], 'properties': {'as_of': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'As Of', 'default': None}, 'level': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Level', 'default': None}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title', 'default': None}, 'canton': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canton', 'default': None}, 'version': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Version', 'default': None}, 'articles': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/LawArticle'}}, {'type': 'null'}], 'title': 'Articles', 'default': None}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Language', 'default': None}, 'work_uri': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Work Uri', 'default': None}, 'sr_number': {'type': 'string', 'title': 'Sr Number'}, 'source_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Url', 'default': None}, 'text_source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Text Source', 'default': None}, 'text_status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Text Status', 'default': None, 'description': 'ok, heading_only or empty (historical PDF editions); heading_only/empty means no article text was recovered.'}, 'abbreviation': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Abbreviation', 'default': None}, 'source_label': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Label', 'default': None}, 'snapshot_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Snapshot Date', 'default': None}, 'pending_changes': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Pending Changes', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'consolidation_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Consolidation Date', 'default': None}, 'verbatim_quotation': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Verbatim Quotation', 'default': None}, 'fedlex_snapshot_uri': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Fedlex Snapshot Uri', 'default': None}, 'work_entry_in_force': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Work Entry In Force', 'default': None}, 'work_no_longer_in_force': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Work No Longer In Force', 'default': None}}, 'additionalProperties': True}, 'ResearchError': {'type': 'object', 'title': 'ResearchError', 'required': ['error'], 'properties': {'error': {'type': 'string', 'title': 'Error'}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'available_e_numbers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Available E Numbers', 'default': None}}, 'additionalProperties': True}}, 'anyOf': [{'$ref': '#/$defs/LawResponse'}, {'$ref': '#/$defs/ResearchError'}]}
入力スキーマ
{'type': 'object', 'properties': {'canton': {'type': 'string', 'default': 'CH', 'description': 'Canton for systematic number lookup (default CH). Required for cantonal laws.'}, 'language': {'enum': ['de', 'fr', 'it'], 'type': 'string', 'default': 'de', 'description': 'Result language: de, fr, it.'}, 'lexfind_id': {'type': 'integer', 'description': 'LexFind ID of the law (from search_legislation results). Positive integer; omit it when unknown rather than passing 0.'}, 'include_versions': {'type': 'boolean', 'default': False, 'description': 'Include full version history (default false).'}, 'systematic_number': {'type': 'string', 'description': "SR/systematic number (e.g., '220' for OR, '210' for ZGB). Used when lexfind_id not available. One of lexfind_id or systematic_number is required."}}}
入力スキーマ
{'type': 'object', 'required': ['law_code'], 'properties': {'article': {'type': 'string', 'description': "Article number (e.g., '1', '8', '10a'). Omit to get all articles."}, 'law_code': {'type': 'string', 'description': "Law abbreviation (e.g., 'BV', 'BGFA', 'OR', 'StGB')."}}}
入力スキーマ
{'type': 'object', 'required': ['doc_id'], 'properties': {'doc_id': {'type': 'string', 'description': 'Document identifier returned by search_practice.'}}}
入力スキーマ
{'type': 'object', 'required': ['decision_id'], 'properties': {'decision_id': {'type': 'string', 'description': 'decision_id, BGE reference, or docket number.'}}}
入力スキーマ
{'type': 'object', 'required': ['pub_id'], 'properties': {'pub_id': {'type': 'string', 'description': "Canonical pub_id, e.g. 'sui_generis:article-1382' or 'onlinekommentar:<uuid>'."}}}
入力スキーマ
{'type': 'object', 'required': ['pub_id'], 'properties': {'pub_id': {'type': 'string', 'description': 'Canonical pub_id (from search_scholarship results).'}}}
入力スキーマ
{'type': 'object', 'properties': {'year': {'type': 'integer', 'description': 'Filter by year'}, 'court': {'type': 'string', 'description': 'Filter by court code'}, 'canton': {'type': 'string', 'description': 'Filter by canton code'}}}
入力スキーマ
{'type': 'object', 'properties': {}}
入力スキーマ
{'type': 'object', 'properties': {}}
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Max results (default 10, max 50).'}, 'query': {'type': 'string', 'description': 'Natural-language or keyword query.'}}}
出力スキーマ
{'type': 'object', 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}, 'snippet': {'type': 'string'}}, 'additionalProperties': True}}}, 'additionalProperties': True}
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'description': 'Max passages to return (default 20, max 50).'}, 'query': {'type': 'string', 'description': 'Search terms. FTS5 syntax supported â\x80\x94 use quoted phrases for exact matches (\'"Vaterschaftsurlaub"\'), Boolean operators (\'Klimaschutz AND Kanton\'), and prefix queries (\'Versicherungs*\'). Stopwords are ignored.'}, 'language': {'enum': ['de', 'fr', 'it'], 'type': 'string', 'description': 'OPTIONAL â\x80\x94 only set when the user explicitly limits the search to one language. Leave unset to search the corpus the caller has (currently de only). Setting this without the user asking will hide all non-matching Botschaft passages.'}, 'year_max': {'type': 'integer', 'description': 'Latest publication year of the source Botschaft (inclusive).'}, 'year_min': {'type': 'integer', 'description': 'Earliest publication year of the source Botschaft (inclusive) â\x80\x94 scope legislative history to an era.'}}}
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum results (1-50, default 10).'}, 'query': {'type': 'string', 'description': 'Search query (supports FTS5 syntax: quotes for phrases, OR for alternatives).'}, 'language': {'type': 'string', 'description': 'OPTIONAL filter (de/fr/it/en). Omit (recommended default) to search across all languages. Set ONLY when the user explicitly asks for one-language results; do NOT auto-apply based on conversation language.'}, 'abbreviation': {'type': 'string', 'description': "Filter by law abbreviation (e.g., 'OR', 'StGB')."}}}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'sort': {'enum': ['relevance', 'date_desc', 'date_asc'], 'type': 'string', 'description': "Sort order: 'relevance' (default for FTS), 'date_desc', 'date_asc'."}, 'court': {'type': 'string', 'description': "Filter by court code. Federal: bger, bge, bvger, bstger, bpatger, mkg. European Court of Human Rights: bge_egmr (BGE-published DE translations, Swiss cases), hudoc_ch (HUDOC Switzerland-tagged), ecthr_chamber and ecthr_grand_chamber (all respondent states, importance 1-3, FR or EN). ecthr_committee is empty by design â\x80\x94 the Committee's docket is entirely importance 4. Cantonal: zh_obergericht, be_verwaltungsgericht, etc."}, 'limit': {'type': 'integer', 'default': 50, 'description': 'Max results to return (max 2000). Omit to use default of 50. Do not set low values like 5 or 10 unless the user explicitly asked for fewer results.'}, 'query': {'type': 'string', 'maxLength': 4000, 'description': 'Search query. Best results: 3-8 precise terms, one search per legal issue â\x80\x94 never paste document text. Max 4,000 chars; input over 500 chars is auto-condensed to its citations + key terms. Examples:\n- Simple: Mietrecht Kündigung\n- Phrase: "Treu und Glauben"\n- Boolean: Arbeitsrecht AND Kündigung NOT Probezeit\n- Prefix: Verfassung*\n- By docket: 6B_1234/2025\n- By article: "Art. 8 BV"\n- Column: regeste:Mietrecht AND full_text:Kündigung'}, 'canton': {'type': 'string', 'description': 'Filter by canton (CH for federal, ZH, BE, GE, etc.)'}, 'fields': {'enum': ['full', 'compact'], 'type': 'string', 'description': "Response detail level: 'full' (default) includes snippet/regeste/URL, 'compact' returns only docket, date, court, language, decision_id."}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Skip this many results (for pagination). Default 0.'}, 'chamber': {'type': 'string', 'description': "Filter by chamber/division (substring match). Examples: 'Abteilung V' (BVGer asylum), 'Zivilrechtliche', 'CASSO', 'Strafrechtliche'"}, 'date_to': {'type': 'string', 'description': 'End date (YYYY-MM-DD)'}, 'language': {'enum': ['de', 'fr', 'it', 'rm', 'en'], 'type': 'string', 'description': "OPTIONAL filter. Restricts results to ONE language. Omit (recommended default) to search across all languages â\x80\x94 Swiss federal decisions are issued in DE, FR, or IT depending on the case, so a language filter silently excludes valid hits in the other two. Set ONLY when the user explicitly asks for a single-language result; do NOT auto-apply based on the conversation's language. 'en' reaches only ECtHR judgments whose sole authoritative text is English â\x80\x94 there is no English Swiss case law."}, 'date_from': {'type': 'string', 'description': 'Start date (YYYY-MM-DD)'}, 'include_pinpoint': {'type': 'boolean', 'default': True, 'description': 'Attach a pinpoint Erwägung citation to the top results when a confident match exists (BM25 over the per-decision Erwägungen FTS5 index, gap-confidence â\x89¥ medium). Defaults true; set false to skip the per-result lookup (typically saves 0.2-2 s on the top 5 results; more for long or statute-heavy queries).'}, 'marked_for_publication': {'type': 'boolean', 'description': "If true, return only Federal Supreme Court rulings flagged for the official BGE collection (the Neuheiten '*' marker, 'für die Publikation vorgesehen') â\x80\x94 future leading cases, flagged before the BGE number is assigned. Populated for BGer decisions published from mid-2026 onward; older rows are unflagged."}}}
出力スキーマ
{'type': 'object', '$defs': {'ResearchError': {'type': 'object', 'title': 'ResearchError', 'required': ['error'], 'properties': {'error': {'type': 'string', 'title': 'Error'}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'available_e_numbers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Available E Numbers', 'default': None}}, 'additionalProperties': True}, 'DecisionRecord': {'type': 'object', 'title': 'DecisionRecord', 'required': ['decision_id'], 'properties': {'court': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Court', 'default': None}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title', 'default': None}, 'canton': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canton', 'default': None}, 'pdf_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Pdf Url', 'default': None}, 'regeste': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Regeste', 'default': None}, 'snippet': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Snippet', 'default': None}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Language', 'default': None}, 'pinpoint': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Pinpoint', 'default': None}, 'scraped_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Scraped At', 'default': None}, 'source_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Url', 'default': None}, 'decision_id': {'type': 'string', 'title': 'Decision Id'}, 'content_hash': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Content Hash', 'default': None}, 'is_canonical': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Is Canonical', 'default': None, 'description': 'Whether this record is the canonical representation (canonical_decision_id == decision_id). Absent when the manifest is not loaded.'}, 'canonical_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canonical Url', 'default': None}, 'decision_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Decision Date', 'default': None}, 'docket_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Docket Number', 'default': None}, 'markdown_link': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Markdown Link', 'default': None}, 'citation_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Citation Count', 'default': None}, 'joined_dockets': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Joined Dockets', 'default': None, 'description': 'Secondary dockets of a consolidated proceeding stored under this decision; a reference by any of them names this record. Absent when there are none.'}, 'rule_statement': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rule Statement', 'default': None}, 'is_leading_case': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Is Leading Case', 'default': None}, 'publication_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Publication Date', 'default': None}, 'date_is_estimated': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Date Is Estimated', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'citation_string_de': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String De', 'default': None}, 'citation_string_fr': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String Fr', 'default': None}, 'citation_string_it': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Citation String It', 'default': None}, 'canonical_decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Canonical Decision Id', 'default': None, 'description': 'The canonical decision_id when the representation manifest is loaded: equals decision_id unless this record is a duplicate representation of another stored decision. decision_id itself is never changed.'}}, 'additionalProperties': True}, 'SearchDecisionsResponse': {'type': 'object', 'title': 'SearchDecisionsResponse', 'required': ['total', 'total_is_lower_bound', 'results', 'returned', 'limit', 'offset', 'has_more', 'next_offset'], 'properties': {'note': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Note', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit'}, 'total': {'type': 'integer', 'title': 'Total', 'description': 'Match count; see total_is_lower_bound before treating it as exact.'}, 'offset': {'type': 'integer', 'title': 'Offset'}, 'results': {'type': 'array', 'items': {'$ref': '#/$defs/DecisionRecord'}, 'title': 'Results'}, 'degraded': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Degraded', 'default': None, 'description': 'True when the search hit its time budget and skipped ranking strategies; the page is a degraded ranking, not the best matches.'}, 'has_more': {'type': 'boolean', 'title': 'Has More', 'description': 'Whether another page is retrievable. False does not prove a relevance-ranked search enumerated the corpus.'}, 'returned': {'type': 'integer', 'title': 'Returned'}, 'decisions': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Decisions', 'default': None, 'description': 'Legacy MCP widget records, retained alongside results.'}, 'next_offset': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Next Offset'}, 'result_set_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Result Set Id', 'default': None}, 'condensed_terms': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Condensed Terms', 'default': None}, 'query_condensed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Query Condensed', 'default': None}, 'ignored_arguments': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ignored Arguments', 'default': None, 'description': 'MCP parameters that were ignored; they did not affect the returned result.'}, 'total_is_lower_bound': {'type': 'boolean', 'title': 'Total Is Lower Bound'}}, 'additionalProperties': True}}, 'anyOf': [{'$ref': '#/$defs/SearchDecisionsResponse'}, {'$ref': '#/$defs/ResearchError'}]}
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum merged results (1-50).'}, 'query': {'type': 'string', 'description': 'Search query. Explicit syntax is supported and operators must be UPPERCASE: \'Miete OR Pacht\', \'Kündigung AND Frist\' (AND with an absent term returns 0), \'"exakte Wortfolge"\' for phrases, \'Verfahr*\' for prefixes. Lowercase or/and are treated as ordinary words.'}, 'canton': {'type': 'string', 'description': "Two-letter canton code (ZH, BE, â\x80¦) to restrict to one canton's statute corpus. 'CH' â\x86\x92 federal only. Omit to search every jurisdiction."}, 'language': {'enum': ['de', 'fr', 'it'], 'type': 'string', 'description': 'OPTIONAL filter. Restricts results to ONE language. Omit (recommended default) to search across all three official languages â\x80\x94 most laws exist in DE/FR/IT and a filter silently hides valid hits in the others. Set ONLY when the user explicitly asks for one language.'}, 'sr_number': {'type': 'string', 'description': "Restrict search to a specific federal law by SR number. Implies jurisdiction='federal'."}, 'jurisdiction': {'enum': ['all', 'federal', 'cantonal'], 'type': 'string', 'default': 'all', 'description': "Explicit scope override: 'all' (default), 'federal', or 'cantonal'. Most callers should omit this and let sr_number/canton drive the scope."}}}
出力スキーマ
{'type': 'object', 'properties': {'hits': {'type': 'array', 'items': {'type': 'object', 'properties': {'level': {'type': 'string'}, 'title': {'type': ['string', 'null']}, 'canton': {'type': ['string', 'null']}, 'reference': {'type': ['string', 'null']}, 'sr_number': {'type': ['string', 'null']}, 'source_url': {'type': ['string', 'null']}, 'article_num': {'type': ['string', 'null']}, 'abbreviation': {'type': ['string', 'null']}, 'snippet_text': {'type': ['string', 'null']}, 'source_label': {'type': ['string', 'null']}}, 'additionalProperties': True}}, 'query': {'type': 'string'}, 'total': {'type': 'integer'}, 'federal_hits': {'type': 'integer'}, 'cantonal_hits': {'type': 'integer'}}, 'additionalProperties': True}
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'description': 'Max results (1-60, default 20).'}, 'query': {'type': 'string', 'description': "Search query in natural language or keywords. Examples: 'Hundegesetz', 'loi sur l'énergie', 'Mietrecht Kanton Zürich', 'Baugesetz'."}, 'canton': {'type': 'string', 'description': "Two-letter canton code (ZH, BE, LU, UR, SZ, OW, NW, GL, ZG, FR, SO, BS, BL, SH, AR, AI, SG, GR, AG, TG, TI, VD, VS, NE, GE, JU) or 'CH' for federal. Omit to search all 26 cantons + federal at once."}, 'language': {'enum': ['de', 'fr', 'it'], 'type': 'string', 'description': "OPTIONAL filter. Restricts results to ONE language version. Omit (recommended default) to fan out across DE/FR/IT and merge results â\x80\x94 LexFind's API is single-language per request, so omission triggers a 3-way parallel call with deduplication. Set ONLY when the user explicitly asks for one language. Hint when set: fr for FR/GE/JU/NE/VD, it for TI, de for the rest."}, 'active_only': {'type': 'boolean', 'default': True, 'description': 'Only show laws currently in force (default true).'}, 'fetch_top_n_texts': {'type': 'integer', 'default': 0, 'description': 'If > 0, download + parse the full text of the top N results (max 10) and return each with full_text_preview, article_count, and sample_articles. Use 1-3 for natural-language questions so you can answer in a single tool call.'}, 'search_in_content': {'type': 'boolean', 'default': False, 'description': 'Also search inside the law text, not just titles and keywords (slower).'}}}
出力スキーマ
{'type': 'object', 'properties': {'hits': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'query': {'type': 'string'}, 'total': {'type': 'integer'}}, 'additionalProperties': True}
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum results (1-50, default 10).'}, 'query': {'type': 'string', 'description': 'Search query (natural language or FTS5 syntax).'}, 'law_code': {'type': 'string', 'description': "Filter by law abbreviation (e.g., 'BGFA')."}}}
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum results (1-50, default 10).'}, 'query': {'type': 'string', 'description': 'Search query (FTS5 syntax: quotes for phrases, OR for alternatives, NEAR(term1 term2, N) for proximity).'}, 'source': {'enum': ['finma_rs', 'seco_arg', 'bafu_vollzug', 'estv_ks', 'estv_mwst', 'sem_weisungen', 'bsv_weisungen', 'seco_alv', 'bag_kvg', 'sem_handbuch_asyl', 'bj_schkg', 'weko_bekanntmachungen', 'oak_bv'], 'type': 'string', 'description': 'Filter by source key. finma_rs (1,133), seco_arg (1,102), bafu_vollzug (297), estv_ks (285), estv_mwst (153), sem_weisungen (92), bsv_weisungen (BSV Wegleitungen/Kreisschreiben/Rundschreiben/Mitteilungen, every retained version, 6,083, DE/FR/IT), seco_alv (AVIG-Praxis ALE/KAE/SWE/RVEI/IE/AMM + thematic Weisungen, 54, DE/FR/IT), bag_kvg (KVG Kreisschreiben, 38, DE/FR), sem_handbuch_asyl (Handbuch Asyl und Rückkehr, 92 articles, DE/FR), bj_schkg (SchKG Weisungen + cantonal and historical federal Kreisschreiben incl. Existenzminimum-Richtlinien, 174, DE/FR/IT), weko_bekanntmachungen (WEKO Bekanntmachungen + Erläuterungen, current and superseded versions, DE/FR/IT), oak_bv (OAK BV Weisungen W and Mitteilungen M, every version, Informationsschreiben/FAQ, Anhörungsentwürfe, DE/FR/IT).'}, 'doc_type': {'enum': ['wegleitung', 'rundschreiben', 'vollzugshilfe', 'kreisschreiben', 'rundschreiben_anhang', 'mwst_branchen_info', 'mwst_info', 'weisung', 'handbuch', 'mitteilung', 'nachtrag', 'rechtsprechung', 'richtlinie', 'weisung_anhang', 'konkordat', 'erlass', 'bekanntmachung', 'erlaeuterung', 'entwurf'], 'type': 'string', 'description': 'Filter by document type. wegleitung (SECO ArG 1,102 + BSV WEL/RWLâ\x80¦), rundschreiben (FINMA 1,017 + BSV/SEM), vollzugshilfe (297), kreisschreiben (ESTV 285 + BSV/BAG/BJ), rundschreiben_anhang (132 â\x80\x94 FINMA circular annexes), mwst_branchen_info (84), weisung (SEM/SECO-ALV/BJ/BSV), mwst_info (69), handbuch (SEM Handbuch Asyl), mitteilung (BSV Mitteilungen an die Ausgleichskassen), nachtrag (BSV Nachträge), rechtsprechung (BSV AHI-Praxis digests), richtlinie (BJ, WEKO Richtlinien), weisung_anhang (BJ; OAK BV Informationsschreiben/FAQ), konkordat / erlass (BJ SchKG page), bekanntmachung / erlaeuterung (WEKO), entwurf (OAK BV Anhörungen: drafts, not in force).'}, 'language': {'type': 'string', 'description': 'OPTIONAL filter (de/fr/it). Omit (recommended default) to search across all languages. Set ONLY when the user explicitly asks for one-language results.'}, 'issuing_authority': {'enum': ['FINMA', 'SECO', 'ESTV', 'BAFU', 'SEM', 'BSV', 'BAG', 'BJ', 'WEKO', 'OAK BV'], 'type': 'string', 'description': 'Filter by authority. FINMA (1,133), SECO (Arbeitsgesetz 1,102 + AVIG-Praxis), ESTV (438), BAFU (297), SEM (Weisungen 92 + Handbuch), BSV (6,083, social insurance practice), BAG (38), BJ (debt enforcement), WEKO (Bekanntmachungen/Erläuterungen under the KG), OAK BV (BVG supervision: Weisungen, Mitteilungen).'}, 'include_superseded': {'type': 'boolean', 'default': False, 'description': 'Return every retained version of a document (FINMA, BSV) instead of collapsing to the newest. Set for point-in-time questions.'}}}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'sort': {'enum': ['relevance', 'year', 'year_asc'], 'type': 'string', 'description': "Order: 'relevance' (BM25, default for a topic query), 'year' (newest first), 'year_asc' (oldest first). With no query the default is newest-first."}, 'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum results (1-50, default 10).'}, 'query': {'type': 'string', 'description': 'Topic query (FTS5 syntax: quotes for phrases, OR for alternatives). Optional â\x80\x94 may be omitted when an `author` (or other) filter is given, which returns a bibliographic browse instead of a topical search.'}, 'author': {'type': 'string', 'description': 'Filter by author (substring match on the authors field). May be used WITHOUT a query for a pure bibliographic browse (all works by an author).'}, 'source': {'type': 'string', 'description': "Filter by source slug (e.g. 'sui_generis', 'onlinekommentar', 'openlegalcommentary', 'zora_law')."}, 'language': {'type': 'string', 'description': 'OPTIONAL filter by language (de/fr/it/en). Omit to search across all languages (recommended â\x80\x94 the corpus is trilingual).'}, 'pub_type': {'type': 'string', 'description': "Filter by type: 'article', 'commentary', 'dissertation', 'book', 'chapter', 'master_thesis', 'working_paper', 'report'."}, 'year_max': {'type': 'integer', 'description': 'Latest publication year.'}, 'year_min': {'type': 'integer', 'description': 'Earliest publication year.'}}}
最近のツール変更
類似のMCPサーバー
BNM Data Shop
Sells access to cached official reports, enforcement orders, regulatory documents, inspection records, and other public-source te…
OpenHelvetia Gateway
Provides sourced access to Swiss federal legislation and political data, including law metadata, versions, amendments, citations,…
Court Listener
Searches and retrieves US court opinions, case citations, federal docket filings, and related legal documents.
Gov Uk Content
Searches and retrieves GOV.UK content, government organisations, and HMRC manuals, sections, and revision histories.
Epstein
Searches, inventories, and retrieves documents from the House Oversight Committee’s Epstein investigation corpus, including fligh…
Crs Reports
Searches, retrieves, and summarizes Congressional Research Service reports, topics, legislation analysis, and recent publications.
Eu Parliament
Provides European Parliament open data on MEPs, plenary documents, sessions, and related parliamentary records.
Law Commission
Searches and retrieves publications and project information from the Law Commission of England and Wales, including consultation …