MCP 服务器

Private Law Wiki

io.github.privatelawattorneys/wiki-private-law
知识与文档 法律与合规 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Searches and quotes a private-law knowledge base and provides sourced assessments and rankings for banking-related cases and providers.

ask
Ask the Private Law wiki
Answer a question by quoting a published wiki article. The answer is extracted verbatim, never generated, and always carries the URL it came from. Returns confident=false with suggested reading when the corpus does not cover the question or when context genuinely conflicts. Bare MSO means the Hong Kong Money Service Operator licence; use Management Services Organization or regulated-practice context for the broader platform concept. Ask in the language you want answered — Russian and English are both first-class.
只读 幂等
输入模式
{'type': 'object', 'required': ['question'], 'properties': {'locale': {'enum': ['ru', 'en', 'ko', 'zh-hant'], 'type': 'string', 'description': 'Corpus language; inferred from the question when omitted.'}, 'question': {'type': 'string', 'description': 'A natural-language question, up to 2000 characters.'}}}
输出模式
{'type': 'object', 'required': ['confident', 'answer', 'citations', 'suggestedReading', 'queryInterpretation'], 'properties': {'answer': {'type': ['string', 'null']}, 'locale': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'url', 'provenance'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'distance': {'type': ['number', 'null']}, 'provenance': {'type': 'object', 'required': ['contract', 'id', 'canonical_url', 'publisher', 'version', 'cite_as', 'primary_sources', 'verification_status'], 'properties': {'id': {'type': 'string', 'description': '<locale>:<slug> for an article, <dataset>:<record id> for a dataset row.'}, 'cite_as': {'type': 'string'}, 'version': {'type': ['string', 'null'], 'description': 'Revision of exactly the material served: for an article the snapshot content hash (the HTML ETag value); for a dataset record the dataset revision it was published in, since the published file is named by the hash of its own content and meta.version plus datasets/index.json resolve that filename. Null when unknown.'}, 'contract': {'type': 'string', 'const': 'wiki-provenance/1'}, 'publisher': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}}}, 'canonical_url': {'type': 'string', 'format': 'uri', 'description': 'Published location without tracking parameters.'}, 'primary_sources': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': ['string', 'null']}, 'name': {'type': 'string'}}}}, 'verification_status': {'enum': ['verified', 'pending', 'unknown'], 'type': 'string'}}, 'description': 'Origin of one record: stable id, clean canonical URL, publisher, the exact published revision served, a ready citation, primary sources and review status.'}}}}, 'confident': {'type': 'boolean'}, 'threshold': {'type': 'number'}, 'topDistance': {'type': ['number', 'null']}, 'refusalReason': {'type': ['string', 'null']}, 'suggestedReading': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'url', 'provenance'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'distance': {'type': ['number', 'null']}, 'provenance': {'type': 'object', 'required': ['contract', 'id', 'canonical_url', 'publisher', 'version', 'cite_as', 'primary_sources', 'verification_status'], 'properties': {'id': {'type': 'string', 'description': '<locale>:<slug> for an article, <dataset>:<record id> for a dataset row.'}, 'cite_as': {'type': 'string'}, 'version': {'type': ['string', 'null'], 'description': 'Revision of exactly the material served: for an article the snapshot content hash (the HTML ETag value); for a dataset record the dataset revision it was published in, since the published file is named by the hash of its own content and meta.version plus datasets/index.json resolve that filename. Null when unknown.'}, 'contract': {'type': 'string', 'const': 'wiki-provenance/1'}, 'publisher': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}}}, 'canonical_url': {'type': 'string', 'format': 'uri', 'description': 'Published location without tracking parameters.'}, 'primary_sources': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': ['string', 'null']}, 'name': {'type': 'string'}}}}, 'verification_status': {'enum': ['verified', 'pending', 'unknown'], 'type': 'string'}}, 'description': 'Origin of one record: stable id, clean canonical URL, publisher, the exact published revision served, a ready citation, primary sources and review status.'}}}}, 'queryInterpretation': {'type': ['object', 'null'], 'required': ['term', 'sense', 'ambiguous', 'message', 'choices'], 'properties': {'term': {'enum': ['MSO'], 'type': 'string'}, 'sense': {'enum': ['hong_kong_money_service_operator', 'regulated_practice_management', 'comparison', 'ambiguous'], 'type': 'string'}, 'choices': {'type': 'array', 'items': {'type': 'object', 'required': ['sense', 'slug', 'locale', 'title', 'description', 'url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'sense': {'enum': ['hong_kong_money_service_operator', 'regulated_practice_management'], 'type': 'string'}, 'title': {'type': 'string'}, 'locale': {'type': 'string'}, 'description': {'type': 'string'}}}}, 'message': {'type': 'string'}, 'ambiguous': {'type': 'boolean'}}}}}
assess_bank_case
Assess a problem with a bank
The complaint desk's deterministic assessment for a frozen account, a closure notice, a document request, a stuck payment or a refused application: what to do now, the escalation ladder of the bank's jurisdiction (bank complaint, ombudsman or regulator, data access request) with each rung judged for this client — open now, after the bank replies, conditional or not open to them — and linked to its primary source, plus deadlines, cautions and the help that fits. Also returns the letters to send — the formal complaint that starts the bank's clock and the data access request, in English with bracketed placeholders the person fills in themselves — and the dates that follow if they go out today. Pass holder whenever it is known: an ombudsman's door depends on whose account it is. Information, not legal advice. Never submit a person's contact details; hand them the complaint URL instead.
只读 幂等
输入模式
{'type': 'object', 'required': ['problem', 'stage', 'jurisdiction', 'amount', 'sanctions'], 'properties': {'stage': {'enum': ['notice', 'replied', 'deadline_passed', 'closed'], 'type': 'string'}, 'today': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "The client's current date (YYYY-MM-DD) for the calendar. Optional; defaults to the server's date."}, 'amount': {'enum': ['lt50k', '50k_250k', '250k_1m', 'gt1m'], 'type': 'string'}, 'holder': {'enum': ['individual', 'small_business', 'company'], 'type': 'string', 'description': 'Whose account it is. Optional; without it eligibility is stated, not decided.'}, 'locale': {'enum': ['ru', 'en'], 'type': 'string'}, 'problem': {'enum': ['freeze', 'closure', 'kyc_request', 'payment_stuck', 'refused'], 'type': 'string'}, 'sanctions': {'enum': ['none', 'passport', 'business'], 'type': 'string', 'description': 'Russia or Belarus nexus of the client.'}, 'jurisdiction': {'enum': ['uk', 'eu', 'ch', 'sg', 'hk', 'us', 'uae', 'other'], 'type': 'string', 'description': "Where the bank or the neobank's licence sits."}}}
输出模式
{'type': 'object', 'required': ['headline', 'verdict', 'firstSteps', 'escalation', 'deadlines', 'calendar', 'letters', 'service', 'cautions', 'articles', 'complaintUrl'], 'properties': {'letters': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'title', 'purpose', 'body'], 'properties': {'body': {'type': 'string'}, 'kind': {'enum': ['complaint', 'data_request'], 'type': 'string'}, 'title': {'type': 'string'}, 'purpose': {'type': 'string'}}}}, 'service': {'type': 'object', 'required': ['id', 'title', 'why'], 'properties': {'id': {'type': 'string'}, 'why': {'type': 'string'}, 'title': {'type': 'string'}}}, 'verdict': {'type': 'string'}, 'articles': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'title', 'url', 'provenance'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['contract', 'id', 'canonical_url', 'publisher', 'version', 'cite_as', 'primary_sources', 'verification_status'], 'properties': {'id': {'type': 'string', 'description': '<locale>:<slug> for an article, <dataset>:<record id> for a dataset row.'}, 'cite_as': {'type': 'string'}, 'version': {'type': ['string', 'null'], 'description': 'Revision of exactly the material served: for an article the snapshot content hash (the HTML ETag value); for a dataset record the dataset revision it was published in, since the published file is named by the hash of its own content and meta.version plus datasets/index.json resolve that filename. Null when unknown.'}, 'contract': {'type': 'string', 'const': 'wiki-provenance/1'}, 'publisher': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}}}, 'canonical_url': {'type': 'string', 'format': 'uri', 'description': 'Published location without tracking parameters.'}, 'primary_sources': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': ['string', 'null']}, 'name': {'type': 'string'}}}}, 'verification_status': {'enum': ['verified', 'pending', 'unknown'], 'type': 'string'}}, 'description': 'Origin of one record: stable id, clean canonical URL, publisher, the exact published revision served, a ready citation, primary sources and review status.'}}}}, 'calendar': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'date'], 'properties': {'date': {'type': 'string'}, 'label': {'type': 'string'}}}}, 'cautions': {'type': 'array', 'items': {'type': 'string'}}, 'headline': {'type': 'string'}, 'deadlines': {'type': 'array', 'items': {'type': 'string'}}, 'escalation': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'when', 'how', 'who', 'status', 'statusNote'], 'properties': {'how': {'type': 'string'}, 'who': {'type': 'string'}, 'name': {'type': 'string'}, 'when': {'type': 'string'}, 'source': {'type': 'string'}, 'status': {'enum': ['open', 'later', 'conditional', 'closed'], 'type': 'string'}, 'statusNote': {'type': 'string'}}}}, 'firstSteps': {'type': 'array', 'items': {'type': 'string'}}, 'complaintUrl': {'type': 'string'}}}
bank_index
The private.law Bank Index
List providers of banking for international clients with their standing in the Bank Index: a ranking per product (business account, private banking, personal account, digital assets, payments and FX, banking infrastructure, trade finance), tier, composite score 0–100, data coverage and watch flag. Filter by product, tier or a standardised client profile; without a product each provider shows its best standing. Scores are computed from dated, sourced data points; unrated providers are listed too. Use bank_rating for one provider with its evidence.
只读 幂等
输入模式
{'type': 'object', 'properties': {'tier': {'enum': ['tier1', 'tier2', 'tier3', 'unrated'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Default 25.'}, 'locale': {'enum': ['ru', 'en'], 'type': 'string'}, 'product': {'enum': ['business-account', 'private-banking', 'personal-account', 'digital-assets', 'payments-fx', 'banking-infrastructure', 'trade-finance'], 'type': 'string', 'description': 'Rank under this product; a provider appears in every product it offers.'}, 'profile': {'enum': ['founder-us-llc', 'trading-hk-ltd', 'hnw-individual', 'family-office', 'crypto-native', 'ru-nexus'], 'type': 'string', 'description': 'Only providers whose verdict for this profile is yes or case-by-case.'}}}
输出模式
{'type': 'object', 'required': ['method', 'generatedAt', 'total', 'providers'], 'properties': {'total': {'type': 'integer'}, 'method': {'type': 'string'}, 'providers': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'url', 'products', 'product', 'tier', 'composite', 'coverage', 'watch', 'reviewStatus', 'provenance'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tier': {'enum': ['tier1', 'tier2', 'tier3', 'unrated'], 'type': 'string'}, 'watch': {'type': 'boolean'}, 'product': {'type': 'string', 'description': 'The product this standing is for.'}, 'coverage': {'type': 'number'}, 'products': {'type': 'array', 'items': {'type': 'string'}}, 'composite': {'type': ['integer', 'null']}, 'provenance': {'type': 'object', 'required': ['contract', 'id', 'canonical_url', 'publisher', 'version', 'cite_as'], 'properties': {'id': {'type': 'string'}, 'cite_as': {'type': 'string'}, 'version': {'type': 'string'}, 'contract': {'type': 'string'}, 'publisher': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}}}, 'canonical_url': {'type': 'string'}}}, 'reviewStatus': {'enum': ['unrated', 'draft', 'reviewed'], 'type': 'string'}}}}, 'generatedAt': {'type': 'string'}}}
bank_rating
One provider in the Bank Index, with evidence
Return one provider's full record: its standing under every product it offers (tier, composite, coverage), pillar scores, every indicator value with its source, date and verification level, the standardised profile verdicts, flags and a provenance object with a ready citation. Also returns the complaint-desk URL for that provider.
只读 幂等
输入模式
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'The provider card slug, e.g. mercury.'}}}
输出模式
{'type': 'object', 'required': ['slug', 'products', 'headline', 'standings', 'tier', 'composite', 'coverage', 'watch', 'flags', 'pillars', 'indicators', 'profiles', 'review', 'complaint', 'provenance'], 'properties': {'slug': {'type': 'string'}, 'tier': {'enum': ['tier1', 'tier2', 'tier3', 'unrated'], 'type': 'string'}, 'flags': {'type': 'array', 'items': {'type': 'string'}}, 'watch': {'type': 'boolean'}, 'review': {'type': 'object'}, 'pillars': {'type': 'object'}, 'coverage': {'type': 'number'}, 'headline': {'type': ['object', 'null']}, 'products': {'type': 'array', 'items': {'type': 'string'}}, 'profiles': {'type': 'object'}, 'complaint': {'type': 'object'}, 'composite': {'type': ['integer', 'null']}, 'standings': {'type': 'object'}, 'indicators': {'type': 'object'}, 'provenance': {'type': 'object', 'required': ['contract', 'id', 'canonical_url', 'publisher', 'version', 'cite_as'], 'properties': {'id': {'type': 'string'}, 'cite_as': {'type': 'string'}, 'version': {'type': 'string'}, 'contract': {'type': 'string'}, 'publisher': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}}}, 'canonical_url': {'type': 'string'}}}}}
search
Search the Private Law wiki
Rank published articles for a query and return them with titles and URLs. Use when you want sources to read rather than a single answer. Search is sense-aware: bare MSO promotes only the Hong Kong Money Service Operator owner, professional-industry context promotes the regulated-practice platform, and genuinely conflicting context returns both with an explicit interpretation object.
只读 幂等
输入模式
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': 'Default 5.'}, 'query': {'type': 'string', 'description': 'Search terms or a question.'}, 'locale': {'enum': ['ru', 'en', 'ko', 'zh-hant'], 'type': 'string'}}}
输出模式
{'type': 'object', 'required': ['hits', 'queryInterpretation'], 'properties': {'hits': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'url', 'provenance'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'distance': {'type': ['number', 'null']}, 'provenance': {'type': 'object', 'required': ['contract', 'id', 'canonical_url', 'publisher', 'version', 'cite_as', 'primary_sources', 'verification_status'], 'properties': {'id': {'type': 'string', 'description': '<locale>:<slug> for an article, <dataset>:<record id> for a dataset row.'}, 'cite_as': {'type': 'string'}, 'version': {'type': ['string', 'null'], 'description': 'Revision of exactly the material served: for an article the snapshot content hash (the HTML ETag value); for a dataset record the dataset revision it was published in, since the published file is named by the hash of its own content and meta.version plus datasets/index.json resolve that filename. Null when unknown.'}, 'contract': {'type': 'string', 'const': 'wiki-provenance/1'}, 'publisher': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}}}, 'canonical_url': {'type': 'string', 'format': 'uri', 'description': 'Published location without tracking parameters.'}, 'primary_sources': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': ['string', 'null']}, 'name': {'type': 'string'}}}}, 'verification_status': {'enum': ['verified', 'pending', 'unknown'], 'type': 'string'}}, 'description': 'Origin of one record: stable id, clean canonical URL, publisher, the exact published revision served, a ready citation, primary sources and review status.'}}}}, 'queryInterpretation': {'type': ['object', 'null'], 'required': ['term', 'sense', 'ambiguous', 'message', 'choices'], 'properties': {'term': {'enum': ['MSO'], 'type': 'string'}, 'sense': {'enum': ['hong_kong_money_service_operator', 'regulated_practice_management', 'comparison', 'ambiguous'], 'type': 'string'}, 'choices': {'type': 'array', 'items': {'type': 'object', 'required': ['sense', 'slug', 'locale', 'title', 'description', 'url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'sense': {'enum': ['hong_kong_money_service_operator', 'regulated_practice_management'], 'type': 'string'}, 'title': {'type': 'string'}, 'locale': {'type': 'string'}, 'description': {'type': 'string'}}}}, 'message': {'type': 'string'}, 'ambiguous': {'type': 'boolean'}}}}}
已更改
assess_bank_case
2026年9月23日 02:47
已添加
assess_bank_case
2026年9月19日 02:45
已添加
bank_rating
2026年9月19日 02:45
已添加
bank_index
2026年9月19日 02:45
已添加
search
2026年9月17日 12:49
已添加
ask
2026年9月17日 12:49