Skip to main content
Glama
test_mcp_integration.py1.71 kB
""" Integration tests for MCP server functionality. Tests that start the actual MCP server and verify it works through the MCP protocol. """ import os import pytest from mcp.client.session import ClientSession from mcp.client.stdio import StdioServerParameters, stdio_client @pytest.mark.integration @pytest.mark.anyio async def test_mcp_server_integration(): """ Integration test: Start MCP server and verify basic functionality. This test validates: - Server starts without errors - MCP protocol handshake succeeds - Stdio transport works - Multiple tools are registered and discoverable """ # Set environment for stdio mode env = os.environ.copy() env["MCP_TRANSPORT"] = "stdio" server_params = StdioServerParameters( command="python", args=["-m", "mcp_outline"], env=env ) async with stdio_client(server_params) as (read, write): async with ClientSession(read, write) as session: # Initialize the session result = await session.initialize() assert result.serverInfo.name == "Document Outline" assert result.protocolVersion is not None # List available tools tools_result = await session.list_tools() # Smoke test: Verify we get a reasonable number of tools # Using > 2 to be flexible as tools are added/removed assert len(tools_result.tools) > 2, ( "Server should register multiple tools" ) # Verify tools have expected structure for tool in tools_result.tools: assert tool.name is not None assert tool.description is not None

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vortiago/mcp-outline'

If you have feedback or need assistance with the MCP directory API, please join our Discord server