MCP 서버

Fmind Freelance AI Architect Website

io.github.fmind/portfolio
지식 및 문서 공개 · 연결 가능 MCP 2025-11-25

이 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.
읽기 전용
입력 스키마
{'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}}}}
출력 스키마
{'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.
읽기 전용
입력 스키마
{'type': 'object', 'title': 'get_articleArguments', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'title': 'Slug', 'pattern': '^[a-z0-9]+(?:-[a-z0-9]+)*$', 'maxLength': 200, 'minLength': 1}}}
출력 스키마
{'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.
읽기 전용
입력 스키마
{'type': 'object', 'title': 'get_profileArguments', 'properties': {}}
출력 스키마
{'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.
읽기 전용
입력 스키마
{'type': 'object', 'title': 'servicesArguments', 'properties': {}}
출력 스키마
{'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.
읽기 전용
입력 스키마
{'type': 'object', 'title': 'list_certificationsArguments', 'properties': {}}
출력 스키마
{'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.
읽기 전용
입력 스키마
{'type': 'object', 'title': 'list_experienceArguments', 'properties': {}}
출력 스키마
{'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.
읽기 전용
입력 스키마
{'type': 'object', 'title': 'list_projectsArguments', 'properties': {}}
출력 스키마
{'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.
읽기 전용
입력 스키마
{'type': 'object', 'title': 'list_publicationsArguments', 'properties': {}}
출력 스키마
{'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.
읽기 전용
입력 스키마
{'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'}}}
출력 스키마
{'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'}}}
변경됨
search_articles
2026년 9월 25일 2:51 AM
변경됨
get_profile
2026년 9월 21일 2:50 AM
추가됨
compare_llm_hosting
2026년 9월 17일 12:41 PM
추가됨
get_article
2026년 9월 17일 12:41 PM
추가됨
get_services
2026년 9월 17일 12:41 PM
추가됨
list_projects
2026년 9월 17일 12:41 PM
추가됨
search_articles
2026년 9월 17일 12:41 PM
추가됨
list_publications
2026년 9월 17일 12:41 PM
추가됨
list_certifications
2026년 9월 17일 12:41 PM
추가됨
list_experience
2026년 9월 17일 12:41 PM
추가됨
get_profile
2026년 9월 17일 12:41 PM