|
1 | | -"""Tests for the client-side Skills extension (SEP-2640, `mcp.client.skills`).""" |
| 1 | +"""Tests for the client-side Skills extension (SEP-2640, `mcp.client.extensions.skills`).""" |
2 | 2 |
|
3 | 3 | import hashlib |
4 | 4 | from collections.abc import AsyncIterator |
|
9 | 9 | from mcp_types import INVALID_PARAMS, Resource |
10 | 10 |
|
11 | 11 | from mcp.client.client import Client |
12 | | -from mcp.client.skills import BoundSkills |
13 | | -from mcp.client.skills import Skills as ClientSkills |
| 12 | +from mcp.client.extensions.skills import Skills as ClientSkills |
| 13 | +from mcp.client.extensions.skills import SkillsClient |
14 | 14 | from mcp.server.context import ServerRequestContext |
15 | 15 | from mcp.server.extension import Extension, MethodBinding |
16 | 16 | from mcp.server.mcpserver import MCPServer |
@@ -82,7 +82,7 @@ async def handler(ctx: ServerRequestContext[Any, Any], params: ListSkillsParams) |
82 | 82 | class _NonConformantGetSkill(Extension): |
83 | 83 | """A server that advertises the extension but answers `skills/get` with the wrong skill - |
84 | 84 | the case the SDK's own `Skills` extension already rules out server-side, so this |
85 | | - exercises `mcp.client.skills.get_skill`'s own defense-in-depth check.""" |
| 85 | + exercises `mcp.client.extensions.skills.SkillsClient.get_skill`'s own defense-in-depth check.""" |
86 | 86 |
|
87 | 87 | identifier = EXTENSION_ID |
88 | 88 |
|
@@ -138,7 +138,7 @@ def _server(*, with_directory_read: bool = False) -> MCPServer: |
138 | 138 |
|
139 | 139 |
|
140 | 140 | @asynccontextmanager |
141 | | -async def _skills(server: MCPServer) -> AsyncIterator[BoundSkills]: |
| 141 | +async def _skills(server: MCPServer) -> AsyncIterator[SkillsClient]: |
142 | 142 | """Register the client `Skills` extension, connect, and yield the bound verbs.""" |
143 | 143 | extension = ClientSkills() |
144 | 144 | async with Client(server, extensions=[extension]) as client: |
|
0 commit comments