Serveur MCP

Fmind Freelance AI Architect Website

io.github.fmind/portfolio
Connaissance et documentation Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Provides read-only access to a professional portfolio, articles, publications, projects, experience, services, and an LLM hosting cost calculator.

compare_llm_hosting
Compare LLM hosting costs
Compare one GKE hosting scenario with managed API baselines using the website calculator. Call with parameters={} for defaults and supported model, node, billing, and quantization choices. Then override URL parameters as strings, e.g. requests=1000, throughput=100, tokens=500. Returns assumptions, USD costs, constraints, dated sources, and a shareable URL. Invalid inputs fail; no resources are provisioned. See /agents#calculator.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'compare_llm_hostingArguments', 'required': ['parameters'], 'properties': {'parameters': {'type': 'object', 'title': 'Parameters', 'description': 'Calculator URL parameters as strings; use an empty object for defaults and available choices.', 'maxProperties': 64, 'propertyNames': {'maxLength': 64}, 'additionalProperties': {'type': 'string', 'maxLength': 128}}}}
Schéma de sortie
{'type': 'object', '$defs': {'APIMode': {'enum': ['standard', 'batch', 'cached'], 'type': 'string', 'title': 'APIMode'}, 'NodePrice': {'type': 'object', 'title': 'NodePrice', 'required': ['plan', 'label', 'hourly_usd'], 'properties': {'plan': {'$ref': '#/$defs/BillingPlan'}, 'label': {'type': 'string', 'title': 'Label'}, 'hourly_usd': {'type': 'number', 'title': 'Hourly Usd'}}}, 'APIBaseline': {'type': 'object', 'title': 'APIBaseline', 'required': ['name', 'input_per_million', 'output_per_million', 'cache_read_per_million', 'cache_write_per_million', 'cache_storage_per_million_hour', 'cache_minimum', 'source_url', 'cache_url', 'verified_on', 'review_on', 'valid_through', 'note', 'input_token_limit', 'output_token_limit'], 'properties': {'name': {'type': 'string', 'title': 'Name'}, 'note': {'type': 'string', 'title': 'Note'}, 'cache_url': {'type': 'string', 'title': 'Cache Url'}, 'review_on': {'type': 'string', 'title': 'Review On'}, 'source_url': {'type': 'string', 'title': 'Source Url'}, 'verified_on': {'type': 'string', 'title': 'Verified On'}, 'cache_minimum': {'type': 'number', 'title': 'Cache Minimum'}, 'valid_through': {'type': 'string', 'title': 'Valid Through'}, 'input_per_million': {'type': 'number', 'title': 'Input Per Million'}, 'input_token_limit': {'type': 'integer', 'title': 'Input Token Limit'}, 'output_per_million': {'type': 'number', 'title': 'Output Per Million'}, 'output_token_limit': {'type': 'integer', 'title': 'Output Token Limit'}, 'context_token_limit': {'type': 'integer', 'title': 'Context Token Limit', 'default': 0}, 'cache_read_per_million': {'type': 'number', 'title': 'Cache Read Per Million'}, 'cache_write_per_million': {'type': 'number', 'title': 'Cache Write Per Million'}, 'cache_storage_per_million_hour': {'type': 'number', 'title': 'Cache Storage Per Million Hour'}}}, 'BillingPlan': {'enum': ['on-demand', 'cud-1y', 'cud-3y', 'flex'], 'type': 'string', 'title': 'BillingPlan'}, 'GKENodePool': {'type': 'object', 'title': 'GKENodePool', 'required': ['id', 'name', 'gpu', 'gpu_count', 'vram_gb', 'prices', 'operational'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'gpu': {'type': 'string', 'title': 'Gpu'}, 'name': {'type': 'string', 'title': 'Name'}, 'prices': {'type': 'array', 'items': {'$ref': '#/$defs/NodePrice'}, 'title': 'Prices'}, 'vram_gb': {'type': 'number', 'title': 'Vram Gb'}, 'gpu_count': {'type': 'integer', 'title': 'Gpu Count'}, 'multi_host': {'type': 'boolean', 'title': 'Multi Host', 'default': False}, 'operational': {'type': 'string', 'title': 'Operational'}}}, 'TaskQuality': {'type': 'object', 'title': 'TaskQuality', 'required': ['acceptance_percent', 'calls_per_task', 'review_minutes'], 'properties': {'calls_per_task': {'type': 'number', 'title': 'Calls Per Task'}, 'review_minutes': {'type': 'number', 'title': 'Review Minutes'}, 'acceptance_percent': {'type': 'number', 'title': 'Acceptance Percent'}}}, 'DemandPreset': {'type': 'object', 'title': 'DemandPreset', 'required': ['id', 'name', 'description', 'requests_per_day', 'active_days', 'input_tokens', 'output_tokens'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'name': {'type': 'string', 'title': 'Name'}, 'active_days': {'type': 'number', 'title': 'Active Days'}, 'description': {'type': 'string', 'title': 'Description'}, 'input_tokens': {'type': 'number', 'title': 'Input Tokens'}, 'output_tokens': {'type': 'number', 'title': 'Output Tokens'}, 'requests_per_day': {'type': 'number', 'title': 'Requests Per Day'}}}, 'Quantization': {'type': 'object', 'title': 'Quantization', 'required': ['id', 'name', 'bytes_per_param', 'guidance'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'name': {'type': 'string', 'title': 'Name'}, 'guidance': {'type': 'string', 'title': 'Guidance'}, 'bytes_per_param': {'type': 'number', 'title': 'Bytes Per Param'}}}, 'APIComparison': {'type': 'object', 'title': 'APIComparison', 'required': ['baseline', 'monthly_usd', 'cache_overhead_usd', 'per_thousand_requests_usd', 'break_even_requests', 'break_even_fits', 'mode_note', 'request_issue'], 'properties': {'baseline': {'$ref': '#/$defs/APIBaseline'}, 'freshness': {'type': 'string', 'title': 'Freshness', 'default': ''}, 'mode_note': {'type': 'string', 'title': 'Mode Note'}, 'monthly_usd': {'type': 'number', 'title': 'Monthly Usd'}, 'needs_review': {'type': 'boolean', 'title': 'Needs Review', 'default': False}, 'request_issue': {'type': 'string', 'title': 'Request Issue'}, 'break_even_fits': {'type': 'boolean', 'title': 'Break Even Fits'}, 'cache_overhead_usd': {'type': 'number', 'title': 'Cache Overhead Usd'}, 'break_even_requests': {'type': 'number', 'title': 'Break Even Requests'}, 'per_thousand_requests_usd': {'type': 'number', 'title': 'Per Thousand Requests Usd'}}}, 'FrontierModel': {'type': 'object', 'title': 'FrontierModel', 'required': ['id', 'rank', 'name', 'creator', 'intelligence', 'parameters_b', 'active_parameters', 'context_tokens', 'license', 'license_class', 'analysis_url', 'weights_url', 'minimum_node_id', 'minimum_nodes'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'name': {'type': 'string', 'title': 'Name'}, 'rank': {'type': 'integer', 'title': 'Rank'}, 'creator': {'type': 'string', 'title': 'Creator'}, 'license': {'type': 'string', 'title': 'License'}, 'weights_url': {'type': 'string', 'title': 'Weights Url'}, 'analysis_url': {'type': 'string', 'title': 'Analysis Url'}, 'intelligence': {'type': 'number', 'title': 'Intelligence'}, 'parameters_b': {'type': 'number', 'title': 'Parameters B'}, 'license_class': {'type': 'string', 'title': 'License Class'}, 'minimum_nodes': {'type': 'integer', 'title': 'Minimum Nodes'}, 'context_tokens': {'type': 'integer', 'title': 'Context Tokens'}, 'minimum_node_id': {'type': 'string', 'title': 'Minimum Node Id'}, 'active_parameters': {'type': 'number', 'title': 'Active Parameters'}}}, 'HostingInputs': {'type': 'object', 'title': 'HostingInputs', 'required': ['model_id', 'node_pool_id', 'quantization_id', 'replicas', 'duty_cycle_percent', 'memory_overhead_pct', 'tokens_per_second', 'target_utilization', 'output_tokens_request', 'input_tokens_request', 'requests_per_day', 'active_days', 'platform_monthly_usd', 'api_mode', 'cache_prefix_tokens', 'cache_requests', 'concurrency', 'target_first_token', 'target_completion', 'measured_concurrency', 'measured_first_token', 'measured_completion', 'tasks_per_month', 'review_hourly_usd', 'quality', 'quality_enabled'], 'properties': {'quality': {'type': 'array', 'title': 'Quality', 'maxItems': 4, 'minItems': 4, 'prefixItems': [{'$ref': '#/$defs/TaskQuality'}, {'$ref': '#/$defs/TaskQuality'}, {'$ref': '#/$defs/TaskQuality'}, {'$ref': '#/$defs/TaskQuality'}]}, 'api_mode': {'$ref': '#/$defs/APIMode'}, 'model_id': {'type': 'string', 'title': 'Model Id'}, 'replicas': {'type': 'integer', 'title': 'Replicas'}, 'active_days': {'type': 'number', 'title': 'Active Days'}, 'concurrency': {'type': 'integer', 'title': 'Concurrency'}, 'billing_plan': {'$ref': '#/$defs/BillingPlan', 'default': 'on-demand'}, 'node_pool_id': {'type': 'string', 'title': 'Node Pool Id'}, 'pilot_config': {'type': 'string', 'title': 'Pilot Config', 'default': ''}, 'cache_requests': {'type': 'integer', 'title': 'Cache Requests'}, 'quality_enabled': {'type': 'boolean', 'title': 'Quality Enabled'}, 'quantization_id': {'type': 'string', 'title': 'Quantization Id'}, 'tasks_per_month': {'type': 'number', 'title': 'Tasks Per Month'}, 'requests_per_day': {'type': 'number', 'title': 'Requests Per Day'}, 'review_hourly_usd': {'type': 'number', 'title': 'Review Hourly Usd'}, 'target_completion': {'type': 'number', 'title': 'Target Completion'}, 'tokens_per_second': {'type': 'number', 'title': 'Tokens Per Second'}, 'duty_cycle_percent': {'type': 'number', 'title': 'Duty Cycle Percent'}, 'target_first_token': {'type': 'number', 'title': 'Target First Token'}, 'target_utilization': {'type': 'number', 'title': 'Target Utilization'}, 'cache_prefix_tokens': {'type': 'number', 'title': 'Cache Prefix Tokens'}, 'measured_completion': {'type': 'number', 'title': 'Measured Completion'}, 'memory_overhead_pct': {'type': 'number', 'title': 'Memory Overhead Pct'}, 'input_tokens_request': {'type': 'number', 'title': 'Input Tokens Request'}, 'measured_concurrency': {'type': 'integer', 'title': 'Measured Concurrency'}, 'measured_first_token': {'type': 'number', 'title': 'Measured First Token'}, 'platform_monthly_usd': {'type': 'number', 'title': 'Platform Monthly Usd'}, 'output_tokens_request': {'type': 'number', 'title': 'Output Tokens Request'}}}, 'TaskComparison': {'type': 'object', 'title': 'TaskComparison', 'required': ['id', 'name', 'quality', 'requests', 'accepted', 'model_usd', 'review_usd', 'per_accepted_usd', 'fits', 'request_issue'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'fits': {'type': 'boolean', 'title': 'Fits'}, 'name': {'type': 'string', 'title': 'Name'}, 'quality': {'$ref': '#/$defs/TaskQuality'}, 'accepted': {'type': 'number', 'title': 'Accepted'}, 'requests': {'type': 'number', 'title': 'Requests'}, 'model_usd': {'type': 'number', 'title': 'Model Usd'}, 'review_usd': {'type': 'number', 'title': 'Review Usd'}, 'request_issue': {'type': 'string', 'title': 'Request Issue'}, 'per_accepted_usd': {'type': 'number', 'title': 'Per Accepted Usd'}}}, 'HostingEstimate': {'type': 'object', 'title': 'HostingEstimate', 'required': ['weight_memory_gb', 'required_memory_gb', 'nodes_per_replica', 'total_nodes', 'total_gpus', 'compute_monthly_usd', 'control_monthly_usd', 'platform_monthly_usd', 'total_monthly_usd', 'capacity_tokens_month', 'capacity_requests_day', 'requests_month', 'input_tokens_month', 'output_tokens_month', 'demand_capacity_pct', 'per_thousand_requests_usd', 'demand_fits', 'context_issue', 'topology_confirmed', 'qualified'], 'properties': {'qualified': {'type': 'boolean', 'title': 'Qualified'}, 'total_gpus': {'type': 'integer', 'title': 'Total Gpus'}, 'demand_fits': {'type': 'boolean', 'title': 'Demand Fits'}, 'total_nodes': {'type': 'integer', 'title': 'Total Nodes'}, 'context_issue': {'type': 'string', 'title': 'Context Issue'}, 'requests_month': {'type': 'number', 'title': 'Requests Month'}, 'weight_memory_gb': {'type': 'number', 'title': 'Weight Memory Gb'}, 'nodes_per_replica': {'type': 'integer', 'title': 'Nodes Per Replica'}, 'total_monthly_usd': {'type': 'number', 'title': 'Total Monthly Usd'}, 'input_tokens_month': {'type': 'number', 'title': 'Input Tokens Month'}, 'required_memory_gb': {'type': 'number', 'title': 'Required Memory Gb'}, 'topology_confirmed': {'type': 'boolean', 'title': 'Topology Confirmed'}, 'compute_monthly_usd': {'type': 'number', 'title': 'Compute Monthly Usd'}, 'control_monthly_usd': {'type': 'number', 'title': 'Control Monthly Usd'}, 'demand_capacity_pct': {'type': 'number', 'title': 'Demand Capacity Pct'}, 'output_tokens_month': {'type': 'number', 'title': 'Output Tokens Month'}, 'platform_monthly_usd': {'type': 'number', 'title': 'Platform Monthly Usd'}, 'capacity_requests_day': {'type': 'number', 'title': 'Capacity Requests Day'}, 'capacity_tokens_month': {'type': 'number', 'title': 'Capacity Tokens Month'}, 'per_thousand_requests_usd': {'type': 'number', 'title': 'Per Thousand Requests Usd'}}}, 'ModelComparison': {'type': 'object', 'title': 'ModelComparison', 'required': ['model', 'estimate', 'decision'], 'properties': {'model': {'$ref': '#/$defs/FrontierModel'}, 'decision': {'type': 'string', 'title': 'Decision'}, 'estimate': {'$ref': '#/$defs/HostingEstimate'}}}, 'PrecisionComparison': {'type': 'object', 'title': 'PrecisionComparison', 'required': ['quantization', 'estimate'], 'properties': {'estimate': {'$ref': '#/$defs/HostingEstimate'}, 'quantization': {'$ref': '#/$defs/Quantization'}}}}, 'title': 'HostingResult', 'required': ['scenario_url', 'parameters', 'inputs', 'estimate', 'apis', 'models', 'node_pools', 'quantizations', 'presets', 'model_comparisons', 'precision_comparisons', 'tasks', 'comparison_ready', 'validation', 'latency', 'pilot_configuration', 'calculated_on', 'snapshot_date', 'sources', 'units', 'limitations'], 'properties': {'apis': {'type': 'array', 'items': {'$ref': '#/$defs/APIComparison'}, 'title': 'Apis'}, 'tasks': {'type': 'array', 'items': {'$ref': '#/$defs/TaskComparison'}, 'title': 'Tasks'}, 'units': {'type': 'object', 'title': 'Units', 'additionalProperties': {'type': 'string'}}, 'inputs': {'$ref': '#/$defs/HostingInputs'}, 'models': {'type': 'array', 'items': {'$ref': '#/$defs/FrontierModel'}, 'title': 'Models'}, 'latency': {'type': 'string', 'title': 'Latency'}, 'presets': {'type': 'array', 'items': {'$ref': '#/$defs/DemandPreset'}, 'title': 'Presets'}, 'sources': {'type': 'object', 'title': 'Sources', 'additionalProperties': {'type': 'string'}}, 'estimate': {'$ref': '#/$defs/HostingEstimate'}, 'node_pools': {'type': 'array', 'items': {'$ref': '#/$defs/GKENodePool'}, 'title': 'Node Pools'}, 'parameters': {'type': 'object', 'title': 'Parameters', 'additionalProperties': {'type': 'string'}}, 'validation': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Validation'}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations'}, 'scenario_url': {'type': 'string', 'title': 'Scenario Url'}, 'calculated_on': {'type': 'string', 'title': 'Calculated On'}, 'quantizations': {'type': 'array', 'items': {'$ref': '#/$defs/Quantization'}, 'title': 'Quantizations'}, 'snapshot_date': {'type': 'string', 'title': 'Snapshot Date'}, 'comparison_ready': {'type': 'boolean', 'title': 'Comparison Ready'}, 'model_comparisons': {'type': 'array', 'items': {'$ref': '#/$defs/ModelComparison'}, 'title': 'Model Comparisons'}, 'pilot_configuration': {'type': 'string', 'title': 'Pilot Configuration'}, 'precision_comparisons': {'type': 'array', 'items': {'$ref': '#/$defs/PrecisionComparison'}, 'title': 'Precision Comparisons'}}}
get_article
Read an article
Read a public article's complete Markdown, dates, canonical URL, and hosted section links. Use a slug from search_articles; unknown and draft articles are unavailable.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'get_articleArguments', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'title': 'Slug', 'pattern': '^[a-z0-9]+(?:-[a-z0-9]+)*$', 'maxLength': 200, 'minLength': 1}}}
Schéma de sortie
{'type': 'object', '$defs': {'ArticleSummary': {'type': 'object', 'title': 'ArticleSummary', 'required': ['date', 'updated', 'title', 'description', 'slug', 'url', 'image_url', 'image_alt', 'tags', 'reading_minutes'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'date': {'type': 'string', 'title': 'Date', 'format': 'date-time'}, 'slug': {'type': 'string', 'title': 'Slug'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Tags'}, 'title': {'type': 'string', 'title': 'Title'}, 'updated': {'type': 'string', 'title': 'Updated', 'format': 'date-time'}, 'canonical': {'type': 'string', 'title': 'Canonical', 'default': ''}, 'image_alt': {'type': 'string', 'title': 'Image Alt'}, 'image_url': {'type': 'string', 'title': 'Image Url'}, 'syndicated': {'type': 'string', 'title': 'Syndicated', 'default': ''}, 'description': {'type': 'string', 'title': 'Description'}, 'reading_minutes': {'type': 'integer', 'title': 'Reading Minutes'}}}}, 'title': 'ArticleResult', 'required': ['article', 'canonical_url', 'markdown', 'sections'], 'properties': {'article': {'$ref': '#/$defs/ArticleSummary'}, 'markdown': {'type': 'string', 'title': 'Markdown'}, 'sections': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'title': 'Sections'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}}
get_profile
Get profile
Return the core profile: identity, headline, job title, contact, socials, biography, and areas of expertise.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'get_profileArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', '$defs': {'Metadata': {'type': 'object', 'title': 'Metadata', 'required': ['name', 'alternate_name', 'site_name', 'title', 'job_title', 'headline_primary', 'headline_secondary', 'description', 'keywords', 'email', 'calendar_url', 'site_url', 'twitter_handle', 'socials', 'work_location'], 'properties': {'name': {'type': 'string', 'title': 'Name'}, 'email': {'type': 'string', 'title': 'Email'}, 'title': {'type': 'string', 'title': 'Title'}, 'socials': {'type': 'array', 'items': {'$ref': '#/$defs/SocialLink'}, 'title': 'Socials'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Keywords'}, 'site_url': {'type': 'string', 'title': 'Site Url'}, 'job_title': {'type': 'string', 'title': 'Job Title'}, 'site_name': {'type': 'string', 'title': 'Site Name'}, 'description': {'type': 'string', 'title': 'Description'}, 'calendar_url': {'type': 'string', 'title': 'Calendar Url'}, 'work_location': {'type': 'string', 'title': 'Work Location'}, 'alternate_name': {'type': 'string', 'title': 'Alternate Name'}, 'twitter_handle': {'type': 'string', 'title': 'Twitter Handle'}, 'headline_primary': {'type': 'string', 'title': 'Headline Primary'}, 'headline_secondary': {'type': 'string', 'title': 'Headline Secondary'}}}, 'SocialLink': {'type': 'object', 'title': 'SocialLink', 'required': ['name', 'url', 'icon'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'icon': {'type': 'string', 'title': 'Icon'}, 'name': {'type': 'string', 'title': 'Name'}, 'header': {'type': 'boolean', 'title': 'Header', 'default': False}}}, 'ExpertiseCard': {'type': 'object', 'title': 'ExpertiseCard', 'required': ['title', 'emoji', 'description'], 'properties': {'emoji': {'type': 'string', 'title': 'Emoji'}, 'title': {'type': 'string', 'title': 'Title'}, 'description': {'type': 'string', 'title': 'Description'}}}, 'LeadershipRole': {'type': 'object', 'title': 'LeadershipRole', 'required': ['role', 'organization', 'description', 'url'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'role': {'type': 'string', 'title': 'Role'}, 'description': {'type': 'string', 'title': 'Description'}, 'organization': {'type': 'string', 'title': 'Organization'}}}}, 'title': 'ProfileResult', 'required': ['metadata', 'biography', 'leadership', 'expertise'], 'properties': {'metadata': {'$ref': '#/$defs/Metadata'}, 'biography': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Biography'}, 'expertise': {'type': 'array', 'items': {'$ref': '#/$defs/ExpertiseCard'}, 'title': 'Expertise'}, 'leadership': {'type': 'array', 'items': {'$ref': '#/$defs/LeadershipRole'}, 'title': 'Leadership'}}}
get_services
Get professional services
List the professional services on offer (AI architecture advisory and mentoring) with availability and how to book.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'servicesArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', '$defs': {'Service': {'type': 'object', 'title': 'Service', 'required': ['icon', 'title', 'description', 'badge', 'badge_type', 'cta_text', 'cta_url'], 'properties': {'icon': {'type': 'string', 'title': 'Icon'}, 'badge': {'type': 'string', 'title': 'Badge'}, 'title': {'type': 'string', 'title': 'Title'}, 'cta_url': {'type': 'string', 'title': 'Cta Url'}, 'cta_text': {'type': 'string', 'title': 'Cta Text'}, 'badge_type': {'type': 'string', 'title': 'Badge Type'}, 'description': {'type': 'string', 'title': 'Description'}}}}, 'title': 'ServicesResult', 'required': ['services'], 'properties': {'services': {'type': 'array', 'items': {'$ref': '#/$defs/Service'}, 'title': 'Services'}}}
list_certifications
List credentials
List professional certifications, badges, and course specializations with their issuers.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'list_certificationsArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', '$defs': {'CertificationBadge': {'type': 'object', 'title': 'CertificationBadge', 'required': ['url', 'logo', 'title', 'issuer', 'cert_id', 'active'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'logo': {'type': 'string', 'title': 'Logo'}, 'title': {'type': 'string', 'title': 'Title'}, 'active': {'type': 'boolean', 'title': 'Active'}, 'issuer': {'type': 'string', 'title': 'Issuer'}, 'cert_id': {'type': 'string', 'title': 'Cert Id'}}}, 'CertificationEntry': {'type': 'object', 'title': 'CertificationEntry', 'required': ['url', 'logo', 'title', 'issuer_details'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'logo': {'type': 'string', 'title': 'Logo'}, 'title': {'type': 'string', 'title': 'Title'}, 'issuer_details': {'type': 'string', 'title': 'Issuer Details'}}}}, 'title': 'CertificationsResult', 'required': ['certifications', 'specializations'], 'properties': {'certifications': {'type': 'array', 'items': {'$ref': '#/$defs/CertificationBadge'}, 'title': 'Certifications'}, 'specializations': {'type': 'array', 'items': {'$ref': '#/$defs/CertificationEntry'}, 'title': 'Specializations'}}}
list_experience
List work experience
List professional work experience: companies, roles, descriptions, and skill tags.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'list_experienceArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', '$defs': {'WorkExperience': {'type': 'object', 'title': 'WorkExperience', 'required': ['company', 'logo', 'title', 'brand_color', 'description', 'tags'], 'properties': {'logo': {'type': 'string', 'title': 'Logo'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Tags'}, 'title': {'type': 'string', 'title': 'Title'}, 'company': {'type': 'string', 'title': 'Company'}, 'brand_color': {'type': 'string', 'title': 'Brand Color'}, 'description': {'type': 'string', 'title': 'Description'}}}}, 'title': 'ExperienceResult', 'required': ['experience'], 'properties': {'experience': {'type': 'array', 'items': {'$ref': '#/$defs/WorkExperience'}, 'title': 'Experience'}}}
list_projects
List projects
List open-source projects and educational YouTube series.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'list_projectsArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', '$defs': {'Project': {'type': 'object', 'title': 'Project', 'required': ['title', 'href', 'description'], 'properties': {'href': {'type': 'string', 'title': 'Href'}, 'repo': {'type': 'string', 'title': 'Repo', 'default': ''}, 'title': {'type': 'string', 'title': 'Title'}, 'description': {'type': 'string', 'title': 'Description'}}}, 'Playlist': {'type': 'object', 'title': 'Playlist', 'required': ['title', 'url', 'description', 'cta'], 'properties': {'cta': {'type': 'string', 'title': 'Cta'}, 'url': {'type': 'string', 'title': 'Url'}, 'title': {'type': 'string', 'title': 'Title'}, 'description': {'type': 'string', 'title': 'Description'}}}}, 'title': 'ProjectsResult', 'required': ['open_source', 'youtube_series'], 'properties': {'open_source': {'type': 'array', 'items': {'$ref': '#/$defs/Project'}, 'title': 'Open Source'}, 'youtube_series': {'type': 'array', 'items': {'$ref': '#/$defs/Playlist'}, 'title': 'Youtube Series'}}}
list_publications
List publications
List academic and written publications: the PhD thesis, peer-reviewed papers, and hosted articles.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'list_publicationsArguments', 'properties': {}}
Schéma de sortie
{'type': 'object', '$defs': {'Thesis': {'type': 'object', 'title': 'Thesis', 'required': ['title', 'url', 'institution_details', 'description', 'links'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'links': {'type': 'array', 'items': {'$ref': '#/$defs/ThesisLink'}, 'title': 'Links'}, 'title': {'type': 'string', 'title': 'Title'}, 'description': {'type': 'string', 'title': 'Description'}, 'institution_details': {'type': 'string', 'title': 'Institution Details'}}}, 'ThesisLink': {'type': 'object', 'title': 'ThesisLink', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'label': {'type': 'string', 'title': 'Label'}}}, 'ResearchPaper': {'type': 'object', 'title': 'ResearchPaper', 'required': ['title', 'url', 'venue', 'code', 'code_label'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'code': {'type': 'string', 'title': 'Code'}, 'title': {'type': 'string', 'title': 'Title'}, 'venue': {'type': 'string', 'title': 'Venue'}, 'code_label': {'type': 'string', 'title': 'Code Label'}}}, 'ArticleSummary': {'type': 'object', 'title': 'ArticleSummary', 'required': ['date', 'updated', 'title', 'description', 'slug', 'url', 'image_url', 'image_alt', 'tags', 'reading_minutes'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'date': {'type': 'string', 'title': 'Date', 'format': 'date-time'}, 'slug': {'type': 'string', 'title': 'Slug'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Tags'}, 'title': {'type': 'string', 'title': 'Title'}, 'updated': {'type': 'string', 'title': 'Updated', 'format': 'date-time'}, 'canonical': {'type': 'string', 'title': 'Canonical', 'default': ''}, 'image_alt': {'type': 'string', 'title': 'Image Alt'}, 'image_url': {'type': 'string', 'title': 'Image Url'}, 'syndicated': {'type': 'string', 'title': 'Syndicated', 'default': ''}, 'description': {'type': 'string', 'title': 'Description'}, 'reading_minutes': {'type': 'integer', 'title': 'Reading Minutes'}}}}, 'title': 'PublicationsResult', 'required': ['thesis', 'papers', 'articles'], 'properties': {'papers': {'type': 'array', 'items': {'$ref': '#/$defs/ResearchPaper'}, 'title': 'Papers'}, 'thesis': {'$ref': '#/$defs/Thesis'}, 'articles': {'type': 'array', 'items': {'$ref': '#/$defs/ArticleSummary'}, 'title': 'Articles'}}}
search_articles
Search articles
Search the hosted articles by relevance (BM25 over titles, tags, descriptions, and full text) and return the best matches. Use it to answer what Fmind has written about a topic instead of listing every publication.
Lecture seule
Schéma d’entrée
{'type': 'object', 'title': 'search_articlesArguments', 'required': ['query'], 'properties': {'tag': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Tag', 'default': None, 'description': 'optionally keep only articles with this tag, case-insensitive: Agent, Coding, LLM, RAG, MLOps, Cloud, Python, Project, Demo, Guide'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 10, 'description': 'maximum number of results to return (default 10, maximum 50)'}, 'query': {'type': 'string', 'title': 'Query', 'description': 'words to search for across article titles, tags, descriptions, and full text'}}}
Schéma de sortie
{'type': 'object', '$defs': {'ArticleSummary': {'type': 'object', 'title': 'ArticleSummary', 'required': ['date', 'updated', 'title', 'description', 'slug', 'url', 'image_url', 'image_alt', 'tags', 'reading_minutes'], 'properties': {'url': {'type': 'string', 'title': 'Url'}, 'date': {'type': 'string', 'title': 'Date', 'format': 'date-time'}, 'slug': {'type': 'string', 'title': 'Slug'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Tags'}, 'title': {'type': 'string', 'title': 'Title'}, 'updated': {'type': 'string', 'title': 'Updated', 'format': 'date-time'}, 'canonical': {'type': 'string', 'title': 'Canonical', 'default': ''}, 'image_alt': {'type': 'string', 'title': 'Image Alt'}, 'image_url': {'type': 'string', 'title': 'Image Url'}, 'syndicated': {'type': 'string', 'title': 'Syndicated', 'default': ''}, 'description': {'type': 'string', 'title': 'Description'}, 'reading_minutes': {'type': 'integer', 'title': 'Reading Minutes'}}}}, 'title': 'SearchArticlesResult', 'required': ['query', 'articles', 'total'], 'properties': {'query': {'type': 'string', 'title': 'Query'}, 'total': {'type': 'integer', 'title': 'Total'}, 'articles': {'type': 'array', 'items': {'$ref': '#/$defs/ArticleSummary'}, 'title': 'Articles'}}}
Modifié
search_articles
25 September 2026 02:51
Modifié
get_profile
21 September 2026 02:50
Ajouté
compare_llm_hosting
17 September 2026 12:41
Ajouté
get_article
17 September 2026 12:41
Ajouté
get_services
17 September 2026 12:41
Ajouté
list_projects
17 September 2026 12:41
Ajouté
search_articles
17 September 2026 12:41
Ajouté
list_publications
17 September 2026 12:41
Ajouté
list_certifications
17 September 2026 12:41
Ajouté
list_experience
17 September 2026 12:41
Ajouté
get_profile
17 September 2026 12:41