Run the completion client example.
()
| 19 | |
| 20 | |
| 21 | async def run(): |
| 22 | """Run the completion client example.""" |
| 23 | async with stdio_client(server_params) as (read, write): |
| 24 | async with ClientSession(read, write) as session: |
| 25 | # Initialize the connection |
| 26 | await session.initialize() |
| 27 | |
| 28 | # List available resource templates |
| 29 | templates = await session.list_resource_templates() |
| 30 | print("Available resource templates:") |
| 31 | for template in templates.resource_templates: |
| 32 | print(f" - {template.uri_template}") |
| 33 | |
| 34 | # List available prompts |
| 35 | prompts = await session.list_prompts() |
| 36 | print("\nAvailable prompts:") |
| 37 | for prompt in prompts.prompts: |
| 38 | print(f" - {prompt.name}") |
| 39 | |
| 40 | # Complete resource template arguments |
| 41 | if templates.resource_templates: |
| 42 | template = templates.resource_templates[0] |
| 43 | print(f"\nCompleting arguments for resource template: {template.uri_template}") |
| 44 | |
| 45 | # Complete without context |
| 46 | result = await session.complete( |
| 47 | ref=ResourceTemplateReference(type="ref/resource", uri=template.uri_template), |
| 48 | argument={"name": "owner", "value": "model"}, |
| 49 | ) |
| 50 | print(f"Completions for 'owner' starting with 'model': {result.completion.values}") |
| 51 | |
| 52 | # Complete with context - repo suggestions based on owner |
| 53 | result = await session.complete( |
| 54 | ref=ResourceTemplateReference(type="ref/resource", uri=template.uri_template), |
| 55 | argument={"name": "repo", "value": ""}, |
| 56 | context_arguments={"owner": "modelcontextprotocol"}, |
| 57 | ) |
| 58 | print(f"Completions for 'repo' with owner='modelcontextprotocol': {result.completion.values}") |
| 59 | |
| 60 | # Complete prompt arguments |
| 61 | if prompts.prompts: |
| 62 | prompt_name = prompts.prompts[0].name |
| 63 | print(f"\nCompleting arguments for prompt: {prompt_name}") |
| 64 | |
| 65 | result = await session.complete( |
| 66 | ref=PromptReference(type="ref/prompt", name=prompt_name), |
| 67 | argument={"name": "style", "value": ""}, |
| 68 | ) |
| 69 | print(f"Completions for 'style' argument: {result.completion.values}") |
| 70 | |
| 71 | |
| 72 | def main(): |
no test coverage detected