MCPcopy Index your code
hub / github.com/modelcontextprotocol/python-sdk / run

Function run

examples/snippets/clients/completion_client.py:21–69  ·  view source on GitHub ↗

Run the completion client example.

()

Source from the content-addressed store, hash-verified

19
20
21async 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
72def main():

Callers 1

mainFunction · 0.70

Calls 8

stdio_clientFunction · 0.90
ClientSessionClass · 0.90
PromptReferenceClass · 0.90
initializeMethod · 0.45
list_promptsMethod · 0.45
completeMethod · 0.45

Tested by

no test coverage detected