test_connection.pyā¢2.61 kB
#!/usr/bin/env python3
"""
Simple script to test SearXNG connection and basic functionality.
Usage:
python examples/test_connection.py https://searx.be
"""
import asyncio
import sys
from searxng_mcp_server.client import SearXNGClient
async def test_connection(base_url: str) -> None:
"""Test connection to SearXNG instance."""
print(f"Testing connection to: {base_url}")
print("-" * 60)
async with SearXNGClient(base_url) as client:
# Test 1: Health Check
print("\n1. Health Check:")
try:
health = await client.health_check()
print(f" Status: {health['status']}")
print(f" Message: {health['message']}")
except Exception as e:
print(f" Error: {e}")
# Test 2: Get Configuration
print("\n2. Instance Configuration:")
try:
config = await client.get_config()
print(f" Instance Name: {config.get('instance_name', 'N/A')}")
print(f" Available Categories: {', '.join(config.get('categories', []))}")
print(f" Number of Engines: {len(config.get('engines', []))}")
except Exception as e:
print(f" Error: {e}")
# Test 3: Search Suggestions
print("\n3. Search Suggestions:")
try:
suggestions = await client.get_suggestions("python", language="en")
print(f" Suggestions for 'python': {suggestions[:5]}")
except Exception as e:
print(f" Error: {e}")
# Test 4: Basic Search
print("\n4. Basic Search:")
try:
response = await client.search(
query="test search",
categories=["general"],
language="en",
)
print(f" Query: {response.query}")
print(f" Number of Results: {response.number_of_results}")
if response.results:
print(f" First Result: {response.results[0].title}")
print(f" URL: {response.results[0].url}")
except Exception as e:
print(f" Error: {e}")
print("\n" + "-" * 60)
print("Testing complete!")
def main() -> None:
"""Main entry point."""
if len(sys.argv) < 2:
print("Usage: python test_connection.py <searxng_url>")
print("\nExample:")
print(" python test_connection.py https://searx.be")
print(" python test_connection.py http://localhost:8888")
sys.exit(1)
base_url = sys.argv[1]
asyncio.run(test_connection(base_url))
if __name__ == "__main__":
main()