Skip to content

Commit 8cfa57d

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

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

tests/server/test_session.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from mcp.shared.session import RequestResponder
1212
from mcp.types import (
1313
ClientNotification,
14+
CompletionsCapability,
1415
InitializedNotification,
1516
PromptsCapability,
1617
ResourcesCapability,
@@ -88,6 +89,7 @@ async def test_server_capabilities():
8889
caps = server.get_capabilities(notification_options, experimental_capabilities)
8990
assert caps.prompts is None
9091
assert caps.resources is None
92+
assert caps.completions is None
9193

9294
# Add a prompts handler
9395
@server.list_prompts()
@@ -97,6 +99,7 @@ async def list_prompts():
9799
caps = server.get_capabilities(notification_options, experimental_capabilities)
98100
assert caps.prompts == PromptsCapability(listChanged=False)
99101
assert caps.resources is None
102+
assert caps.completions is None
100103

101104
# Add a resources handler
102105
@server.list_resources()
@@ -106,6 +109,17 @@ async def list_resources():
106109
caps = server.get_capabilities(notification_options, experimental_capabilities)
107110
assert caps.prompts == PromptsCapability(listChanged=False)
108111
assert caps.resources == ResourcesCapability(subscribe=False, listChanged=False)
112+
assert caps.completions is None
113+
114+
# Add a complete handler
115+
@server.completion()
116+
async def complete():
117+
return None
118+
119+
caps = server.get_capabilities(notification_options, experimental_capabilities)
120+
assert caps.prompts == PromptsCapability(listChanged=False)
121+
assert caps.resources == ResourcesCapability(subscribe=False, listChanged=False)
122+
assert caps.completions == CompletionsCapability()
109123

110124

111125
@pytest.mark.anyio

0 commit comments

Comments
 (0)