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).