MCP Server

Blackbook Protocol Advisor

io.github.koynlabs/blackbook-advisor
Legal & Compliance Public & reachable MCP 2025-11-25

What this MCP does

Guides UK trust, inheritance-tax, equity, and Companies House workflows with cited guidance, form preparation, risk flags, and human-confirmed portal submission.

confirm_and_submit
Confirm and submit
Submit the current portal form only after the human provides a valid one-time confirmationToken from prepare_submit_confirmation. This can file on a government portal.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sessionId', 'confirmationToken'], 'properties': {'sessionId': {'type': 'string', 'description': 'Ephemeral co-pilot session id returned by start_browser_session. Example: 8f3c2a1b-4d5e-6789-abcd-ef0123456789'}, 'confirmationToken': {'type': 'string', 'description': 'One-time token the Owner typed from prepare_submit_confirmation. Example: 7K2Q9M'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
draft_form_answers
Draft form answers
Draft preparation notes for TRS, IHT100, IHT400, and related professional-review questions from a completed intake. Label as a Protocol guide for solicitor execution.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['intake'], 'properties': {'intake': {'type': 'object', 'properties': {'assets': {'type': 'string', 'description': 'Assets intended for the Trust. Example: 95 ordinary shares in Example Ltd'}, 'parties': {'type': 'string', 'description': 'Trustees and beneficiaries in Protocol terms. Example: Alex Example (Lead Trustee); Class: children'}, 'settlor': {'type': 'string', 'description': 'Person settling the Trust. Example: Alex Example'}, 'deadlines': {'type': 'string', 'description': 'Known filing or lender deadlines. Example: TRS within 90 days of the deed'}, 'objective': {'type': 'string', 'description': 'Why the Owner is setting up the Vault. Example: Family wealth planning'}, 'questions': {'type': 'string', 'description': 'Owner questions the Architect should address. Example: Can the Trust be named as PSC?'}, 'trustName': {'type': 'string', 'description': 'Vault / settlement name. Example: Example Family Settlement 2026'}, 'assetValue': {'type': 'string', 'description': 'Optional indicative value of those assets. Example: 100000 GBP'}, 'companyName': {'type': 'string', 'description': 'Engine (limited company) name. Example: Example Ltd'}, 'jurisdiction': {'type': 'string', 'description': 'Governing law of the trust. Example: England and Wales'}, 'companyNumber': {'type': 'string', 'description': 'Companies House number. Example: 12345678'}, 'existingArrangements': {'type': 'string', 'description': 'Existing companies, trusts, or wills that affect setup. Example: Sole shareholder of Example Ltd'}}, 'description': 'Structured Owner facts for Protocol coaching and portal field mapping', 'additionalProperties': True}, 'formFamily': {'enum': ['TRS', 'IHT100', 'IHT400', 'unknown'], 'type': 'string', 'description': 'Form family to draft against. Example: TRS'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
end_browser_session
End browser session
Tear down the assisted browser session. No credentials are persisted. Safe to call more than once for the same id after expiry.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'description': 'Ephemeral co-pilot session id returned by start_browser_session. Example: 8f3c2a1b-4d5e-6789-abcd-ef0123456789'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
explain_current_screen
Explain current screen
Summarise the current portal page: URL, text excerpt, fillable fields, Protocol hint, signedInLikely.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'description': 'Ephemeral co-pilot session id returned by start_browser_session. Example: 8f3c2a1b-4d5e-6789-abcd-ef0123456789'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
fill_fields
Fill non-secret fields
Fill non-secret form fields (label/placeholder/name). Never passwords, OTPs, or Companies House auth codes.
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sessionId', 'fields'], 'properties': {'fields': {'type': 'object', 'description': 'Map of visible field label, placeholder, or name to a non-secret value. Example: {"Trust name":"Example Family Settlement 2026"}', 'additionalProperties': {'type': 'string'}}, 'sessionId': {'type': 'string', 'description': 'Ephemeral co-pilot session id returned by start_browser_session. Example: 8f3c2a1b-4d5e-6789-abcd-ef0123456789'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
generate_review_bundle
Generate review bundle
Generate a cited professional-review bundle from a completed intake for the Owner to take to a solicitor or CTA.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['intake'], 'properties': {'format': {'enum': ['markdown', 'json'], 'type': 'string', 'description': 'Bundle format. Example: markdown'}, 'intake': {'type': 'object', 'properties': {'assets': {'type': 'string', 'description': 'Assets intended for the Trust. Example: 95 ordinary shares in Example Ltd'}, 'parties': {'type': 'string', 'description': 'Trustees and beneficiaries in Protocol terms. Example: Alex Example (Lead Trustee); Class: children'}, 'settlor': {'type': 'string', 'description': 'Person settling the Trust. Example: Alex Example'}, 'deadlines': {'type': 'string', 'description': 'Known filing or lender deadlines. Example: TRS within 90 days of the deed'}, 'objective': {'type': 'string', 'description': 'Why the Owner is setting up the Vault. Example: Family wealth planning'}, 'questions': {'type': 'string', 'description': 'Owner questions the Architect should address. Example: Can the Trust be named as PSC?'}, 'trustName': {'type': 'string', 'description': 'Vault / settlement name. Example: Example Family Settlement 2026'}, 'assetValue': {'type': 'string', 'description': 'Optional indicative value of those assets. Example: 100000 GBP'}, 'companyName': {'type': 'string', 'description': 'Engine (limited company) name. Example: Example Ltd'}, 'jurisdiction': {'type': 'string', 'description': 'Governing law of the trust. Example: England and Wales'}, 'companyNumber': {'type': 'string', 'description': 'Companies House number. Example: 12345678'}, 'existingArrangements': {'type': 'string', 'description': 'Existing companies, trusts, or wills that affect setup. Example: Sole shareholder of Example Ltd'}}, 'description': 'Structured Owner facts for Protocol coaching and portal field mapping', 'additionalProperties': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
get_companies_house_guidance
Get Companies House guidance
Retrieve approved Companies House / PSC / WebFiling guidance. PSC filings name individuals (trustees), never the Trust itself.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic'], 'properties': {'topic': {'type': 'string', 'description': 'Guidance topic. Example: psc or webfiling'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic', 'guidance'], 'properties': {'topic': {'type': 'string', 'description': 'Topic that was requested'}, 'guidance': {'type': 'object', 'description': 'Approved GOV.UK title, URL, and summary', 'additionalProperties': {}}}, 'additionalProperties': False}
get_hmrc_guidance
Get HMRC guidance
Retrieve approved GOV.UK/HMRC trust and inheritance-tax guidance by topic. Returns a title, official URL, and short summary. Not a live scrape of GOV.UK.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic'], 'properties': {'topic': {'type': 'string', 'description': 'Guidance topic. Example: trs or inheritance tax'}, 'jurisdiction': {'type': 'string', 'description': 'Jurisdiction filter. Example: UK'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic', 'jurisdiction', 'guidance'], 'properties': {'topic': {'type': 'string', 'description': 'Topic that was requested'}, 'guidance': {'type': 'object', 'description': 'Approved GOV.UK title, URL, and summary', 'additionalProperties': {}}, 'jurisdiction': {'type': 'string', 'description': 'Jurisdiction used'}}, 'additionalProperties': False}
get_legal_boundary
Get legal boundary
Return the mandatory educational / non-advice boundary statement. Call when the Owner asks if this is legal advice.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'audience': {'type': 'string', 'description': 'Who will read the boundary line. Example: owner'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Mandatory educational / non-advice boundary statement'}}, 'additionalProperties': False}
get_module_playbook
Get module playbook
REQUIRED when coaching setup. Return the ordered Protocol checklist for a module. For 95/5 / share transfer into the Trust use equity_95_5 (not a freestyle solicitor checklist). Modules: vault, trs, equity_95_5, psc, banking, ip, philosophy, legacy, property.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['module'], 'properties': {'module': {'enum': ['vault', 'trs', 'equity_95_5', 'psc', 'banking', 'ip', 'philosophy', 'legacy', 'property'], 'type': 'string', 'description': 'Protocol module id. Example: equity_95_5'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'summary', 'steps', 'boundary'], 'properties': {'id': {'type': 'string', 'description': 'Module id that was requested'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'description': 'JSON object with string keys', 'additionalProperties': {}}, 'description': 'Ordered coaching steps'}, 'title': {'type': 'string', 'description': 'Human title for the module'}, 'summary': {'type': 'string', 'description': 'One-paragraph module purpose'}, 'boundary': {'type': 'string', 'description': 'Mandatory educational / non-advice boundary statement'}}, 'additionalProperties': False}
get_self_serve_portal
Get self-serve portal
Self-serve path: return the official portal URL plus Protocol checklist for the Owner’s own browser. Present portalUrl as a clickable markdown link (MCP cannot launch local browsers). Do not start Browserbase.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['portalId'], 'properties': {'portalId': {'enum': ['trs', 'trs_manage', 'companies_house_webfiling', 'companies_house_psc'], 'type': 'string', 'description': 'Allowlisted official portal. Example: trs for HMRC Trust Registration Service'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['mode', 'portalId', 'portalUrl', 'openInstruction', 'boundary'], 'properties': {'mode': {'type': 'string', 'description': 'Always self_serve'}, 'boundary': {'type': 'string', 'description': 'Mandatory educational / non-advice boundary statement'}, 'portalId': {'type': 'string', 'description': 'Portal that was requested'}, 'portalUrl': {'type': 'string', 'description': 'Official HTTPS URL to present as a markdown link'}, 'openInstruction': {'type': 'string', 'description': 'How the client should present portalUrl'}}, 'additionalProperties': False}
get_skill
Get workflow skill
Load a Protocol workflow skill as markdown. Names: establish-vault-trust, register-trust-trs, implement-95-5-equity-split, update-psc-companies-house, run-portal-copilot.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'enum': ['establish-vault-trust', 'register-trust-trs', 'implement-95-5-equity-split', 'update-psc-companies-house', 'run-portal-copilot'], 'type': 'string', 'description': 'Skill name from list_skills. Example: implement-95-5-equity-split'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'description', 'uri', 'markdown'], 'properties': {'uri': {'type': 'string', 'description': 'skill:// URI for this workflow'}, 'name': {'type': 'string', 'description': 'Skill name'}, 'markdown': {'type': 'string', 'description': 'Full SKILL.md contents'}, 'description': {'type': 'string', 'description': 'Skill summary from frontmatter'}}, 'additionalProperties': False}
list_fillable_fields
List fillable fields
Inventory visible non-secret form controls (label/name/type) on the current portal page. Use to align prepare_portal_fill keys.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'description': 'Ephemeral co-pilot session id returned by start_browser_session. Example: 8f3c2a1b-4d5e-6789-abcd-ef0123456789'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
list_implementation_modes
List implementation modes
List Owner choices: self_serve (own browser + guidance) vs assisted (Browserbase live view + optional fill). Ask before starting co-pilot.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'preferred': {'enum': ['self_serve', 'assisted'], 'type': 'string', 'description': 'Optional Owner preference if already stated. Example: self_serve'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['modes', 'defaultAsk', 'boundary'], 'properties': {'modes': {'type': 'array', 'items': {'type': 'object', 'description': 'JSON object with string keys', 'additionalProperties': {}}, 'description': 'self_serve and assisted options with recommended tools'}, 'boundary': {'type': 'string', 'description': 'Mandatory educational / non-advice boundary statement'}, 'defaultAsk': {'type': 'string', 'description': 'Question to ask the Owner before choosing a path'}}, 'additionalProperties': False}
list_modules
List Protocol modules
List available Protocol advisor modules in coaching order.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'query': {'type': 'string', 'description': 'Optional text to filter module id or title. Example: vault'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['modules'], 'properties': {'modules': {'type': 'array', 'items': {'type': 'object', 'description': 'JSON object with string keys', 'additionalProperties': {}}, 'description': 'Protocol modules with id and title'}}, 'additionalProperties': False}
list_risk_flags
List risk flags
Return legal, tax, and practical red flags detected from customer facts (settlor-as-beneficiary, lender consent, offshore, time pressure).
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['intake'], 'properties': {'intake': {'type': 'object', 'properties': {'assets': {'type': 'string', 'description': 'Assets intended for the Trust. Example: 95 ordinary shares in Example Ltd'}, 'parties': {'type': 'string', 'description': 'Trustees and beneficiaries in Protocol terms. Example: Alex Example (Lead Trustee); Class: children'}, 'settlor': {'type': 'string', 'description': 'Person settling the Trust. Example: Alex Example'}, 'deadlines': {'type': 'string', 'description': 'Known filing or lender deadlines. Example: TRS within 90 days of the deed'}, 'objective': {'type': 'string', 'description': 'Why the Owner is setting up the Vault. Example: Family wealth planning'}, 'questions': {'type': 'string', 'description': 'Owner questions the Architect should address. Example: Can the Trust be named as PSC?'}, 'trustName': {'type': 'string', 'description': 'Vault / settlement name. Example: Example Family Settlement 2026'}, 'assetValue': {'type': 'string', 'description': 'Optional indicative value of those assets. Example: 100000 GBP'}, 'companyName': {'type': 'string', 'description': 'Engine (limited company) name. Example: Example Ltd'}, 'jurisdiction': {'type': 'string', 'description': 'Governing law of the trust. Example: England and Wales'}, 'companyNumber': {'type': 'string', 'description': 'Companies House number. Example: 12345678'}, 'existingArrangements': {'type': 'string', 'description': 'Existing companies, trusts, or wills that affect setup. Example: Sole shareholder of Example Ltd'}}, 'description': 'Structured Owner facts for Protocol coaching and portal field mapping', 'additionalProperties': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['flags', 'boundary'], 'properties': {'flags': {'type': 'array', 'items': {'type': 'object', 'description': 'JSON object with string keys', 'additionalProperties': {}}, 'description': 'Detected flags with code, label, and detail'}, 'boundary': {'type': 'string', 'description': 'Mandatory educational / non-advice boundary statement'}}, 'additionalProperties': False}
list_skills
List workflow skills
List Protocol Architect workflow skills (Vault, TRS, 95/5, PSC, portal co-pilot). Call when the Owner asks how to set something up; then get_skill for the matching workflow.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'query': {'type': 'string', 'description': 'Optional text to filter skill names or descriptions. Example: psc'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['skills'], 'properties': {'skills': {'type': 'array', 'items': {'type': 'object', 'description': 'JSON object with string keys', 'additionalProperties': {}}, 'description': 'Discoverable skills with name, description, and skill:// URI'}}, 'additionalProperties': False}
open_portal
Open official portal
Navigate the assisted session to an allowlisted portal: trs, trs_manage, companies_house_webfiling, or companies_house_psc.
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sessionId', 'portalId'], 'properties': {'portalId': {'enum': ['trs', 'trs_manage', 'companies_house_webfiling', 'companies_house_psc'], 'type': 'string', 'description': 'Allowlisted official portal. Example: trs for HMRC Trust Registration Service'}, 'sessionId': {'type': 'string', 'description': 'Ephemeral co-pilot session id returned by start_browser_session. Example: 8f3c2a1b-4d5e-6789-abcd-ef0123456789'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
prepare_portal_fill
Prepare portal fill
Map intake facts to a fill_fields payload for TRS or Companies House PSC. Secrets (auth code) are listed but never filled. Call after Owner login; align labels with list_fillable_fields. Never maps the Trust as a PSC organisation.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['intake'], 'properties': {'intake': {'type': 'object', 'properties': {'assets': {'type': 'string', 'description': 'Assets intended for the Trust. Example: 95 ordinary shares in Example Ltd'}, 'parties': {'type': 'string', 'description': 'Trustees and beneficiaries in Protocol terms. Example: Alex Example (Lead Trustee); Class: children'}, 'settlor': {'type': 'string', 'description': 'Person settling the Trust. Example: Alex Example'}, 'deadlines': {'type': 'string', 'description': 'Known filing or lender deadlines. Example: TRS within 90 days of the deed'}, 'objective': {'type': 'string', 'description': 'Why the Owner is setting up the Vault. Example: Family wealth planning'}, 'questions': {'type': 'string', 'description': 'Owner questions the Architect should address. Example: Can the Trust be named as PSC?'}, 'trustName': {'type': 'string', 'description': 'Vault / settlement name. Example: Example Family Settlement 2026'}, 'assetValue': {'type': 'string', 'description': 'Optional indicative value of those assets. Example: 100000 GBP'}, 'companyName': {'type': 'string', 'description': 'Engine (limited company) name. Example: Example Ltd'}, 'jurisdiction': {'type': 'string', 'description': 'Governing law of the trust. Example: England and Wales'}, 'companyNumber': {'type': 'string', 'description': 'Companies House number. Example: 12345678'}, 'existingArrangements': {'type': 'string', 'description': 'Existing companies, trusts, or wills that affect setup. Example: Sole shareholder of Example Ltd'}}, 'description': 'Structured Owner facts for Protocol coaching and portal field mapping', 'additionalProperties': True}, 'formFamily': {'enum': ['TRS', 'COMPANIES_HOUSE_PSC'], 'type': 'string', 'description': 'Portal family to map. Example: COMPANIES_HOUSE_PSC'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
prepare_submit_confirmation
Prepare submit confirmation
Create a one-time confirmation token required before confirm_and_submit. Show the token to the human Owner; do not submit without it.
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'description': 'Ephemeral co-pilot session id returned by start_browser_session. Example: 8f3c2a1b-4d5e-6789-abcd-ef0123456789'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
request_user_action
Request owner action
Pause for Owner login, CAPTCHA, 2FA, or review in the Browserbase live view. Never ask the Owner to paste passwords into chat.
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sessionId', 'action'], 'properties': {'action': {'enum': ['login', 'captcha', '2fa', 'review'], 'type': 'string', 'description': 'Why the Owner must use the live view. Example: login'}, 'sessionId': {'type': 'string', 'description': 'Ephemeral co-pilot session id returned by start_browser_session. Example: 8f3c2a1b-4d5e-6789-abcd-ef0123456789'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
run_trust_intake
Run trust intake
Validate a structured trust setup intake and return missing facts, Protocol warnings, and next modules. Call before drafting forms or opening portals.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jurisdiction', 'objective', 'assets', 'settlor', 'parties'], 'properties': {'assets': {'type': 'string', 'description': 'Assets intended for the Trust. Example: 95 ordinary shares in Example Ltd'}, 'parties': {'type': 'string', 'description': 'Trustees and beneficiaries in Protocol terms. Example: Alex Example (Lead Trustee); Class: children'}, 'settlor': {'type': 'string', 'description': 'Person settling the Trust. Example: Alex Example'}, 'deadlines': {'type': 'string', 'description': 'Known filing or lender deadlines. Example: TRS within 90 days of the deed'}, 'objective': {'type': 'string', 'description': 'Why the Owner is setting up the Vault. Example: Family wealth planning'}, 'questions': {'type': 'string', 'description': 'Owner questions the Architect should address. Example: Can the Trust be named as PSC?'}, 'trustName': {'type': 'string', 'description': 'Vault / settlement name. Example: Example Family Settlement 2026'}, 'assetValue': {'type': 'string', 'description': 'Optional indicative value of those assets. Example: 100000 GBP'}, 'companyName': {'type': 'string', 'description': 'Engine (limited company) name. Example: Example Ltd'}, 'jurisdiction': {'type': 'string', 'description': 'Governing law of the trust. Example: England and Wales'}, 'companyNumber': {'type': 'string', 'description': 'Companies House number. Example: 12345678'}, 'existingArrangements': {'type': 'string', 'description': 'Existing companies, trusts, or wills that affect setup. Example: Sole shareholder of Example Ltd'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'missing', 'warnings', 'nextModules', 'boundary'], 'properties': {'ok': {'type': 'boolean', 'description': 'True when required intake fields are present'}, 'missing': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required fields that are still blank'}, 'boundary': {'type': 'string', 'description': 'Mandatory educational / non-advice boundary statement'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Protocol cautions such as settlor-as-beneficiary or 90/5'}, 'nextModules': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Suggested next Protocol modules'}}, 'additionalProperties': False}
search_book
Search Protocol book
REQUIRED before substantive Protocol answers. Search approved Blackbook Protocol passages and return cited excerpts. Prefer Protocol vocabulary from hits over generic UK legal advice. Returns ranked results plus the educational boundary.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'Maximum number of cited excerpts to return. Default 5. Example: 5'}, 'query': {'type': 'string', 'description': 'Search text using Protocol terms. Example: 95/5 equity split Vault PSC trustees'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results', 'boundary'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'description': 'JSON object with string keys', 'additionalProperties': {}}, 'description': 'Ranked corpus hits with citation and excerpt'}, 'boundary': {'type': 'string', 'description': 'Mandatory educational / non-advice boundary statement'}}, 'additionalProperties': False}
start_browser_session
Start browser session
ASSISTED mode only. Start a fresh ephemeral Browserbase (or mock) co-pilot session. Returns liveViewUrl — no purchaser email. If Owner prefers their own browser, use get_self_serve_portal instead.
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'reason': {'type': 'string', 'description': 'Why assisted mode is needed. Example: Owner asked for live TRS fill help'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'liveViewUrl', 'mode', 'portalAuthenticated'], 'properties': {'id': {'type': 'string', 'description': 'Session id for later portal tools'}, 'mode': {'type': 'string', 'description': 'mock or browserbase'}, 'liveViewUrl': {'type': 'string', 'description': 'URL the Owner opens to see and control the remote browser'}, 'portalAuthenticated': {'type': 'boolean', 'description': 'False on a fresh session until Owner signs in via live view'}}, 'additionalProperties': False}
wait_for_user_ready
Wait for owner ready
After request_user_action(login|2fa), poll until the page leaves the sign-in surface (or timeout). Then continue fill.
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sessionId'], 'properties': {'pollMs': {'type': 'integer', 'maximum': 10000, 'minimum': 1000, 'description': 'Polling interval in milliseconds. Default 3000. Example: 3000'}, 'sessionId': {'type': 'string', 'description': 'Ephemeral co-pilot session id returned by start_browser_session. Example: 8f3c2a1b-4d5e-6789-abcd-ef0123456789'}, 'timeoutMs': {'type': 'integer', 'maximum': 180000, 'minimum': 5000, 'description': 'How long to wait for sign-in in milliseconds. Default 90000. Example: 90000'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['boundary'], 'properties': {'boundary': {'type': 'string', 'description': 'Educational / non-advice boundary when the tool includes one'}}, 'additionalProperties': False}
Added
get_legal_boundary
Sept. 17, 2026, 12:42 p.m.
Added
end_browser_session
Sept. 17, 2026, 12:42 p.m.
Added
confirm_and_submit
Sept. 17, 2026, 12:42 p.m.
Added
prepare_submit_confirmation
Sept. 17, 2026, 12:42 p.m.
Added
wait_for_user_ready
Sept. 17, 2026, 12:42 p.m.
Added
request_user_action
Sept. 17, 2026, 12:42 p.m.
Added
fill_fields
Sept. 17, 2026, 12:42 p.m.
Added
list_fillable_fields
Sept. 17, 2026, 12:42 p.m.
Added
explain_current_screen
Sept. 17, 2026, 12:42 p.m.
Added
open_portal
Sept. 17, 2026, 12:42 p.m.
Added
start_browser_session
Sept. 17, 2026, 12:42 p.m.
Added
get_self_serve_portal
Sept. 17, 2026, 12:42 p.m.
Added
list_implementation_modes
Sept. 17, 2026, 12:42 p.m.
Added
list_risk_flags
Sept. 17, 2026, 12:42 p.m.
Added
generate_review_bundle
Sept. 17, 2026, 12:42 p.m.
Added
prepare_portal_fill
Sept. 17, 2026, 12:42 p.m.
Added
draft_form_answers
Sept. 17, 2026, 12:42 p.m.
Added
run_trust_intake
Sept. 17, 2026, 12:42 p.m.
Added
get_companies_house_guidance
Sept. 17, 2026, 12:42 p.m.
Added
get_hmrc_guidance
Sept. 17, 2026, 12:42 p.m.
Added
list_modules
Sept. 17, 2026, 12:42 p.m.
Added
get_skill
Sept. 17, 2026, 12:42 p.m.
Added
list_skills
Sept. 17, 2026, 12:42 p.m.
Added
get_module_playbook
Sept. 17, 2026, 12:42 p.m.
Added
search_book
Sept. 17, 2026, 12:42 p.m.