MCPcopy Create free account
hub / github.com/IBM/mcp-cli / main

Function main

examples/tools/server_add_and_execute_tool.py:213–336  ·  view source on GitHub ↗

Run the complete add server and execute tool demo.

()

Source from the content-addressed store, hash-verified

211
212
213async 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:

Callers 1

Calls 11

get_configMethod · 0.95
saveMethod · 0.95
get_preference_managerFunction · 0.90
ConfigManagerClass · 0.90
list_server_toolsFunction · 0.85
execute_tool_exampleFunction · 0.85
get_runtime_serverMethod · 0.80
get_runtime_serversMethod · 0.80
successMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected