Create a simple MCP server for testing.
()
| 50 | |
| 51 | @pytest.fixture |
| 52 | def simple_server() -> Server: |
| 53 | """Create a simple MCP server for testing.""" |
| 54 | |
| 55 | async def handle_list_resources( |
| 56 | ctx: ServerRequestContext, params: types.PaginatedRequestParams | None |
| 57 | ) -> ListResourcesResult: |
| 58 | return ListResourcesResult( |
| 59 | resources=[Resource(uri="memory://test", name="Test Resource", description="A test resource")] |
| 60 | ) |
| 61 | |
| 62 | async def handle_subscribe_resource(ctx: ServerRequestContext, params: types.SubscribeRequestParams) -> EmptyResult: |
| 63 | return EmptyResult() |
| 64 | |
| 65 | async def handle_unsubscribe_resource( |
| 66 | ctx: ServerRequestContext, params: types.UnsubscribeRequestParams |
| 67 | ) -> EmptyResult: |
| 68 | return EmptyResult() |
| 69 | |
| 70 | async def handle_set_logging_level(ctx: ServerRequestContext, params: types.SetLevelRequestParams) -> EmptyResult: |
| 71 | return EmptyResult() |
| 72 | |
| 73 | async def handle_completion(ctx: ServerRequestContext, params: types.CompleteRequestParams) -> types.CompleteResult: |
| 74 | return types.CompleteResult(completion=types.Completion(values=[])) |
| 75 | |
| 76 | return Server( |
| 77 | name="test_server", |
| 78 | on_list_resources=handle_list_resources, |
| 79 | on_subscribe_resource=handle_subscribe_resource, |
| 80 | on_unsubscribe_resource=handle_unsubscribe_resource, |
| 81 | on_set_logging_level=handle_set_logging_level, |
| 82 | on_completion=handle_completion, |
| 83 | ) |
| 84 | |
| 85 | |
| 86 | @pytest.fixture |