Spain Legal by Legal Fournier
Spain legal MCP for visas, residency, Beckham Law, NIE/TIE, nationality, tax, tools, and handoff.
使うべきか
品質と安全性
検出事項(2)
- LOWfind_legal_fournier_tool 内
- LOWcreate_legal_fournier_contact_request 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"spain-legal": {
"url": "https://legalfournier.com/mcp/spain-legal"
}
}
}リモートエンドポイント
https://legalfournier.com/mcp/spain-legalstreamable-httpできること
ツール一覧
ツール(11)
🟢find_legal_fournier_tool(query, area, preferred_language, complexity_signals, include_all_tools, ...)
Match a Spain legal, tax, property, business, or private-client case to the best Legal Fournier public tool page and MCP workflow.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"description": "Natural-language user goal or case summary, such as 'high-income founder buying property in Spain'.",
"type": "string"
},
"area": {
"description": "Optional broad area when the agent already knows it.",
"type": "string",
"enum": [
"immigration",
"tax",
"property",
"business",
"wealth",
"appointments",
"remote_work",
"unknown"
]
},
"preferred_language": {
"description": "Preferred public-page language when an equivalent translated tool exists.",
"type": "string",
"enum": [
"en",
"es",
"fr",
"unknown"
]
},
"complexity_signals": {
"description": "Signals that should affect matching and escalation.",
"type": "array",
"items": {
"type": "string",
"description": "Specific complexity signal, blocker, or risk fact."
}
},
"include_all_tools": {
"description": "Return the full Legal Fournier public tool catalog instead of only top matches.",
"type": "boolean"
},
"max_results": {
"description": "Maximum number of matched public tools to return when include_all_tools is false.",
"type": "integer",
"minimum": 1,
"maximum": 12
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"query_summary": {
"type": "string",
"description": "Short summary of the matching inputs and result count."
},
"catalog_size": {
"type": "number",
"description": "Number of public Legal Fournier tools in the MCP catalog."
},
"matched_tools": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Stable Legal Fournier public tool identifier."
},
"title": {
"type": "string",
"description": "Public tool title."
},
"category": {
"type": "string",
"enum": [
"immigration",
"tax",
"property",
"business",
"wealth",
"appointments",
"remote_work"
],
"description": "Primary case area for the tool."
},
"url": {
"type": "string",
"format": "uri",
"description": "Canonical English public tool URL."
},
"selected_url": {
"type": "string",
"format": "uri",
"description": "Best public URL after applying the preferred language."
},
"selected_language": {
"type": "string",
"enum": [
"en",
"es",
"fr"
],
"description": "Language used for selected_url."
},
"description": {
"type": "string",
"description": "Short description of the public tool."
},
"fit": {
"type": "string",
"enum": [
"strong",
"possible"
],
"description": "How strongly this public tool fits the case."
},
"score": {
"type": "number",
"description": "Internal ranking score used to order tools."
},
"why": {
"type": "array",
"items": {
"type": "string"
},
"description": "Reasons this public tool matched the case."
},
"use_when": {
"type": "array",
"items": {
"type": "string"
},
"description": "When agents should send users to this tool."
},
"not_for": {
"type": "array",
"items": {
"type": "string"
},
"description": "Cases where the tool should not be used alone."
},
"keywords": {
"type": "array",
"items": {
"type": "string"
},
"description": "Search and matching terms for the tool."
},
"complexity_triggers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Signals that should push the case toward human review."
},
"related_mcp_tools": {
"type": "array",
"items": {
"type": "string",
"enum": [
"find_legal_fournier_tool",
"run_legal_fournier_tool",
"get_paid_consultation_options",
"get_paid_call_availability",
"get_visa_options",
"check_beckham_eligibility",
"get_residency_path",
"explain_nie_process",
"compare_tax_regimes",
"route_to_legal_fournier_help",
"create_legal_fournier_contact_request"
]
},
"description": "MCP tools that pair with this public tool."
},
"related_resource_uris": {
"type": "array",
"items": {
"type": "string",
"description": "Canonical `legalfournier://` MCP resource URI for follow-up context."
},
"description": "Canonical MCP resources an agent can read next without leaving the server."
},
"agent_workflow": {
"type": "array",
"items": {
"type": "string"
},
"description": "Suggested agent workflow for this tool."
},
"handoff_trigger": {
"type": "string",
"description": "When the agent should escalate this tool flow."
},
"language_links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"language": {
"type": "string",
"enum": [
"en",
"es",
"fr"
],
"description": "Language for this public tool URL."
},
"url": {
"type": "string",
"format": "uri",
"description": "Language-specific public tool URL."
},
"title": {
"type": "string",
"description": "Human-readable title for this language URL."
}
},
"required": [
"language",
"url",
"title"
],
"additionalProperties": false
},
"description": "Available translated versions of the public tool page."
}
},
"required": [
"id",
"title",
"category",
"url",
"selected_url",
"selected_language",
"description",
"fit",
"score",
"why",
"use_when",
"not_for",
"keywords",
"complexity_triggers",
"related_mcp_tools",
"related_resource_uris",
"agent_workflow",
"handoff_trigger",
"language_links"
],
"additionalProperties": false
},
"description": "Ranked public tools and their agent workflow guidance."
},
"recommended_mcp_sequence": {
"type": "array",
"items": {
"type": "string",
"enum": [
"find_legal_fournier_tool",
"run_legal_fournier_tool",
"get_paid_consultation_options",
"get_paid_call_availability",
"get_visa_options",
"check_beckham_eligibility",
"get_residency_path",
"explain_nie_process",
"compare_tax_regimes",
"route_to_legal_fournier_help",
"create_legal_fournier_contact_request"
],
"description": "Tool name that would be useful as a next step."
},
"description": "Recommended MCP tool sequence before the public-page or human handoff."
},
"next_actions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Immediate actions for the agent after matching the public tool."
},
"handoff_url": {
"type": "string",
"format": "uri",
"description": "Site-controlled consultation handoff URL."
},
"catalog_resource_uri": {
"type": "string",
"description": "Canonical MCP resource URI for the complete public tool catalog."
},
"agent_use_rules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Rules for agents using the public tools with MCP outputs."
},
"legal_notice": {
"type": "string",
"description": "General legal notice that agents must preserve when using tool results."
}
},
"required": [
"query_summary",
"catalog_size",
"matched_tools",
"recommended_mcp_sequence",
"next_actions",
"handoff_url",
"catalog_resource_uri",
"agent_use_rules",
"legal_notice"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢run_legal_fournier_tool(tool_id, user_goal, facts, numbers, preferred_language, ...)
Run a Legal Fournier public calculator or screener directly inside MCP, returning intake screening, missing facts, complexity flags, and handoff guidance.
入力スキーマ
{
"type": "object",
"properties": {
"tool_id": {
"type": "string",
"enum": [
"best-visa-spain",
"digital-nomad-visa-eligibility",
"digital-nomad-visa-beckham-law",
"beckham-law-savings",
"tax-residency",
"work-remotely-spain",
"property-buyer-cost-risk",
"wealth-tax-inheritance",
"autonomo-sl-entrepreneur",
"permanent-establishment-risk",
"holding-company-risk",
"immigration-appointments"
],
"description": "Public Legal Fournier tool to run directly inside MCP."
},
"user_goal": {
"description": "Natural-language user goal or case summary.",
"type": "string"
},
"facts": {
"description": "General facts for the direct MCP screening run.",
"type": "array",
"items": {
"type": "string",
"description": "Non-sensitive fact supplied by the user."
}
},
"numbers": {
"description": "Optional numeric facts for calculator-style intake.",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Stable key for the number, such as monthly_income, property_price, asset_value, or revenue."
},
"value": {
"type": "number",
"description": "Numeric value supplied by the user."
},
"currency": {
"description": "Currency when the number is monetary.",
"type": "string",
"enum": [
"EUR",
"USD",
"other"
]
},
"unit": {
"description": "Optional unit when the value is not monetary.",
"type": "string"
}
},
"required": [
"key",
"value"
]
}
},
"preferred_language": {
"description": "Preferred public page language for selected_url.",
"type": "string",
"enum": [
"en",
"es",
"fr",
"unknown"
]
},
"complexity_signals": {
"description": "Signals that should trigger human review.",
"type": "array",
"items": {
"type": "string",
"description": "Specific blocker, edge case, or risk signal."
}
}
},
"required": [
"tool_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"tool_id": {
"type": "string",
"enum": [
"best-visa-spain",
"digital-nomad-visa-eligibility",
"digital-nomad-visa-beckham-law",
"beckham-law-savings",
"tax-residency",
"work-remotely-spain",
"property-buyer-cost-risk",
"wealth-tax-inheritance",
"autonomo-sl-entrepreneur",
"permanent-establishment-risk",
"holding-company-risk",
"immigration-appointments"
],
"description": "Tool that was run directly in MCP."
},
"title": {
"type": "string",
"description": "Public tool title."
},
"outcome": {
"type": "string",
"enum": [
"possible_fit",
"needs_more_facts",
"needs_human_review"
],
"description": "Direct MCP screening outcome."
},
"summary": {
"type": "string",
"description": "Short explanation of the direct MCP run."
},
"selected_url": {
"type": "string",
"format": "uri",
"description": "Best public URL after applying preferred language."
},
"selected_language": {
"type": "string",
"enum": [
"en",
"es",
"fr"
],
"description": "Language used for selected_url."
},
"public_tool_url": {
"type": "string",
"format": "uri",
"description": "Canonical English public tool URL."
},
"missing_facts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Facts the agent should collect before relying on the screening output."
},
"complexity_flags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Signals that make human review advisable."
},
"direct_screening_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Direct MCP screening notes and usage caveats."
},
"numeric_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Calculator-style numeric notes, with current-law caveats."
},
"handoff_recommended": {
"type": "boolean",
"description": "Whether the direct MCP run recommends Legal Fournier human review."
},
"handoff_reason": {
"type": "string",
"description": "Reason for the handoff recommendation or caveat."
},
"handoff_url": {
"type": "string",
"format": "uri",
"description": "Legal Fournier consultation handoff URL."
},
"related_mcp_tools": {
"type": "array",
"items": {
"type": "string",
"enum": [
"find_legal_fournier_tool",
"run_legal_fournier_tool",
"get_paid_consultation_options",
"get_paid_call_availability",
"get_visa_options",
"check_beckham_eligibility",
"get_residency_path",
"explain_nie_process",
"compare_tax_regimes",
"route_to_legal_fournier_help",
"create_legal_fournier_contact_request"
],
"description": "Tool name that would be useful as a next step."
},
"description": "Other MCP tools paired with this direct run."
},
"related_resource_uris": {
"type": "array",
"items": {
"type": "string",
"description": "Canonical `legalfournier://` MCP resource URI for follow-up context."
},
"description": "Canonical MCP resources an agent can read next without leaving the server."
},
"next_actions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Immediate next actions for the agent."
},
"update_policy": {
"type": "array",
"items": {
"type": "string"
},
"description": "How this direct MCP runner should be updated and verified."
},
"legal_notice": {
"type": "string",
"description": "General legal notice agents must preserve."
}
},
"required": [
"tool_id",
"title",
"outcome",
"summary",
"selected_url",
"selected_language",
"public_tool_url",
"missing_facts",
"complexity_flags",
"direct_screening_notes",
"numeric_notes",
"handoff_recommended",
"handoff_reason",
"handoff_url",
"related_mcp_tools",
"related_resource_uris",
"next_actions",
"update_policy",
"legal_notice"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_paid_consultation_options
Discover and arrange paid consultations with Legal Fournier through x402 in USDC on Base. Returns live options for a written email consultation and a 45-minute call, including current prices, fulfillment terms, request schemas, quote endpoints, and payment endpoints. Agents can use the returned HTTPS endpoints, after explicit user authorization, to submit the email consultation or book the call. This MCP tool is read-only and never creates an order or submits payment itself.
入力スキーマ
{
"type": "object",
"properties": {}
}出力スキーマ
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true
},
"openapi_url": {
"type": "string",
"format": "uri"
},
"offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"enum": [
"email_consultation",
"call_consultation"
]
},
"name": {
"type": "string"
},
"price_usd": {
"type": "string"
},
"amount_atomic": {
"type": "string"
},
"currency": {
"type": "string",
"const": "USDC"
},
"network": {
"type": "string"
},
"payment_protocol": {
"type": "string",
"const": "x402-v2"
},
"availability": {
"type": "string",
"enum": [
"asynchronous",
"scheduled"
]
},
"quote_endpoint": {
"type": "string",
"format": "uri"
},
"payment_endpoint": {
"type": "string",
"format": "uri"
},
"response_sla": {
"type": "string"
},
"duration_minutes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"availability_endpoint": {
"type": "string",
"format": "uri"
},
"confirmation": {
"type": "string"
}
},
"required": [
"id",
"name",
"price_usd",
"amount_atomic",
"currency",
"network",
"payment_protocol",
"availability",
"quote_endpoint",
"payment_endpoint"
],
"additionalProperties": false
}
},
"settlement_notice": {
"type": "string"
},
"agent_instructions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"success",
"openapi_url",
"offers",
"settlement_notice",
"agent_instructions"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_paid_call_availability(from, to, timezone)
Read live Cal.com availability for the 45-minute agent-paid Legal Fournier consultation. This tool never creates a quote, booking, order, or payment.
入力スキーマ
{
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "Start of the availability window as an ISO 8601 date-time."
},
"to": {
"type": "string",
"description": "End of the availability window as an ISO 8601 date-time."
},
"timezone": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "IANA timezone for the customer, such as Europe/Madrid."
}
},
"required": [
"from",
"to",
"timezone"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true
},
"openapi_url": {
"type": "string",
"format": "uri"
},
"timezone": {
"type": "string"
},
"duration_minutes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"booking_enabled": {
"type": "boolean"
},
"fulfillment_mode": {
"type": "string"
},
"fulfillment_notice": {
"type": "string"
},
"slots": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"start",
"end"
],
"additionalProperties": false
}
},
"quote_endpoint": {
"type": "string",
"format": "uri"
},
"payment_endpoint": {
"type": "string",
"format": "uri"
}
},
"required": [
"success",
"openapi_url",
"timezone",
"duration_minutes",
"booking_enabled",
"fulfillment_mode",
"fulfillment_notice",
"slots",
"quote_endpoint",
"payment_endpoint"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_visa_options(nationality, income_source, intent, employer_location, has_spanish_job_offer, ...)
Rank Spain residence routes using evergreen logic and return decision traces, next actions, and canonical MCP resources for the leading branches.
入力スキーマ
{
"type": "object",
"properties": {
"nationality": {
"type": "string",
"description": "Applicant nationality as a country name or ISO-style country code."
},
"income_source": {
"type": "string",
"enum": [
"employee",
"freelancer",
"passive"
],
"description": "Main source of income for the move."
},
"intent": {
"type": "string",
"enum": [
"work",
"retire",
"invest"
],
"description": "Main relocation intent."
},
"employer_location": {
"description": "Where the main employer or client base is located, if known.",
"type": "string",
"enum": [
"spain",
"outside_spain",
"mixed",
"unknown"
]
},
"has_spanish_job_offer": {
"description": "Whether the applicant already has a Spanish job offer.",
"type": "boolean"
},
"has_eu_family_link": {
"description": "Whether an EU family-member route may need separate review.",
"type": "boolean"
},
"eu_family_relationship": {
"description": "Optional relationship label when an EU-family route may be relevant.",
"type": "string",
"enum": [
"spouse_or_registered_partner",
"child_or_dependent_parent",
"extended_family_or_other",
"unknown"
]
},
"investment_profile": {
"description": "Whether the investment plan is passive or tied to an operating business.",
"type": "string",
"enum": [
"passive_capital",
"operating_business",
"none"
]
}
},
"required": [
"nationality",
"income_source",
"intent"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"profile_summary": {
"type": "string",
"description": "One-line summary of the screened profile."
},
"nationality_classification": {
"type": "string",
"enum": [
"eu_eea_swiss",
"non_eu"
],
"description": "High-level nationality bucket used by the route logic."
},
"decision_trace": {
"type": "array",
"items": {
"type": "object",
"properties": {
"factor": {
"type": "string",
"description": "Fact bucket or legal factor that was evaluated."
},
"finding": {
"type": "string",
"description": "What the tool concluded about that factor."
},
"impact": {
"type": "string",
"description": "How the finding changed the legal analysis."
}
},
"required": [
"factor",
"finding",
"impact"
],
"additionalProperties": false
},
"description": "Structured trace of the main route-selection factors."
},
"key_rules_applied": {
"type": "array",
"items": {
"type": "string",
"description": "Stable legal rule used by the screening logic."
},
"description": "Stable rules that drove the recommendation."
},
"review_level": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"description": "How much human review is still advisable before treating the result as filing-ready."
},
"official_legal_sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"authority": {
"type": "string",
"description": "Official authority publishing the source."
},
"title": {
"type": "string",
"description": "Title or pinpoint label for the legal source."
},
"url": {
"type": "string",
"format": "uri",
"description": "Official source URL."
},
"relevance": {
"type": "string",
"description": "Why this source matters to the tool or resource output."
}
},
"required": [
"authority",
"title",
"url",
"relevance"
],
"additionalProperties": false
},
"description": "Official legal sources that anchor the recommendation."
},
"current_verification_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area of the answer that may need live verification."
},
"reason": {
"type": "string",
"description": "Why the answer cannot safely freeze this point as timeless."
},
"check_when": {
"type": "string",
"description": "When the agent should stop and verify the current rule or practice."
},
"official_source_hint": {
"type": "string",
"description": "Official-source hint for the verification step."
}
},
"required": [
"area",
"reason",
"check_when",
"official_source_hint"
],
"additionalProperties": false
},
"description": "Live-verification warnings for volatile or fact-sensitive points."
},
"ranked_routes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"route_id": {
"type": "string",
"description": "Stable route identifier."
},
"title": {
"type": "string",
"description": "Human-readable route title."
},
"fit": {
"type": "string",
"enum": [
"strong",
"possible",
"unlikely"
],
"description": "How well the route fits the described profile."
},
"score": {
"type": "number",
"description": "Internal ranking score used to order the routes."
},
"why": {
"type": "array",
"items": {
"type": "string",
"description": "Profile-specific reason for this route ranking."
},
"description": "Reasons the route was ranked here."
},
"evergreen_requirements": {
"type": "array",
"items": {
"type": "string",
"description": "Stable, non-volatile requirement logic for the route."
},
"description": "Stable requirement summary."
},
"common_use_cases": {
"type": "array",
"items": {
"type": "string",
"description": "Typical factual pattern for the route."
},
"description": "Typical use cases for the route."
},
"next_step": {
"type": "string",
"description": "Immediate next action to validate or progress the route."
},
"related_resource_uri": {
"type": "string",
"description": "Canonical MCP resource URI for the route pack."
}
},
"required": [
"route_id",
"title",
"fit",
"score",
"why",
"evergreen_requirements",
"common_use_cases",
"next_step",
"related_resource_uri"
],
"additionalProperties": false
},
"description": "Ranked visa or residence routes."
},
"ruled_out_routes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Route that was intentionally ruled out."
},
"reason": {
"type": "string",
"description": "Why that route is not being recommended under stable logic."
}
},
"required": [
"title",
"reason"
],
"additionalProperties": false
},
"description": "Common routes ruled out by stable legal logic."
},
"general_notes": {
"type": "array",
"items": {
"type": "string",
"description": "General note about the recommendation set."
},
"description": "General notes that apply across the route list."
},
"next_actions": {
"type": "array",
"items": {
"type": "string",
"description": "Immediate next action for the agent or user."
},
"description": "Next actions to progress the analysis."
},
"suggested_follow_up_tools": {
"type": "array",
"items": {
"type": "string",
"enum": [
"find_legal_fournier_tool",
"run_legal_fournier_tool",
"get_paid_consultation_options",
"get_paid_call_availability",
"get_visa_options",
"check_beckham_eligibility",
"get_residency_path",
"explain_nie_process",
"compare_tax_regimes",
"route_to_legal_fournier_help",
"create_legal_fournier_contact_request"
],
"description": "Tool name that would be useful as a next step."
},
"description": "Tool calls that are likely to advance the analysis."
},
"related_resource_uris": {
"type": "array",
"items": {
"type": "string",
"description": "Canonical `legalfournier://` MCP resource URI for follow-up context."
},
"description": "Canonical MCP resources an agent can read next without leaving the server."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Short label for the external reference."
},
"url": {
"type": "string",
"format": "uri",
"description": "Secondary follow-up URL for optional human or website context."
},
"reason": {
"type": "string",
"description": "Why the external reference may still help after using the MCP result."
}
},
"required": [
"label",
"url",
"reason"
],
"additionalProperties": false
},
"description": "Secondary Legal Fournier references, demoted behind MCP-native context."
}
},
"required": [
"profile_summary",
"nationality_classification",
"decision_trace",
"key_rules_applied",
"review_level",
"official_legal_sources",
"current_verification_flags",
"ranked_routes",
"ruled_out_routes",
"general_notes",
"next_actions",
"suggested_follow_up_tools",
"related_resource_uris",
"references"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢check_beckham_eligibility(years_since_last_spanish_residency, employment_type, move_reason, ownership_band)
Screen Spain's Beckham regime using qualitative gatechecks, returning the rule trace, review level, and canonical MCP resources for follow-up.
入力スキーマ
{
"type": "object",
"properties": {
"years_since_last_spanish_residency": {
"type": "number",
"minimum": 0,
"description": "Number of years since the applicant was last a Spanish tax resident."
},
"employment_type": {
"type": "string",
"enum": [
"spanish_employee",
"foreign_remote_employee",
"director_lt25",
"director_gte25",
"self_employed",
"highly_qualified_professional",
"unknown"
],
"description": "Employment structure that will support the move."
},
"move_reason": {
"type": "string",
"enum": [
"new_spanish_job",
"foreign_remote_work",
"startup_or_innovation",
"intragroup_transfer",
"family_move",
"other"
],
"description": "Main reason for relocating to Spain."
},
"ownership_band": {
"description": "Optional ownership context for director-style cases.",
"type": "string",
"enum": [
"none",
"under_25",
"25_or_more"
]
}
},
"required": [
"years_since_last_spanish_residency",
"employment_type",
"move_reason"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"eligible",
"not_eligible",
"needs_more_info"
],
"description": "High-level Beckham eligibility outcome."
},
"summary": {
"type": "string",
"description": "One-line explanation of the result."
},
"decision_trace": {
"type": "array",
"items": {
"type": "object",
"properties": {
"factor": {
"type": "string",
"description": "Fact bucket or legal factor that was evaluated."
},
"finding": {
"type": "string",
"description": "What the tool concluded about that factor."
},
"impact": {
"type": "string",
"description": "How the finding changed the legal analysis."
}
},
"required": [
"factor",
"finding",
"impact"
],
"additionalProperties": false
},
"description": "Structured trace of the main Beckham screening factors."
},
"key_rules_applied": {
"type": "array",
"items": {
"type": "string",
"description": "Stable rule that drove the Beckham screen."
},
"description": "Stable rules applied by the tool."
},
"review_level": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"description": "How much human review is still advisable before treating the result as filing-ready."
},
"official_legal_sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"authority": {
"type": "string",
"description": "Official authority publishing the source."
},
"title": {
"type": "string",
"description": "Title or pinpoint label for the legal source."
},
"url": {
"type": "string",
"format": "uri",
"description": "Official source URL."
},
"relevance": {
"type": "string",
"description": "Why this source matters to the tool or resource output."
}
},
"required": [
"authority",
"title",
"url",
"relevance"
],
"additionalProperties": false
},
"description": "Official legal sources anchoring the Beckham analysis."
},
"current_verification_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area of the answer that may need live verification."
},
"reason": {
"type": "string",
"description": "Why the answer cannot safely freeze this point as timeless."
},
"check_when": {
"type": "string",
"description": "When the agent should stop and verify the current rule or practice."
},
"official_source_hint": {
"type": "string",
"description": "Official-source hint for the verification step."
}
},
"required": [
"area",
"reason",
"check_when",
"official_source_hint"
],
"additionalProperties": false
},
"description": "Live-verification warnings for fact-sensitive or time-sensitive Beckham points."
},
"reasons": {
"type": "array",
"items": {
"type": "string",
"description": "Positive signal supporting eligibility."
},
"description": "Positive signals supporting the result."
},
"blocking_issues": {
"type": "array",
"items": {
"type": "string",
"description": "Issue currently blocking or weakening eligibility."
},
"description": "Blocking or weakening issues."
},
"qualifying_paths": {
"type": "array",
"items": {
"type": "string",
"description": "Recognized regime entry path that may apply."
},
"description": "Potential qualifying paths."
},
"next_steps": {
"type": "array",
"items": {
"type": "string",
"description": "Immediate next action for the applicant or agent."
},
"description": "Suggested next steps."
},
"suggested_follow_up_tools": {
"type": "array",
"items": {
"type": "string",
"enum": [
"find_legal_fournier_tool",
"run_legal_fournier_tool",
"get_paid_consultation_options",
"get_paid_call_availability",
"get_visa_options",
"check_beckham_eligibility",
"get_residency_path",
"explain_nie_process",
"compare_tax_regimes",
"route_to_legal_fournier_help",
"create_legal_fournier_contact_request"
],
"description": "Tool name that would be useful as a next step."
},
"description": "Tool calls that are likely to advance the analysis."
},
"related_resource_uris": {
"type": "array",
"items": {
"type": "string",
"description": "Canonical `legalfournier://` MCP resource URI for follow-up context."
},
"description": "Canonical MCP resources an agent can read next without leaving the server."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Short label for the external reference."
},
"url": {
"type": "string",
"format": "uri",
"description": "Secondary follow-up URL for optional human or website context."
},
"reason": {
"type": "string",
"description": "Why the external reference may still help after using the MCP result."
}
},
"required": [
"label",
"url",
"reason"
],
"additionalProperties": false
},
"description": "Secondary Legal Fournier references."
}
},
"required": [
"status",
"summary",
"decision_trace",
"key_rules_applied",
"review_level",
"official_legal_sources",
"current_verification_flags",
"reasons",
"blocking_issues",
"qualifying_paths",
"next_steps",
"suggested_follow_up_tools",
"related_resource_uris",
"references"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_residency_path(current_status, years_in_spain, nationality_track, special_nationality_basis, has_absence_concerns)
Explain the next permanent-residency or nationality milestone from current status and time in Spain, with explicit caution flags for counting issues.
入力スキーマ
{
"type": "object",
"properties": {
"current_status": {
"type": "string",
"enum": [
"new_arrival",
"temporary_resident",
"digital_nomad",
"eu_citizen_registered",
"eu_family_member_resident",
"student",
"long_term_resident",
"irregular_status",
"citizenship_applicant"
],
"description": "Current Spanish immigration or nationality status."
},
"years_in_spain": {
"type": "number",
"minimum": 0,
"description": "Years already spent in Spain under the relevant stay or residence history."
},
"nationality_track": {
"description": "Optional nationality timeline group for a more specific nationality answer.",
"type": "string",
"enum": [
"unknown",
"standard_10_year",
"ibero_2_year",
"one_year_special",
"refugee_5_year"
]
},
"special_nationality_basis": {
"description": "Optional basis for the one-year nationality track when that exception is being claimed.",
"type": "string",
"enum": [
"not_specified",
"born_in_spain",
"married_to_spanish",
"widowed_from_spanish",
"spanish_parent_or_grandparent",
"guardianship_of_spanish_person"
]
},
"has_absence_concerns": {
"description": "Whether absences or continuity problems may weaken the residence or nationality clock.",
"type": "boolean"
}
},
"required": [
"current_status",
"years_in_spain"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "Short explanation of where the person sits on the path."
},
"permanent_residency_status": {
"type": "string",
"enum": [
"not_started",
"building_time",
"review_needed",
"likely_eligible",
"already_long_term"
],
"description": "Long-term residence stage."
},
"nationality_status": {
"type": "string",
"enum": [
"unknown_track",
"review_needed",
"building_time",
"likely_eligible",
"already_in_process"
],
"description": "Nationality stage given the provided track information."
},
"decision_trace": {
"type": "array",
"items": {
"type": "object",
"properties": {
"factor": {
"type": "string",
"description": "Fact bucket or legal factor that was evaluated."
},
"finding": {
"type": "string",
"description": "What the tool concluded about that factor."
},
"impact": {
"type": "string",
"description": "How the finding changed the legal analysis."
}
},
"required": [
"factor",
"finding",
"impact"
],
"additionalProperties": false
},
"description": "Structured trace of the main timing factors."
},
"key_rules_applied": {
"type": "array",
"items": {
"type": "string",
"description": "Stable rule used in the timeline analysis."
},
"description": "Stable rules applied by the tool."
},
"review_level": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"description": "How much human review is still advisable before treating the result as filing-ready."
},
"official_legal_sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"authority": {
"type": "string",
"description": "Official authority publishing the source."
},
"title": {
"type": "string",
"description": "Title or pinpoint label for the legal source."
},
"url": {
"type": "string",
"format": "uri",
"description": "Official source URL."
},
"relevance": {
"type": "string",
"description": "Why this source matters to the tool or resource output."
}
},
"required": [
"authority",
"title",
"url",
"relevance"
],
"additionalProperties": false
},
"description": "Official legal sources anchoring the residence and nationality timeline analysis."
},
"current_verification_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area of the answer that may need live verification."
},
"reason": {
"type": "string",
"description": "Why the answer cannot safely freeze this point as timeless."
},
"check_when": {
"type": "string",
"description": "When the agent should stop and verify the current rule or practice."
},
"official_source_hint": {
"type": "string",
"description": "Official-source hint for the verification step."
}
},
"required": [
"area",
"reason",
"check_when",
"official_source_hint"
],
"additionalProperties": false
},
"description": "Live-verification warnings for route, continuity, or timing issues."
},
"milestones": {
"type": "array",
"items": {
"type": "string",
"description": "Milestone that has been reached or remains pending."
},
"description": "Key milestones on the path."
},
"next_steps": {
"type": "array",
"items": {
"type": "string",
"description": "Immediate next action."
},
"description": "Immediate next steps."
},
"caution_notes": {
"type": "array",
"items": {
"type": "string",
"description": "Important caution for this path."
},
"description": "Important cautions."
},
"suggested_follow_up_tools": {
"type": "array",
"items": {
"type": "string",
"enum": [
"find_legal_fournier_tool",
"run_legal_fournier_tool",
"get_paid_consultation_options",
"get_paid_call_availability",
"get_visa_options",
"check_beckham_eligibility",
"get_residency_path",
"explain_nie_process",
"compare_tax_regimes",
"route_to_legal_fournier_help",
"create_legal_fournier_contact_request"
],
"description": "Tool name that would be useful as a next step."
},
"description": "Tool calls that are likely to advance the analysis."
},
"related_resource_uris": {
"type": "array",
"items": {
"type": "string",
"description": "Canonical `legalfournier://` MCP resource URI for follow-up context."
},
"description": "Canonical MCP resources an agent can read next without leaving the server."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Short label for the external reference."
},
"url": {
"type": "string",
"format": "uri",
"description": "Secondary follow-up URL for optional human or website context."
},
"reason": {
"type": "string",
"description": "Why the external reference may still help after using the MCP result."
}
},
"required": [
"label",
"url",
"reason"
],
"additionalProperties": false
},
"description": "Secondary Legal Fournier references."
}
},
"required": [
"summary",
"permanent_residency_status",
"nationality_status",
"decision_trace",
"key_rules_applied",
"review_level",
"official_legal_sources",
"current_verification_flags",
"milestones",
"next_steps",
"caution_notes",
"suggested_follow_up_tools",
"related_resource_uris",
"references"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢explain_nie_process
Return the stable NIE and TIE workflow, the key procedural distinctions, and the canonical process resource for agents.
入力スキーマ
{
"type": "object",
"properties": {}
}出力スキーマ
{
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "Short overview of the NIE/TIE process."
},
"decision_trace": {
"type": "array",
"items": {
"type": "object",
"properties": {
"factor": {
"type": "string",
"description": "Fact bucket or legal factor that was evaluated."
},
"finding": {
"type": "string",
"description": "What the tool concluded about that factor."
},
"impact": {
"type": "string",
"description": "How the finding changed the legal analysis."
}
},
"required": [
"factor",
"finding",
"impact"
],
"additionalProperties": false
},
"description": "Structured trace of the procedural distinctions that matter."
},
"key_rules_applied": {
"type": "array",
"items": {
"type": "string",
"description": "Stable procedural rule applied by the tool."
},
"description": "Stable procedural rules applied by the tool."
},
"review_level": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"description": "How much human review is still advisable before treating the result as filing-ready."
},
"official_legal_sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"authority": {
"type": "string",
"description": "Official authority publishing the source."
},
"title": {
"type": "string",
"description": "Title or pinpoint label for the legal source."
},
"url": {
"type": "string",
"format": "uri",
"description": "Official source URL."
},
"relevance": {
"type": "string",
"description": "Why this source matters to the tool or resource output."
}
},
"required": [
"authority",
"title",
"url",
"relevance"
],
"additionalProperties": false
},
"description": "Official legal and administrative sources anchoring the procedure."
},
"current_verification_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area of the answer that may need live verification."
},
"reason": {
"type": "string",
"description": "Why the answer cannot safely freeze this point as timeless."
},
"check_when": {
"type": "string",
"description": "When the agent should stop and verify the current rule or practice."
},
"official_source_hint": {
"type": "string",
"description": "Official-source hint for the verification step."
}
},
"required": [
"area",
"reason",
"check_when",
"official_source_hint"
],
"additionalProperties": false
},
"description": "Live-verification warnings for office-level or fee-level volatility."
},
"key_distinctions": {
"type": "array",
"items": {
"type": "string",
"description": "Stable distinction between NIE and TIE handling."
},
"description": "Key distinctions that agents should preserve."
},
"forms": {
"type": "array",
"items": {
"type": "string",
"description": "Relevant form or administrative reference."
},
"description": "Relevant forms and administrative references."
},
"steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"step": {
"type": "number",
"description": "Step number in the procedure."
},
"title": {
"type": "string",
"description": "Short title for the step."
},
"detail": {
"type": "string",
"description": "What happens in that step."
}
},
"required": [
"step",
"title",
"detail"
],
"additionalProperties": false
},
"description": "Ordered process steps."
},
"common_mistakes": {
"type": "array",
"items": {
"type": "string",
"description": "Common mistake applicants make."
},
"description": "Common mistakes in NIE/TIE processing."
},
"next_actions": {
"type": "array",
"items": {
"type": "string",
"description": "Immediate next procedural action."
},
"description": "Next actions to progress the procedure."
},
"suggested_follow_up_tools": {
"type": "array",
"items": {
"type": "string",
"enum": [
"find_legal_fournier_tool",
"run_legal_fournier_tool",
"get_paid_consultation_options",
"get_paid_call_availability",
"get_visa_options",
"check_beckham_eligibility",
"get_residency_path",
"explain_nie_process",
"compare_tax_regimes",
"route_to_legal_fournier_help",
"create_legal_fournier_contact_request"
],
"description": "Tool name that would be useful as a next step."
},
"description": "Tool calls that are likely to advance the analysis."
},
"related_resource_uris": {
"type": "array",
"items": {
"type": "string",
"description": "Canonical `legalfournier://` MCP resource URI for follow-up context."
},
"description": "Canonical MCP resources an agent can read next without leaving the server."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Short label for the external reference."
},
"url": {
"type": "string",
"format": "uri",
"description": "Secondary follow-up URL for optional human or website context."
},
"reason": {
"type": "string",
"description": "Why the external reference may still help after using the MCP result."
}
},
"required": [
"label",
"url",
"reason"
],
"additionalProperties": false
},
"description": "Secondary Legal Fournier references."
}
},
"required": [
"summary",
"decision_trace",
"key_rules_applied",
"review_level",
"official_legal_sources",
"current_verification_flags",
"key_distinctions",
"forms",
"steps",
"common_mistakes",
"next_actions",
"suggested_follow_up_tools",
"related_resource_uris",
"references"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢compare_tax_regimes(employment_type, has_foreign_income, has_significant_foreign_assets, prefers_predictability)
Compare Beckham versus standard Spanish resident taxation conceptually, returning reasoning, review level, and canonical MCP resources instead of rate tables.
入力スキーマ
{
"type": "object",
"properties": {
"employment_type": {
"description": "Employment structure to test against the conceptual tax comparison.",
"type": "string",
"enum": [
"spanish_employee",
"foreign_remote_employee",
"director_lt25",
"director_gte25",
"self_employed",
"highly_qualified_professional",
"unknown"
]
},
"has_foreign_income": {
"description": "Whether foreign-source income is material to the profile.",
"type": "boolean"
},
"has_significant_foreign_assets": {
"description": "Whether foreign assets are materially relevant to planning.",
"type": "boolean"
},
"prefers_predictability": {
"description": "Whether the applicant values a simpler, more predictable regime structure.",
"type": "boolean"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"recommendation": {
"type": "string",
"enum": [
"beckham",
"standard_irpf",
"depends"
],
"description": "Conceptual starting recommendation."
},
"summary": {
"type": "string",
"description": "Short explanation of the recommendation."
},
"decision_trace": {
"type": "array",
"items": {
"type": "object",
"properties": {
"factor": {
"type": "string",
"description": "Fact bucket or legal factor that was evaluated."
},
"finding": {
"type": "string",
"description": "What the tool concluded about that factor."
},
"impact": {
"type": "string",
"description": "How the finding changed the legal analysis."
}
},
"required": [
"factor",
"finding",
"impact"
],
"additionalProperties": false
},
"description": "Structured trace of the main tax-comparison factors."
},
"key_rules_applied": {
"type": "array",
"items": {
"type": "string",
"description": "Stable rule used in the tax comparison."
},
"description": "Stable rules applied by the tool."
},
"review_level": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"description": "How much human review is still advisable before treating the result as filing-ready."
},
"official_legal_sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"authority": {
"type": "string",
"description": "Official authority publishing the source."
},
"title": {
"type": "string",
"description": "Title or pinpoint label for the legal source."
},
"url": {
"type": "string",
"format": "uri",
"description": "Official source URL."
},
"relevance": {
"type": "string",
"description": "Why this source matters to the tool or resource output."
}
},
"required": [
"authority",
"title",
"url",
"relevance"
],
"additionalProperties": false
},
"description": "Official tax and mobility sources anchoring the comparison."
},
"current_verification_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area of the answer that may need live verification."
},
"reason": {
"type": "string",
"description": "Why the answer cannot safely freeze this point as timeless."
},
"check_when": {
"type": "string",
"description": "When the agent should stop and verify the current rule or practice."
},
"official_source_hint": {
"type": "string",
"description": "Official-source hint for the verification step."
}
},
"required": [
"area",
"reason",
"check_when",
"official_source_hint"
],
"additionalProperties": false
},
"description": "Live-verification warnings for entry-path, timing, or filing issues."
},
"likely_fit_notes": {
"type": "array",
"items": {
"type": "string",
"description": "Why the recommendation leans this way."
},
"description": "Why the profile leans toward a given regime."
},
"comparison": {
"type": "array",
"items": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "Comparison topic."
},
"beckham": {
"type": "string",
"description": "How Beckham generally behaves on that topic."
},
"standard_irpf": {
"type": "string",
"description": "How the standard resident-tax regime behaves on that topic."
}
},
"required": [
"topic",
"beckham",
"standard_irpf"
],
"additionalProperties": false
},
"description": "Topic-by-topic conceptual comparison."
},
"caveats": {
"type": "array",
"items": {
"type": "string",
"description": "Important caveat."
},
"description": "Caveats that limit the comparison."
},
"next_actions": {
"type": "array",
"items": {
"type": "string",
"description": "Immediate next action for the analysis."
},
"description": "Next actions that sharpen the tax answer."
},
"suggested_follow_up_tools": {
"type": "array",
"items": {
"type": "string",
"enum": [
"find_legal_fournier_tool",
"run_legal_fournier_tool",
"get_paid_consultation_options",
"get_paid_call_availability",
"get_visa_options",
"check_beckham_eligibility",
"get_residency_path",
"explain_nie_process",
"compare_tax_regimes",
"route_to_legal_fournier_help",
"create_legal_fournier_contact_request"
],
"description": "Tool name that would be useful as a next step."
},
"description": "Tool calls that are likely to advance the analysis."
},
"related_resource_uris": {
"type": "array",
"items": {
"type": "string",
"description": "Canonical `legalfournier://` MCP resource URI for follow-up context."
},
"description": "Canonical MCP resources an agent can read next without leaving the server."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Short label for the external reference."
},
"url": {
"type": "string",
"format": "uri",
"description": "Secondary follow-up URL for optional human or website context."
},
"reason": {
"type": "string",
"description": "Why the external reference may still help after using the MCP result."
}
},
"required": [
"label",
"url",
"reason"
],
"additionalProperties": false
},
"description": "Secondary Legal Fournier references."
}
},
"required": [
"recommendation",
"summary",
"decision_trace",
"key_rules_applied",
"review_level",
"official_legal_sources",
"current_verification_flags",
"likely_fit_notes",
"comparison",
"caveats",
"next_actions",
"suggested_follow_up_tools",
"related_resource_uris",
"references"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢route_to_legal_fournier_help(area, urgency, blockers, preferred_language, already_filed)
Decide whether a Spain legal matter should be escalated to Legal Fournier and return a service match, preparation checklist, and ready-to-send handoff message.
入力スキーマ
{
"type": "object",
"properties": {
"area": {
"type": "string",
"enum": [
"visa_planning",
"eu_family_route",
"beckham",
"residency_path",
"nie_tie",
"tax_regimes",
"nationality"
],
"description": "Area of Spain legal help that needs human escalation."
},
"urgency": {
"description": "How quickly the user needs human help.",
"type": "string",
"enum": [
"normal",
"soon",
"urgent"
]
},
"blockers": {
"description": "Known blockers that make a self-serve answer less reliable.",
"type": "array",
"items": {
"type": "string",
"description": "Specific blocker, uncertainty, or live issue requiring human review."
}
},
"preferred_language": {
"description": "Preferred language for the human handoff.",
"type": "string",
"enum": [
"en",
"es",
"fr"
]
},
"already_filed": {
"description": "Whether the user already has a live filing, notice, denial, or active procedure.",
"type": "boolean"
}
},
"required": [
"area"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"should_escalate": {
"type": "boolean",
"description": "Whether human escalation is recommended from the supplied facts."
},
"urgency": {
"type": "string",
"enum": [
"normal",
"soon",
"urgent"
],
"description": "Urgency level used for the handoff recommendation."
},
"summary": {
"type": "string",
"description": "Short explanation of the handoff recommendation."
},
"representation_notice": {
"type": "string",
"description": "Legal notice explaining that contact or booking does not itself create representation."
},
"recommended_service": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Best-fit Legal Fournier service line or contact route."
},
"url": {
"type": "string",
"format": "uri",
"description": "Service or contact URL for the handoff."
},
"reason": {
"type": "string",
"description": "Why this route fits the case."
}
},
"required": [
"title",
"url",
"reason"
],
"additionalProperties": false
},
"booking_url": {
"type": "string",
"format": "uri",
"description": "Preferred consultation-booking URL when the user wants direct legal advice now."
},
"why_now": {
"type": "array",
"items": {
"type": "string",
"description": "Reason the handoff should happen now."
},
"description": "Reasons supporting escalation."
},
"what_to_prepare": {
"type": "array",
"items": {
"type": "string",
"description": "Fact or document to prepare before contacting the firm."
},
"description": "What the agent should gather for the handoff."
},
"intake_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Stable intake field key for downstream routing or form mapping."
},
"label": {
"type": "string",
"description": "Human-readable intake field label."
},
"value": {
"type": "string",
"description": "Current field value or an empty string when the user still needs to supply it."
},
"required": {
"type": "boolean",
"description": "Whether the field should be collected before handoff."
},
"status": {
"type": "string",
"enum": [
"filled",
"needs_input"
],
"description": "Whether the intake field is already filled or still needs user input."
},
"guidance": {
"type": "string",
"description": "Why the field matters or how the agent should fill it."
}
},
"required": [
"key",
"label",
"value",
"required",
"status",
"guidance"
],
"additionalProperties": false
},
"description": "Structured intake payload an agent can map into a contact form, CRM, or booking handoff."
},
"agent_handoff_message": {
"type": "string",
"description": "Ready-to-send summary an agent can reuse when escalating to Legal Fournier."
},
"suggested_follow_up_tools": {
"type": "array",
"items": {
"type": "string",
"enum": [
"find_legal_fournier_tool",
"run_legal_fournier_tool",
"get_paid_consultation_options",
"get_paid_call_availability",
"get_visa_options",
"check_beckham_eligibility",
"get_residency_path",
"explain_nie_process",
"compare_tax_regimes",
"route_to_legal_fournier_help",
"create_legal_fournier_contact_request"
],
"description": "Tool name that would be useful as a next step."
},
"description": "Tool calls that are likely to advance the analysis."
},
"related_resource_uris": {
"type": "array",
"items": {
"type": "string",
"description": "Canonical `legalfournier://` MCP resource URI for follow-up context."
},
"description": "Canonical MCP resources an agent can read next without leaving the server."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Short label for the external reference."
},
"url": {
"type": "string",
"format": "uri",
"description": "Secondary follow-up URL for optional human or website context."
},
"reason": {
"type": "string",
"description": "Why the external reference may still help after using the MCP result."
}
},
"required": [
"label",
"url",
"reason"
],
"additionalProperties": false
},
"description": "Secondary Legal Fournier references for the handoff."
}
},
"required": [
"should_escalate",
"urgency",
"summary",
"representation_notice",
"recommended_service",
"booking_url",
"why_now",
"what_to_prepare",
"intake_fields",
"agent_handoff_message",
"suggested_follow_up_tools",
"related_resource_uris",
"references"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡create_legal_fournier_contact_request(confirmed_consent, consent_to_contact, name, email, phone, ...)
Create an accepted Legal Fournier lead from an agent workflow after explicit user consent. This is a consequential action: call only when the user has asked to contact Legal Fournier and has consented to follow-up.
入力スキーマ
{
"type": "object",
"properties": {
"confirmed_consent": {
"type": "boolean",
"const": true,
"description": "Must be true only after the user explicitly asks the agent to contact Legal Fournier."
},
"consent_to_contact": {
"type": "boolean",
"const": true,
"description": "Must be true only after the user consents to Legal Fournier contacting them."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "User's name for Legal Fournier follow-up."
},
"email": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "User's email address for Legal Fournier follow-up."
},
"phone": {
"description": "Optional phone or WhatsApp number.",
"type": "string",
"maxLength": 80
},
"preferred_language": {
"description": "Preferred follow-up language.",
"type": "string",
"enum": [
"en",
"es",
"fr"
]
},
"legal_area": {
"type": "string",
"enum": [
"visa_planning",
"eu_family_route",
"beckham",
"residency_path",
"nie_tie",
"tax_regimes",
"nationality",
"property",
"business",
"wealth",
"appointments",
"other"
],
"description": "Main legal or tax area for the request."
},
"urgency": {
"description": "Requested urgency for Legal Fournier review.",
"type": "string",
"enum": [
"normal",
"soon",
"urgent"
]
},
"case_summary": {
"type": "string",
"minLength": 20,
"maxLength": 3000,
"description": "Non-sensitive summary of the matter to send to Legal Fournier."
},
"agent_handoff_message": {
"description": "Agent-prepared handoff summary, ideally from route_to_legal_fournier_help.",
"type": "string",
"maxLength": 3000
},
"risk_flags": {
"description": "Known risk flags or complexity triggers.",
"maxItems": 12,
"type": "array",
"items": {
"type": "string",
"maxLength": 220
}
},
"missing_facts": {
"description": "Important facts still missing for lawyer review.",
"maxItems": 12,
"type": "array",
"items": {
"type": "string",
"maxLength": 220
}
},
"related_resource_uris": {
"description": "MCP resource URIs already used in the analysis.",
"maxItems": 12,
"type": "array",
"items": {
"type": "string",
"maxLength": 260
}
},
"tool_context": {
"description": "Short note about the tool flow that produced this lead.",
"type": "string",
"maxLength": 1600
},
"source_surface": {
"description": "Agent surface sending the request.",
"type": "string",
"enum": [
"mcp",
"openapi",
"chatgpt_actions",
"claude_connector",
"zapier",
"make",
"n8n",
"relevance_ai",
"cursor",
"vscode",
"gemini_cli",
"claude_code",
"other"
]
},
"agent_app": {
"description": "Name of the agent app or connector.",
"type": "string",
"maxLength": 120
},
"tool_name": {
"description": "Tool or workflow that generated this contact request.",
"type": "string",
"maxLength": 120
},
"source_url": {
"description": "Optional URL where the agent flow started.",
"type": "string",
"format": "uri"
},
"referrer_url": {
"description": "Optional referrer URL.",
"type": "string",
"format": "uri"
},
"lead_id": {
"description": "Optional upstream lead ID.",
"type": "string",
"maxLength": 120
},
"idempotency_key": {
"description": "Stable idempotency key for safe retries.",
"type": "string",
"minLength": 8,
"maxLength": 160
}
},
"required": [
"confirmed_consent",
"consent_to_contact",
"name",
"email",
"legal_area",
"case_summary"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"description": "Whether the request was accepted by Legal Fournier."
},
"entry_id": {
"type": "number",
"description": "Internal WordPress lead entry ID."
},
"lead_id": {
"type": "string",
"description": "Public lead identifier recorded in WordPress."
},
"lead_status": {
"type": "string",
"enum": [
"created",
"duplicate"
],
"description": "Whether this was a new accepted lead or an idempotent duplicate."
},
"admin_queue": {
"type": "string",
"description": "Where Legal Fournier staff can review the request."
},
"source": {
"type": "string",
"const": "agent",
"description": "Lead source bucket."
},
"source_surface": {
"type": "string",
"description": "Agent surface recorded for attribution."
},
"message": {
"type": "string",
"description": "Human-readable confirmation message."
},
"representation_notice": {
"type": "string",
"description": "Notice that contact request submission does not create representation."
},
"booking_url": {
"type": "string",
"format": "uri",
"description": "Site-controlled consultation booking URL to offer when the user wants to speak with Legal Fournier now."
},
"next_actions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Safe follow-up instructions for the calling agent."
}
},
"required": [
"ok",
"entry_id",
"lead_id",
"lead_status",
"admin_queue",
"source",
"source_surface",
"message",
"representation_notice",
"booking_url",
"next_actions"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}コミュニティ
エビデンス