Run the complete add server and execute tool demo.
()
| 211 | |
| 212 | |
| 213 | async def main(): |
| 214 | """Run the complete add server and execute tool demo.""" |
| 215 | |
| 216 | output.rule( |
| 217 | "[bold magenta]🚀 Add Server & Execute Tool - Complete Demo[/bold magenta]" |
| 218 | ) |
| 219 | output.print() |
| 220 | output.info("This demo will:") |
| 221 | output.info(" 1. Add a new echo server") |
| 222 | output.info(" 2. Connect to all servers including the new one") |
| 223 | output.info(" 3. List available tools") |
| 224 | output.info(" 4. Execute a tool and show results") |
| 225 | output.info(" 5. Clean up") |
| 226 | output.print() |
| 227 | |
| 228 | pref_manager = get_preference_manager() |
| 229 | config_manager = ConfigManager() |
| 230 | |
| 231 | # Clean up any existing test-echo server from config file first |
| 232 | try: |
| 233 | config = config_manager.get_config() |
| 234 | if "test-echo" in config.servers: |
| 235 | del config.servers["test-echo"] |
| 236 | config_manager.save() |
| 237 | output.info("Cleaned up existing test-echo from config") |
| 238 | except Exception: |
| 239 | pass |
| 240 | |
| 241 | try: |
| 242 | # Step 1: Show initial servers |
| 243 | output.rule("[bold]Step 1: Initial Servers[/bold]") |
| 244 | await servers_action_async(args=["list"]) |
| 245 | output.print() |
| 246 | |
| 247 | # Step 2: Add a test echo server |
| 248 | output.rule("[bold]Step 2: Adding Test Echo Server[/bold]") |
| 249 | output.info("Adding a simple echo server for testing...") |
| 250 | |
| 251 | # Check if already exists in user prefs and remove if so |
| 252 | if pref_manager.get_runtime_server("test-echo"): |
| 253 | await servers_action_async(args=["remove", "test-echo"]) |
| 254 | |
| 255 | await servers_action_async( |
| 256 | args=["add", "test-echo", "stdio", "uvx", "chuk-mcp-echo", "stdio"] |
| 257 | ) |
| 258 | output.print() |
| 259 | |
| 260 | # Step 3: Verify server was added |
| 261 | output.rule("[bold]Step 3: Verify Server Added[/bold]") |
| 262 | await servers_action_async(args=["list"]) |
| 263 | output.print() |
| 264 | |
| 265 | # Step 4: Initialize tool manager with all servers |
| 266 | output.rule("[bold]Step 4: Connecting to Servers[/bold]") |
| 267 | tm = await initialize_tool_manager_with_servers() |
| 268 | output.print() |
| 269 | |
| 270 | if tm: |
no test coverage detected