درس ۲۸ از ۳۳

Completion API (bonus)

عنوان اصلی: Completion API

هدف یادگیری: استفاده از completion/complete برای auto-fill argument روی promptها و resource templateها.

سرورها capability "completions": {} را اعلام می‌کنند تا UI host بتواند typeahead پیشنهاد دهد. مثلاً وقتی کاربر slash command /code_review را تایپ می‌کند و در فرم argument language است، client یک completion/complete می‌فرستد و server گزینه‌های ممکن را برمی‌گرداند («python»، «typescript»، …).

مثال عملی — Python

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Completer")

@mcp.completion()
async def complete_language(ref, argument, value, context) -> list[str]:
    """Suggest completions for the 'language' argument."""
    options = ["python", "typescript", "javascript", "rust", "go"]
    return [o for o in options if o.startswith(value)]

اشتباهات رایج

  • ارسال لیست‌های بسیار بزرگ. spec توصیه می‌کند پاسخ‌ها کوچک نگه داشته شوند (typically <100 item).