MCP Server

Fmind Freelance AI Architect Website

io.github.fmind/portfolio
Knowledge & Documentation Public & reachable MCP 2025-11-25

What this MCP does

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.
Read only
Input schema
{'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}}}}
Output schema
{'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.
Read only
Input schema
{'type': 'object', 'title': 'get_articleArguments', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'title': 'Slug', 'pattern': '^[a-z0-9]+(?:-[a-z0-9]+)*$', 'maxLength': 200, 'minLength': 1}}}
Output schema
{'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.
Read only
Input schema
{'type': 'object', 'title': 'get_profileArguments', 'properties': {}}
Output schema
{'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.
Read only
Input schema
{'type': 'object', 'title': 'servicesArguments', 'properties': {}}
Output schema
{'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.
Read only
Input schema
{'type': 'object', 'title': 'list_certificationsArguments', 'properties': {}}
Output schema
{'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.
Read only
Input schema
{'type': 'object', 'title': 'list_experienceArguments', 'properties': {}}
Output schema
{'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.
Read only
Input schema
{'type': 'object', 'title': 'list_projectsArguments', 'properties': {}}
Output schema
{'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.
Read only
Input schema
{'type': 'object', 'title': 'list_publicationsArguments', 'properties': {}}
Output schema
{'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.
Read only
Input schema
{'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'}}}
Output schema
{'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'}}}
Changed
search_articles
Sept. 25, 2026, 2:51 a.m.
Changed
get_profile
Sept. 21, 2026, 2:50 a.m.
Added
compare_llm_hosting
Sept. 17, 2026, 12:41 p.m.
Added
get_article
Sept. 17, 2026, 12:41 p.m.
Added
get_services
Sept. 17, 2026, 12:41 p.m.
Added
list_projects
Sept. 17, 2026, 12:41 p.m.
Added
search_articles
Sept. 17, 2026, 12:41 p.m.
Added
list_publications
Sept. 17, 2026, 12:41 p.m.
Added
list_certifications
Sept. 17, 2026, 12:41 p.m.
Added
list_experience
Sept. 17, 2026, 12:41 p.m.
Added
get_profile
Sept. 17, 2026, 12:41 p.m.