Skip to content

Commit d1860b3

Browse files
Add test for completions capability exposition by server
1 parent ccdf624 commit d1860b3

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

tests/server/test_session.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,13 @@
1111
from mcp.shared.session import RequestResponder
1212
from mcp.types import (
1313
ClientNotification,
14+
Completion,
15+
CompletionArgument,
16+
CompletionsCapability,
1417
InitializedNotification,
18+
PromptReference,
1519
PromptsCapability,
20+
ResourceReference,
1621
ResourcesCapability,
1722
ServerCapabilities,
1823
)
@@ -88,6 +93,7 @@ async def test_server_capabilities():
8893
caps = server.get_capabilities(notification_options, experimental_capabilities)
8994
assert caps.prompts is None
9095
assert caps.resources is None
96+
assert caps.completions is None
9197

9298
# Add a prompts handler
9399
@server.list_prompts()
@@ -97,6 +103,7 @@ async def list_prompts():
97103
caps = server.get_capabilities(notification_options, experimental_capabilities)
98104
assert caps.prompts == PromptsCapability(listChanged=False)
99105
assert caps.resources is None
106+
assert caps.completions is None
100107

101108
# Add a resources handler
102109
@server.list_resources()
@@ -106,6 +113,21 @@ async def list_resources():
106113
caps = server.get_capabilities(notification_options, experimental_capabilities)
107114
assert caps.prompts == PromptsCapability(listChanged=False)
108115
assert caps.resources == ResourcesCapability(subscribe=False, listChanged=False)
116+
assert caps.completions is None
117+
118+
# Add a complete handler
119+
@server.completion()
120+
async def complete(
121+
ref: PromptReference | ResourceReference, argument: CompletionArgument
122+
):
123+
return Completion(
124+
values=["completion1", "completion2"],
125+
)
126+
127+
caps = server.get_capabilities(notification_options, experimental_capabilities)
128+
assert caps.prompts == PromptsCapability(listChanged=False)
129+
assert caps.resources == ResourcesCapability(subscribe=False, listChanged=False)
130+
assert caps.completions == CompletionsCapability()
109131

110132

111133
@pytest.mark.anyio

0 commit comments

Comments
 (0)