MCP 服务器

Spain Legal by Legal Fournier

com.legalfournier/spain-legal
法律与合规 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Provides Spain-focused visa, residency, NIE/TIE, nationality, tax, Beckham Law, and legal-service routing guidance, including screening tools and consultation availability.

check_beckham_eligibility
Check Beckham Eligibility
Screen Spain's Beckham regime using qualitative gatechecks, returning the rule trace, review level, and canonical MCP resources for follow-up.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['years_since_last_spanish_residency', 'employment_type', 'move_reason'], 'properties': {'move_reason': {'enum': ['new_spanish_job', 'foreign_remote_work', 'startup_or_innovation', 'intragroup_transfer', 'family_move', 'other'], 'type': 'string', 'description': 'Main reason for relocating to Spain.'}, 'ownership_band': {'enum': ['none', 'under_25', '25_or_more'], 'type': 'string', 'description': 'Optional ownership context for director-style cases.'}, 'employment_type': {'enum': ['spanish_employee', 'foreign_remote_employee', 'director_lt25', 'director_gte25', 'self_employed', 'highly_qualified_professional', 'unknown'], 'type': 'string', 'description': 'Employment structure that will support the move.'}, 'years_since_last_spanish_residency': {'type': 'number', 'minimum': 0, 'description': 'Number of years since the applicant was last a Spanish tax resident.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', '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'], 'properties': {'status': {'enum': ['eligible', 'not_eligible', 'needs_more_info'], 'type': 'string', 'description': 'High-level Beckham eligibility outcome.'}, 'reasons': {'type': 'array', 'items': {'type': 'string', 'description': 'Positive signal supporting eligibility.'}, 'description': 'Positive signals supporting the result.'}, 'summary': {'type': 'string', 'description': 'One-line explanation of the result.'}, 'next_steps': {'type': 'array', 'items': {'type': 'string', 'description': 'Immediate next action for the applicant or agent.'}, 'description': 'Suggested next steps.'}, 'references': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url', 'reason'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Secondary follow-up URL for optional human or website context.'}, 'label': {'type': 'string', 'description': 'Short label for the external reference.'}, 'reason': {'type': 'string', 'description': 'Why the external reference may still help after using the MCP result.'}}, 'additionalProperties': False}, 'description': 'Secondary Legal Fournier references.'}, 'review_level': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': 'How much human review is still advisable before treating the result as filing-ready.'}, 'decision_trace': {'type': 'array', 'items': {'type': 'object', 'required': ['factor', 'finding', 'impact'], 'properties': {'factor': {'type': 'string', 'description': 'Fact bucket or legal factor that was evaluated.'}, 'impact': {'type': 'string', 'description': 'How the finding changed the legal analysis.'}, 'finding': {'type': 'string', 'description': 'What the tool concluded about that factor.'}}, 'additionalProperties': False}, 'description': 'Structured trace of the main Beckham screening factors.'}, '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.'}, 'key_rules_applied': {'type': 'array', 'items': {'type': 'string', 'description': 'Stable rule that drove the Beckham screen.'}, 'description': 'Stable rules applied by the 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.'}, 'official_legal_sources': {'type': 'array', 'items': {'type': 'object', 'required': ['authority', 'title', 'url', 'relevance'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Official source URL.'}, 'title': {'type': 'string', 'description': 'Title or pinpoint label for the legal source.'}, 'authority': {'type': 'string', 'description': 'Official authority publishing the source.'}, 'relevance': {'type': 'string', 'description': 'Why this source matters to the tool or resource output.'}}, 'additionalProperties': False}, 'description': 'Official legal sources anchoring the Beckham analysis.'}, 'suggested_follow_up_tools': {'type': 'array', 'items': {'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'], 'type': 'string', 'description': 'Tool name that would be useful as a next step.'}, 'description': 'Tool calls that are likely to advance the analysis.'}, 'current_verification_flags': {'type': 'array', 'items': {'type': 'object', 'required': ['area', 'reason', 'check_when', 'official_source_hint'], '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.'}}, 'additionalProperties': False}, 'description': 'Live-verification warnings for fact-sensitive or time-sensitive Beckham points.'}}, 'additionalProperties': False}
compare_tax_regimes
Compare Tax Regimes
Compare Beckham versus standard Spanish resident taxation conceptually, returning reasoning, review level, and canonical MCP resources instead of rate tables.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'employment_type': {'enum': ['spanish_employee', 'foreign_remote_employee', 'director_lt25', 'director_gte25', 'self_employed', 'highly_qualified_professional', 'unknown'], 'type': 'string', 'description': 'Employment structure to test against the conceptual tax comparison.'}, 'has_foreign_income': {'type': 'boolean', 'description': 'Whether foreign-source income is material to the profile.'}, 'prefers_predictability': {'type': 'boolean', 'description': 'Whether the applicant values a simpler, more predictable regime structure.'}, 'has_significant_foreign_assets': {'type': 'boolean', 'description': 'Whether foreign assets are materially relevant to planning.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', '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'], 'properties': {'caveats': {'type': 'array', 'items': {'type': 'string', 'description': 'Important caveat.'}, 'description': 'Caveats that limit the comparison.'}, 'summary': {'type': 'string', 'description': 'Short explanation of the recommendation.'}, 'comparison': {'type': 'array', 'items': {'type': 'object', 'required': ['topic', 'beckham', 'standard_irpf'], '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.'}}, 'additionalProperties': False}, 'description': 'Topic-by-topic conceptual comparison.'}, 'references': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url', 'reason'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Secondary follow-up URL for optional human or website context.'}, 'label': {'type': 'string', 'description': 'Short label for the external reference.'}, 'reason': {'type': 'string', 'description': 'Why the external reference may still help after using the MCP result.'}}, 'additionalProperties': False}, 'description': 'Secondary Legal Fournier references.'}, 'next_actions': {'type': 'array', 'items': {'type': 'string', 'description': 'Immediate next action for the analysis.'}, 'description': 'Next actions that sharpen the tax answer.'}, 'review_level': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': 'How much human review is still advisable before treating the result as filing-ready.'}, 'decision_trace': {'type': 'array', 'items': {'type': 'object', 'required': ['factor', 'finding', 'impact'], 'properties': {'factor': {'type': 'string', 'description': 'Fact bucket or legal factor that was evaluated.'}, 'impact': {'type': 'string', 'description': 'How the finding changed the legal analysis.'}, 'finding': {'type': 'string', 'description': 'What the tool concluded about that factor.'}}, 'additionalProperties': False}, 'description': 'Structured trace of the main tax-comparison factors.'}, 'recommendation': {'enum': ['beckham', 'standard_irpf', 'depends'], 'type': 'string', 'description': 'Conceptual starting recommendation.'}, 'likely_fit_notes': {'type': 'array', 'items': {'type': 'string', 'description': 'Why the recommendation leans this way.'}, 'description': 'Why the profile leans toward a given regime.'}, 'key_rules_applied': {'type': 'array', 'items': {'type': 'string', 'description': 'Stable rule used in the tax comparison.'}, 'description': 'Stable rules applied by the 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.'}, 'official_legal_sources': {'type': 'array', 'items': {'type': 'object', 'required': ['authority', 'title', 'url', 'relevance'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Official source URL.'}, 'title': {'type': 'string', 'description': 'Title or pinpoint label for the legal source.'}, 'authority': {'type': 'string', 'description': 'Official authority publishing the source.'}, 'relevance': {'type': 'string', 'description': 'Why this source matters to the tool or resource output.'}}, 'additionalProperties': False}, 'description': 'Official tax and mobility sources anchoring the comparison.'}, 'suggested_follow_up_tools': {'type': 'array', 'items': {'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'], 'type': 'string', 'description': 'Tool name that would be useful as a next step.'}, 'description': 'Tool calls that are likely to advance the analysis.'}, 'current_verification_flags': {'type': 'array', 'items': {'type': 'object', 'required': ['area', 'reason', 'check_when', 'official_source_hint'], '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.'}}, 'additionalProperties': False}, 'description': 'Live-verification warnings for entry-path, timing, or filing issues.'}}, 'additionalProperties': False}
create_legal_fournier_contact_request
Create Legal Fournier Contact Request
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['confirmed_consent', 'consent_to_contact', 'name', 'email', 'legal_area', 'case_summary'], 'properties': {'name': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': "User's name for Legal Fournier follow-up."}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'maxLength': 254, 'description': "User's email address for Legal Fournier follow-up."}, 'phone': {'type': 'string', 'maxLength': 80, 'description': 'Optional phone or WhatsApp number.'}, 'lead_id': {'type': 'string', 'maxLength': 120, 'description': 'Optional upstream lead ID.'}, 'urgency': {'enum': ['normal', 'soon', 'urgent'], 'type': 'string', 'description': 'Requested urgency for Legal Fournier review.'}, 'agent_app': {'type': 'string', 'maxLength': 120, 'description': 'Name of the agent app or connector.'}, 'tool_name': {'type': 'string', 'maxLength': 120, 'description': 'Tool or workflow that generated this contact request.'}, 'legal_area': {'enum': ['visa_planning', 'eu_family_route', 'beckham', 'residency_path', 'nie_tie', 'tax_regimes', 'nationality', 'property', 'business', 'wealth', 'appointments', 'other'], 'type': 'string', 'description': 'Main legal or tax area for the request.'}, 'risk_flags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 220}, 'maxItems': 12, 'description': 'Known risk flags or complexity triggers.'}, 'source_url': {'type': 'string', 'format': 'uri', 'description': 'Optional URL where the agent flow started.'}, 'case_summary': {'type': 'string', 'maxLength': 3000, 'minLength': 20, 'description': 'Non-sensitive summary of the matter to send to Legal Fournier.'}, 'referrer_url': {'type': 'string', 'format': 'uri', 'description': 'Optional referrer URL.'}, 'tool_context': {'type': 'string', 'maxLength': 1600, 'description': 'Short note about the tool flow that produced this lead.'}, 'missing_facts': {'type': 'array', 'items': {'type': 'string', 'maxLength': 220}, 'maxItems': 12, 'description': 'Important facts still missing for lawyer review.'}, 'source_surface': {'enum': ['mcp', 'openapi', 'chatgpt_actions', 'claude_connector', 'zapier', 'make', 'n8n', 'relevance_ai', 'cursor', 'vscode', 'gemini_cli', 'claude_code', 'other'], 'type': 'string', 'description': 'Agent surface sending the request.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8, 'description': 'Stable idempotency key for safe retries.'}, '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.'}, 'preferred_language': {'enum': ['en', 'es', 'fr'], 'type': 'string', 'description': 'Preferred follow-up language.'}, 'agent_handoff_message': {'type': 'string', 'maxLength': 3000, 'description': 'Agent-prepared handoff summary, ideally from route_to_legal_fournier_help.'}, 'related_resource_uris': {'type': 'array', 'items': {'type': 'string', 'maxLength': 260}, 'maxItems': 12, 'description': 'MCP resource URIs already used in the analysis.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'entry_id', 'lead_id', 'lead_status', 'admin_queue', 'source', 'source_surface', 'message', 'representation_notice', 'booking_url', 'next_actions'], 'properties': {'ok': {'type': 'boolean', 'description': 'Whether the request was accepted by Legal Fournier.'}, 'source': {'type': 'string', 'const': 'agent', 'description': 'Lead source bucket.'}, 'lead_id': {'type': 'string', 'description': 'Public lead identifier recorded in WordPress.'}, 'message': {'type': 'string', 'description': 'Human-readable confirmation message.'}, 'entry_id': {'type': 'number', 'description': 'Internal WordPress lead entry ID.'}, 'admin_queue': {'type': 'string', 'description': 'Where Legal Fournier staff can review the request.'}, 'booking_url': {'type': 'string', 'format': 'uri', 'description': 'Site-controlled consultation booking URL to offer when the user wants to speak with Legal Fournier now.'}, 'lead_status': {'enum': ['created', 'duplicate'], 'type': 'string', 'description': 'Whether this was a new accepted lead or an idempotent duplicate.'}, 'next_actions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Safe follow-up instructions for the calling agent.'}, 'source_surface': {'type': 'string', 'description': 'Agent surface recorded for attribution.'}, 'representation_notice': {'type': 'string', 'description': 'Notice that contact request submission does not create representation.'}}, 'additionalProperties': False}
explain_nie_process
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', '$schema': 'http://json-schema.org/draft-07/schema#', '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'], 'properties': {'forms': {'type': 'array', 'items': {'type': 'string', 'description': 'Relevant form or administrative reference.'}, 'description': 'Relevant forms and administrative references.'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['step', 'title', 'detail'], '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.'}}, 'additionalProperties': False}, 'description': 'Ordered process steps.'}, 'summary': {'type': 'string', 'description': 'Short overview of the NIE/TIE process.'}, 'references': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url', 'reason'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Secondary follow-up URL for optional human or website context.'}, 'label': {'type': 'string', 'description': 'Short label for the external reference.'}, 'reason': {'type': 'string', 'description': 'Why the external reference may still help after using the MCP result.'}}, 'additionalProperties': False}, 'description': 'Secondary Legal Fournier references.'}, 'next_actions': {'type': 'array', 'items': {'type': 'string', 'description': 'Immediate next procedural action.'}, 'description': 'Next actions to progress the procedure.'}, 'review_level': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': 'How much human review is still advisable before treating the result as filing-ready.'}, 'decision_trace': {'type': 'array', 'items': {'type': 'object', 'required': ['factor', 'finding', 'impact'], 'properties': {'factor': {'type': 'string', 'description': 'Fact bucket or legal factor that was evaluated.'}, 'impact': {'type': 'string', 'description': 'How the finding changed the legal analysis.'}, 'finding': {'type': 'string', 'description': 'What the tool concluded about that factor.'}}, 'additionalProperties': False}, 'description': 'Structured trace of the procedural distinctions that matter.'}, 'common_mistakes': {'type': 'array', 'items': {'type': 'string', 'description': 'Common mistake applicants make.'}, 'description': 'Common mistakes in NIE/TIE processing.'}, 'key_distinctions': {'type': 'array', 'items': {'type': 'string', 'description': 'Stable distinction between NIE and TIE handling.'}, 'description': 'Key distinctions that agents should preserve.'}, 'key_rules_applied': {'type': 'array', 'items': {'type': 'string', 'description': 'Stable procedural rule applied by the tool.'}, 'description': 'Stable procedural rules applied by the 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.'}, 'official_legal_sources': {'type': 'array', 'items': {'type': 'object', 'required': ['authority', 'title', 'url', 'relevance'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Official source URL.'}, 'title': {'type': 'string', 'description': 'Title or pinpoint label for the legal source.'}, 'authority': {'type': 'string', 'description': 'Official authority publishing the source.'}, 'relevance': {'type': 'string', 'description': 'Why this source matters to the tool or resource output.'}}, 'additionalProperties': False}, 'description': 'Official legal and administrative sources anchoring the procedure.'}, 'suggested_follow_up_tools': {'type': 'array', 'items': {'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'], 'type': 'string', 'description': 'Tool name that would be useful as a next step.'}, 'description': 'Tool calls that are likely to advance the analysis.'}, 'current_verification_flags': {'type': 'array', 'items': {'type': 'object', 'required': ['area', 'reason', 'check_when', 'official_source_hint'], '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.'}}, 'additionalProperties': False}, 'description': 'Live-verification warnings for office-level or fee-level volatility.'}}, 'additionalProperties': False}
find_legal_fournier_tool
Find Legal Fournier Tool
Match a Spain legal, tax, property, business, or private-client case to the best Legal Fournier public tool page and MCP workflow.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'area': {'enum': ['immigration', 'tax', 'property', 'business', 'wealth', 'appointments', 'remote_work', 'unknown'], 'type': 'string', 'description': 'Optional broad area when the agent already knows it.'}, 'query': {'type': 'string', 'description': "Natural-language user goal or case summary, such as 'high-income founder buying property in Spain'."}, 'max_results': {'type': 'integer', 'maximum': 12, 'minimum': 1, 'description': 'Maximum number of matched public tools to return when include_all_tools is false.'}, 'include_all_tools': {'type': 'boolean', 'description': 'Return the full Legal Fournier public tool catalog instead of only top matches.'}, 'complexity_signals': {'type': 'array', 'items': {'type': 'string', 'description': 'Specific complexity signal, blocker, or risk fact.'}, 'description': 'Signals that should affect matching and escalation.'}, 'preferred_language': {'enum': ['en', 'es', 'fr', 'unknown'], 'type': 'string', 'description': 'Preferred public-page language when an equivalent translated tool exists.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query_summary', 'catalog_size', 'matched_tools', 'recommended_mcp_sequence', 'next_actions', 'handoff_url', 'catalog_resource_uri', 'agent_use_rules', 'legal_notice'], 'properties': {'handoff_url': {'type': 'string', 'format': 'uri', 'description': 'Site-controlled consultation handoff URL.'}, 'catalog_size': {'type': 'number', 'description': 'Number of public Legal Fournier tools in the MCP catalog.'}, 'legal_notice': {'type': 'string', 'description': 'General legal notice that agents must preserve when using tool results.'}, 'next_actions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Immediate actions for the agent after matching the public tool.'}, 'matched_tools': {'type': 'array', 'items': {'type': 'object', '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'], 'properties': {'id': {'type': 'string', 'description': 'Stable Legal Fournier public tool identifier.'}, 'fit': {'enum': ['strong', 'possible'], 'type': 'string', 'description': 'How strongly this public tool fits the case.'}, 'url': {'type': 'string', 'format': 'uri', 'description': 'Canonical English public tool URL.'}, 'why': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Reasons this public tool matched the case.'}, 'score': {'type': 'number', 'description': 'Internal ranking score used to order tools.'}, 'title': {'type': 'string', 'description': 'Public tool title.'}, 'not_for': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Cases where the tool should not be used alone.'}, 'category': {'enum': ['immigration', 'tax', 'property', 'business', 'wealth', 'appointments', 'remote_work'], 'type': 'string', 'description': 'Primary case area for the tool.'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Search and matching terms for the tool.'}, 'use_when': {'type': 'array', 'items': {'type': 'string'}, 'description': 'When agents should send users to this tool.'}, 'description': {'type': 'string', 'description': 'Short description of the public tool.'}, 'selected_url': {'type': 'string', 'format': 'uri', 'description': 'Best public URL after applying the preferred language.'}, 'agent_workflow': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Suggested agent workflow for this tool.'}, 'language_links': {'type': 'array', 'items': {'type': 'object', 'required': ['language', 'url', 'title'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Language-specific public tool URL.'}, 'title': {'type': 'string', 'description': 'Human-readable title for this language URL.'}, 'language': {'enum': ['en', 'es', 'fr'], 'type': 'string', 'description': 'Language for this public tool URL.'}}, 'additionalProperties': False}, 'description': 'Available translated versions of the public tool page.'}, 'handoff_trigger': {'type': 'string', 'description': 'When the agent should escalate this tool flow.'}, 'related_mcp_tools': {'type': 'array', 'items': {'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'], 'type': 'string'}, 'description': 'MCP tools that pair with this public tool.'}, 'selected_language': {'enum': ['en', 'es', 'fr'], 'type': 'string', 'description': 'Language used for selected_url.'}, 'complexity_triggers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Signals that should push the case toward human review.'}, '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.'}}, 'additionalProperties': False}, 'description': 'Ranked public tools and their agent workflow guidance.'}, 'query_summary': {'type': 'string', 'description': 'Short summary of the matching inputs and result count.'}, 'agent_use_rules': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Rules for agents using the public tools with MCP outputs.'}, 'catalog_resource_uri': {'type': 'string', 'description': 'Canonical MCP resource URI for the complete public tool catalog.'}, 'recommended_mcp_sequence': {'type': 'array', 'items': {'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'], 'type': 'string', 'description': 'Tool name that would be useful as a next step.'}, 'description': 'Recommended MCP tool sequence before the public-page or human handoff.'}}, 'additionalProperties': False}
get_paid_call_availability
Get Paid Call Availability
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to', 'timezone'], 'properties': {'to': {'type': 'string', 'description': 'End of the availability window as an ISO 8601 date-time.'}, 'from': {'type': 'string', 'description': 'Start of the availability window as an ISO 8601 date-time.'}, 'timezone': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'IANA timezone for the customer, such as Europe/Madrid.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'openapi_url', 'timezone', 'duration_minutes', 'booking_enabled', 'fulfillment_mode', 'fulfillment_notice', 'slots', 'quote_endpoint', 'payment_endpoint'], 'properties': {'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string'}, 'start': {'type': 'string'}}, 'additionalProperties': False}}, 'success': {'type': 'boolean', 'const': True}, 'timezone': {'type': 'string'}, 'openapi_url': {'type': 'string', 'format': 'uri'}, 'quote_endpoint': {'type': 'string', 'format': 'uri'}, 'booking_enabled': {'type': 'boolean'}, 'duration_minutes': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'fulfillment_mode': {'type': 'string'}, 'payment_endpoint': {'type': 'string', 'format': 'uri'}, 'fulfillment_notice': {'type': 'string'}}, 'additionalProperties': False}
get_paid_consultation_options
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'openapi_url', 'offers', 'settlement_notice', 'agent_instructions'], 'properties': {'offers': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'price_usd', 'amount_atomic', 'currency', 'network', 'payment_protocol', 'availability', 'quote_endpoint', 'payment_endpoint'], 'properties': {'id': {'enum': ['email_consultation', 'call_consultation'], 'type': 'string'}, 'name': {'type': 'string'}, 'network': {'type': 'string'}, 'currency': {'type': 'string', 'const': 'USDC'}, 'price_usd': {'type': 'string'}, 'availability': {'enum': ['asynchronous', 'scheduled'], 'type': 'string'}, 'confirmation': {'type': 'string'}, 'response_sla': {'type': 'string'}, 'amount_atomic': {'type': 'string'}, 'quote_endpoint': {'type': 'string', 'format': 'uri'}, 'duration_minutes': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'payment_endpoint': {'type': 'string', 'format': 'uri'}, 'payment_protocol': {'type': 'string', 'const': 'x402-v2'}, 'availability_endpoint': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}}, 'success': {'type': 'boolean', 'const': True}, 'openapi_url': {'type': 'string', 'format': 'uri'}, 'settlement_notice': {'type': 'string'}, 'agent_instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
get_residency_path
Get Residency Path
Explain the next permanent-residency or nationality milestone from current status and time in Spain, with explicit caution flags for counting issues.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['current_status', 'years_in_spain'], 'properties': {'current_status': {'enum': ['new_arrival', 'temporary_resident', 'digital_nomad', 'eu_citizen_registered', 'eu_family_member_resident', 'student', 'long_term_resident', 'irregular_status', 'citizenship_applicant'], 'type': 'string', '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': {'enum': ['unknown', 'standard_10_year', 'ibero_2_year', 'one_year_special', 'refugee_5_year'], 'type': 'string', 'description': 'Optional nationality timeline group for a more specific nationality answer.'}, 'has_absence_concerns': {'type': 'boolean', 'description': 'Whether absences or continuity problems may weaken the residence or nationality clock.'}, 'special_nationality_basis': {'enum': ['not_specified', 'born_in_spain', 'married_to_spanish', 'widowed_from_spanish', 'spanish_parent_or_grandparent', 'guardianship_of_spanish_person'], 'type': 'string', 'description': 'Optional basis for the one-year nationality track when that exception is being claimed.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', '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'], 'properties': {'summary': {'type': 'string', 'description': 'Short explanation of where the person sits on the path.'}, '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.'}, 'references': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url', 'reason'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Secondary follow-up URL for optional human or website context.'}, 'label': {'type': 'string', 'description': 'Short label for the external reference.'}, 'reason': {'type': 'string', 'description': 'Why the external reference may still help after using the MCP result.'}}, 'additionalProperties': False}, 'description': 'Secondary Legal Fournier references.'}, 'review_level': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': 'How much human review is still advisable before treating the result as filing-ready.'}, 'caution_notes': {'type': 'array', 'items': {'type': 'string', 'description': 'Important caution for this path.'}, 'description': 'Important cautions.'}, 'decision_trace': {'type': 'array', 'items': {'type': 'object', 'required': ['factor', 'finding', 'impact'], 'properties': {'factor': {'type': 'string', 'description': 'Fact bucket or legal factor that was evaluated.'}, 'impact': {'type': 'string', 'description': 'How the finding changed the legal analysis.'}, 'finding': {'type': 'string', 'description': 'What the tool concluded about that factor.'}}, '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.'}, 'nationality_status': {'enum': ['unknown_track', 'review_needed', 'building_time', 'likely_eligible', 'already_in_process'], 'type': 'string', 'description': 'Nationality stage given the provided track information.'}, '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.'}, 'official_legal_sources': {'type': 'array', 'items': {'type': 'object', 'required': ['authority', 'title', 'url', 'relevance'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Official source URL.'}, 'title': {'type': 'string', 'description': 'Title or pinpoint label for the legal source.'}, 'authority': {'type': 'string', 'description': 'Official authority publishing the source.'}, 'relevance': {'type': 'string', 'description': 'Why this source matters to the tool or resource output.'}}, 'additionalProperties': False}, 'description': 'Official legal sources anchoring the residence and nationality timeline analysis.'}, 'suggested_follow_up_tools': {'type': 'array', 'items': {'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'], 'type': 'string', 'description': 'Tool name that would be useful as a next step.'}, 'description': 'Tool calls that are likely to advance the analysis.'}, 'current_verification_flags': {'type': 'array', 'items': {'type': 'object', 'required': ['area', 'reason', 'check_when', 'official_source_hint'], '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.'}}, 'additionalProperties': False}, 'description': 'Live-verification warnings for route, continuity, or timing issues.'}, 'permanent_residency_status': {'enum': ['not_started', 'building_time', 'review_needed', 'likely_eligible', 'already_long_term'], 'type': 'string', 'description': 'Long-term residence stage.'}}, 'additionalProperties': False}
get_visa_options
Get Visa Options
Rank Spain residence routes using evergreen logic and return decision traces, next actions, and canonical MCP resources for the leading branches.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nationality', 'income_source', 'intent'], 'properties': {'intent': {'enum': ['work', 'retire', 'invest'], 'type': 'string', 'description': 'Main relocation intent.'}, 'nationality': {'type': 'string', 'description': 'Applicant nationality as a country name or ISO-style country code.'}, 'income_source': {'enum': ['employee', 'freelancer', 'passive'], 'type': 'string', 'description': 'Main source of income for the move.'}, 'employer_location': {'enum': ['spain', 'outside_spain', 'mixed', 'unknown'], 'type': 'string', 'description': 'Where the main employer or client base is located, if known.'}, 'has_eu_family_link': {'type': 'boolean', 'description': 'Whether an EU family-member route may need separate review.'}, 'investment_profile': {'enum': ['passive_capital', 'operating_business', 'none'], 'type': 'string', 'description': 'Whether the investment plan is passive or tied to an operating business.'}, 'has_spanish_job_offer': {'type': 'boolean', 'description': 'Whether the applicant already has a Spanish job offer.'}, 'eu_family_relationship': {'enum': ['spouse_or_registered_partner', 'child_or_dependent_parent', 'extended_family_or_other', 'unknown'], 'type': 'string', 'description': 'Optional relationship label when an EU-family route may be relevant.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', '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'], 'properties': {'references': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url', 'reason'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Secondary follow-up URL for optional human or website context.'}, 'label': {'type': 'string', 'description': 'Short label for the external reference.'}, 'reason': {'type': 'string', 'description': 'Why the external reference may still help after using the MCP result.'}}, 'additionalProperties': False}, 'description': 'Secondary Legal Fournier references, demoted behind MCP-native context.'}, 'next_actions': {'type': 'array', 'items': {'type': 'string', 'description': 'Immediate next action for the agent or user.'}, 'description': 'Next actions to progress the analysis.'}, 'review_level': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': 'How much human review is still advisable before treating the result as filing-ready.'}, 'general_notes': {'type': 'array', 'items': {'type': 'string', 'description': 'General note about the recommendation set.'}, 'description': 'General notes that apply across the route list.'}, 'ranked_routes': {'type': 'array', 'items': {'type': 'object', 'required': ['route_id', 'title', 'fit', 'score', 'why', 'evergreen_requirements', 'common_use_cases', 'next_step', 'related_resource_uri'], 'properties': {'fit': {'enum': ['strong', 'possible', 'unlikely'], 'type': 'string', 'description': 'How well the route fits the described profile.'}, 'why': {'type': 'array', 'items': {'type': 'string', 'description': 'Profile-specific reason for this route ranking.'}, 'description': 'Reasons the route was ranked here.'}, 'score': {'type': 'number', 'description': 'Internal ranking score used to order the routes.'}, 'title': {'type': 'string', 'description': 'Human-readable route title.'}, 'route_id': {'type': 'string', 'description': 'Stable route identifier.'}, 'next_step': {'type': 'string', 'description': 'Immediate next action to validate or progress the route.'}, 'common_use_cases': {'type': 'array', 'items': {'type': 'string', 'description': 'Typical factual pattern for the route.'}, 'description': 'Typical use cases for the route.'}, 'related_resource_uri': {'type': 'string', 'description': 'Canonical MCP resource URI for the route pack.'}, 'evergreen_requirements': {'type': 'array', 'items': {'type': 'string', 'description': 'Stable, non-volatile requirement logic for the route.'}, 'description': 'Stable requirement summary.'}}, 'additionalProperties': False}, 'description': 'Ranked visa or residence routes.'}, 'decision_trace': {'type': 'array', 'items': {'type': 'object', 'required': ['factor', 'finding', 'impact'], 'properties': {'factor': {'type': 'string', 'description': 'Fact bucket or legal factor that was evaluated.'}, 'impact': {'type': 'string', 'description': 'How the finding changed the legal analysis.'}, 'finding': {'type': 'string', 'description': 'What the tool concluded about that factor.'}}, 'additionalProperties': False}, 'description': 'Structured trace of the main route-selection factors.'}, 'profile_summary': {'type': 'string', 'description': 'One-line summary of the screened profile.'}, 'ruled_out_routes': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'reason'], '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.'}}, 'additionalProperties': False}, 'description': 'Common routes ruled out by stable legal logic.'}, 'key_rules_applied': {'type': 'array', 'items': {'type': 'string', 'description': 'Stable legal rule used by the screening logic.'}, 'description': 'Stable rules that drove the recommendation.'}, '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.'}, 'official_legal_sources': {'type': 'array', 'items': {'type': 'object', 'required': ['authority', 'title', 'url', 'relevance'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Official source URL.'}, 'title': {'type': 'string', 'description': 'Title or pinpoint label for the legal source.'}, 'authority': {'type': 'string', 'description': 'Official authority publishing the source.'}, 'relevance': {'type': 'string', 'description': 'Why this source matters to the tool or resource output.'}}, 'additionalProperties': False}, 'description': 'Official legal sources that anchor the recommendation.'}, 'suggested_follow_up_tools': {'type': 'array', 'items': {'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'], 'type': 'string', 'description': 'Tool name that would be useful as a next step.'}, 'description': 'Tool calls that are likely to advance the analysis.'}, 'current_verification_flags': {'type': 'array', 'items': {'type': 'object', 'required': ['area', 'reason', 'check_when', 'official_source_hint'], '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.'}}, 'additionalProperties': False}, 'description': 'Live-verification warnings for volatile or fact-sensitive points.'}, 'nationality_classification': {'enum': ['eu_eea_swiss', 'non_eu'], 'type': 'string', 'description': 'High-level nationality bucket used by the route logic.'}}, 'additionalProperties': False}
route_to_legal_fournier_help
Route To Legal Fournier Help
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', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['area'], 'properties': {'area': {'enum': ['visa_planning', 'eu_family_route', 'beckham', 'residency_path', 'nie_tie', 'tax_regimes', 'nationality'], 'type': 'string', 'description': 'Area of Spain legal help that needs human escalation.'}, 'urgency': {'enum': ['normal', 'soon', 'urgent'], 'type': 'string', 'description': 'How quickly the user needs human help.'}, 'blockers': {'type': 'array', 'items': {'type': 'string', 'description': 'Specific blocker, uncertainty, or live issue requiring human review.'}, 'description': 'Known blockers that make a self-serve answer less reliable.'}, 'already_filed': {'type': 'boolean', 'description': 'Whether the user already has a live filing, notice, denial, or active procedure.'}, 'preferred_language': {'enum': ['en', 'es', 'fr'], 'type': 'string', 'description': 'Preferred language for the human handoff.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', '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'], 'properties': {'summary': {'type': 'string', 'description': 'Short explanation of the handoff recommendation.'}, 'urgency': {'enum': ['normal', 'soon', 'urgent'], 'type': 'string', 'description': 'Urgency level used for the handoff recommendation.'}, 'why_now': {'type': 'array', 'items': {'type': 'string', 'description': 'Reason the handoff should happen now.'}, 'description': 'Reasons supporting escalation.'}, 'references': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url', 'reason'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Secondary follow-up URL for optional human or website context.'}, 'label': {'type': 'string', 'description': 'Short label for the external reference.'}, 'reason': {'type': 'string', 'description': 'Why the external reference may still help after using the MCP result.'}}, 'additionalProperties': False}, 'description': 'Secondary Legal Fournier references for the handoff.'}, 'booking_url': {'type': 'string', 'format': 'uri', 'description': 'Preferred consultation-booking URL when the user wants direct legal advice now.'}, 'intake_fields': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'value', 'required', 'status', 'guidance'], '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.'}, 'status': {'enum': ['filled', 'needs_input'], 'type': 'string', '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': {'type': 'boolean', 'description': 'Whether the field should be collected before handoff.'}}, 'additionalProperties': False}, 'description': 'Structured intake payload an agent can map into a contact form, CRM, or booking handoff.'}, 'should_escalate': {'type': 'boolean', 'description': 'Whether human escalation is recommended from the supplied facts.'}, '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.'}, 'recommended_service': {'type': 'object', 'required': ['title', 'url', 'reason'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Service or contact URL for the handoff.'}, 'title': {'type': 'string', 'description': 'Best-fit Legal Fournier service line or contact route.'}, 'reason': {'type': 'string', 'description': 'Why this route fits the case.'}}, 'additionalProperties': False}, 'agent_handoff_message': {'type': 'string', 'description': 'Ready-to-send summary an agent can reuse when escalating to Legal Fournier.'}, '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.'}, 'representation_notice': {'type': 'string', 'description': 'Legal notice explaining that contact or booking does not itself create representation.'}, 'suggested_follow_up_tools': {'type': 'array', 'items': {'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'], 'type': 'string', 'description': 'Tool name that would be useful as a next step.'}, 'description': 'Tool calls that are likely to advance the analysis.'}}, 'additionalProperties': False}
run_legal_fournier_tool
Run Legal Fournier Tool
Run a Legal Fournier public calculator or screener directly inside MCP, returning intake screening, missing facts, complexity flags, and handoff guidance.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tool_id'], 'properties': {'facts': {'type': 'array', 'items': {'type': 'string', 'description': 'Non-sensitive fact supplied by the user.'}, 'description': 'General facts for the direct MCP screening run.'}, 'numbers': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'value'], 'properties': {'key': {'type': 'string', 'description': 'Stable key for the number, such as monthly_income, property_price, asset_value, or revenue.'}, 'unit': {'type': 'string', 'description': 'Optional unit when the value is not monetary.'}, 'value': {'type': 'number', 'description': 'Numeric value supplied by the user.'}, 'currency': {'enum': ['EUR', 'USD', 'other'], 'type': 'string', 'description': 'Currency when the number is monetary.'}}}, 'description': 'Optional numeric facts for calculator-style intake.'}, 'tool_id': {'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'], 'type': 'string', 'description': 'Public Legal Fournier tool to run directly inside MCP.'}, 'user_goal': {'type': 'string', 'description': 'Natural-language user goal or case summary.'}, 'complexity_signals': {'type': 'array', 'items': {'type': 'string', 'description': 'Specific blocker, edge case, or risk signal.'}, 'description': 'Signals that should trigger human review.'}, 'preferred_language': {'enum': ['en', 'es', 'fr', 'unknown'], 'type': 'string', 'description': 'Preferred public page language for selected_url.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', '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'], 'properties': {'title': {'type': 'string', 'description': 'Public tool title.'}, 'outcome': {'enum': ['possible_fit', 'needs_more_facts', 'needs_human_review'], 'type': 'string', 'description': 'Direct MCP screening outcome.'}, 'summary': {'type': 'string', 'description': 'Short explanation of the direct MCP run.'}, 'tool_id': {'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'], 'type': 'string', 'description': 'Tool that was run directly in MCP.'}, 'handoff_url': {'type': 'string', 'format': 'uri', 'description': 'Legal Fournier consultation handoff URL.'}, 'legal_notice': {'type': 'string', 'description': 'General legal notice agents must preserve.'}, 'next_actions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Immediate next actions for the agent.'}, 'selected_url': {'type': 'string', 'format': 'uri', 'description': 'Best public URL after applying preferred language.'}, 'missing_facts': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Facts the agent should collect before relying on the screening output.'}, 'numeric_notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Calculator-style numeric notes, with current-law caveats.'}, 'update_policy': {'type': 'array', 'items': {'type': 'string'}, 'description': 'How this direct MCP runner should be updated and verified.'}, 'handoff_reason': {'type': 'string', 'description': 'Reason for the handoff recommendation or caveat.'}, 'public_tool_url': {'type': 'string', 'format': 'uri', 'description': 'Canonical English public tool URL.'}, 'complexity_flags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Signals that make human review advisable.'}, 'related_mcp_tools': {'type': 'array', 'items': {'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'], 'type': 'string', 'description': 'Tool name that would be useful as a next step.'}, 'description': 'Other MCP tools paired with this direct run.'}, 'selected_language': {'enum': ['en', 'es', 'fr'], 'type': 'string', 'description': 'Language used for selected_url.'}, 'handoff_recommended': {'type': 'boolean', 'description': 'Whether the direct MCP run recommends Legal Fournier human review.'}, '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.'}, 'direct_screening_notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Direct MCP screening notes and usage caveats.'}}, 'additionalProperties': False}
已添加
create_legal_fournier_contact_request
2026年9月17日 12:35
已添加
route_to_legal_fournier_help
2026年9月17日 12:35
已添加
compare_tax_regimes
2026年9月17日 12:35
已添加
explain_nie_process
2026年9月17日 12:35
已添加
get_residency_path
2026年9月17日 12:35
已添加
check_beckham_eligibility
2026年9月17日 12:35
已添加
get_visa_options
2026年9月17日 12:35
已添加
get_paid_call_availability
2026年9月17日 12:35
已添加
get_paid_consultation_options
2026年9月17日 12:35
已添加
run_legal_fournier_tool
2026年9月17日 12:35
已添加
find_legal_fournier_tool
2026年9月17日 12:35