Skip to main content
Glama
basic_usage.py3.85 kB
#!/usr/bin/env python3 """ Basic usage examples for MCP Router """ import sys from pathlib import Path # Add src to path sys.path.insert(0, str(Path(__file__).parent.parent / "src")) from router import MCPRouter, TaskType from client import MCPRouterClient def example_routing(): """Example of routing queries.""" print("=" * 60) print("MCP Router - Basic Routing Examples") print("=" * 60) router = MCPRouter() queries = [ ("Explain quantum computing", "balanced"), ("Write a Python function to sort a list", "speed"), ("Design a distributed system architecture", "quality"), ("Summarize this article", "cost"), ] for query, strategy in queries: print(f"\nQuery: {query}") print(f"Strategy: {strategy}") print("-" * 60) decision = router.route(query, strategy=strategy) print(f"Selected: {decision.selected_model.name}") print(f"Confidence: {decision.confidence:.2%}") print(f"Reasoning: {decision.reasoning}") print(f"Estimated Cost: ${decision.estimated_cost:.6f}") def example_execution(): """Example of executing queries through the router.""" print("\n" + "=" * 60) print("MCP Router - Query Execution Examples") print("=" * 60) router = MCPRouter() client = MCPRouterClient(router) queries = [ "What is 2+2?", "Write a hello world function in Python", ] for query in queries: print(f"\nQuery: {query}") print("-" * 60) try: result = client.execute(query, strategy="balanced") print(f"Model: {result['model']}") print(f"Response: {result['content'][:200]}...") print(f"Usage: {result['usage']}") except Exception as e: print(f"Error: {e}") def example_custom_model(): """Example of adding a custom model.""" print("\n" + "=" * 60) print("MCP Router - Custom Model Registration") print("=" * 60) router = MCPRouter() from router import ModelCapabilities, TaskType # Register a custom model router.register_model(ModelCapabilities( name="Custom Fast Model", provider="custom", model_id="custom-fast-v1", supports_reasoning=True, supports_code=True, max_tokens=4096, context_window=16000, cost_per_1k_tokens_input=0.10, cost_per_1k_tokens_output=0.20, avg_latency_ms=200, reasoning_quality=0.70, code_quality=0.75, speed_score=0.98, preferred_tasks=[TaskType.CODE_EDIT, TaskType.SUMMARIZATION], api_key_env_var="CUSTOM_API_KEY" )) print("Custom model registered!") print(f"Total models: {len(router.models)}") def example_statistics(): """Example of viewing routing statistics.""" print("\n" + "=" * 60) print("MCP Router - Statistics") print("=" * 60) router = MCPRouter() # Make some routing decisions queries = [ "Explain machine learning", "Write Python code", "Summarize this", ] for query in queries: router.route(query) # Get statistics stats = router.get_routing_stats() print(f"\nTotal Routes: {stats['total_routes']}") print(f"Model Usage:") for model_id, count in stats.get('model_usage', {}).items(): print(f" {model_id}: {count}") print(f"Average Confidence: {stats.get('avg_confidence', 0):.2%}") if __name__ == "__main__": try: example_routing() example_execution() example_custom_model() example_statistics() except Exception as e: print(f"Error: {e}") import traceback traceback.print_exc() sys.exit(1)

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/AI-Castle-Labs/mcp-router'

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