From 3bd16a10fb817a2ffde363d1b892178e17766e7b Mon Sep 17 00:00:00 2001 From: Eric Zhu Date: Fri, 25 Apr 2025 17:37:28 -0700 Subject: [PATCH 1/2] Add more mcp workbench examples to MCP API doc --- .../src/autogen_ext/tools/mcp/_workbench.py | 84 ++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) diff --git a/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_workbench.py b/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_workbench.py index 3272a86ee856..8c7dd90f19be 100644 --- a/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_workbench.py +++ b/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_workbench.py @@ -36,7 +36,9 @@ class McpWorkbench(Workbench, Component[McpWorkbenchConfig]): server_params (McpServerParams): The parameters to connect to the MCP server. This can be either a :class:`StdioServerParams` or :class:`SseServerParams`. - Example: + Examples: + + Here is a simple example of how to use the workbench with a `mcp-server-fetch` server: .. code-block:: python @@ -62,6 +64,86 @@ async def main() -> None: asyncio.run(main()) + Example of using the workbench with the `GitHub MCP Server `_: + + .. code-block:: python + + import asyncio + import os + from autogen_agentchat.agents import AssistantAgent + from autogen_agentchat.ui import Console + from autogen_ext.models.openai import OpenAIChatCompletionClient + from autogen_ext.tools.mcp import McpWorkbench, StdioServerParams + + + async def main() -> None: + model_client = OpenAIChatCompletionClient(model="gpt-4.1-nano") + server_params = StdioServerParams( + command="docker", + args=[ + "run", + "-i", + "--rm", + "-e", + "GITHUB_PERSONAL_ACCESS_TOKEN", + "ghcr.io/github/github-mcp-server", + ], + env={ + "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + }, + ) + async with McpWorkbench(server_params) as mcp: + agent = AssistantAgent( + "github_assistant", + model_client=model_client, + workbench=mcp, + reflect_on_tool_use=True, + model_client_stream=True, + ) + await Console(agent.run_stream(task="Is there a repository named Autogen")) + + + asyncio.run(main()) + + Example of using the workbench with the `Playwright MCP Server `_: + + .. code-block:: python + + # First run `npm install -g @playwright/mcp@latest` to install the MCP server. + import asyncio + from autogen_agentchat.agents import AssistantAgent + from autogen_agentchat.teams import RoundRobinGroupChat + from autogen_agentchat.conditions import TextMessageTermination + from autogen_agentchat.ui import Console + from autogen_ext.models.openai import OpenAIChatCompletionClient + from autogen_ext.tools.mcp import McpWorkbench, StdioServerParams + + + async def main() -> None: + model_client = OpenAIChatCompletionClient(model="gpt-4.1-nano") + server_params = StdioServerParams( + command="npx", + args=[ + "@playwright/mcp@latest", + "--headless", + ], + ) + async with McpWorkbench(server_params) as mcp: + agent = AssistantAgent( + "web_browsing_assistant", + model_client=model_client, + workbench=mcp, + model_client_stream=True, + ) + team = RoundRobinGroupChat( + [agent], + termination_condition=TextMessageTermination(source="web_browsing_assistant"), + ) + await Console(team.run_stream(task="Find out how many contributors for the microsoft/autogen repository")) + + + asyncio.run(main()) + """ component_provider_override = "autogen_ext.tools.mcp.McpWorkbench" From 4a5a0a25c517f1db390cc5f97c078a8ea63d91ba Mon Sep 17 00:00:00 2001 From: Eric Zhu Date: Fri, 25 Apr 2025 17:39:45 -0700 Subject: [PATCH 2/2] type --- .../packages/autogen-ext/src/autogen_ext/tools/mcp/_workbench.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_workbench.py b/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_workbench.py index 8c7dd90f19be..478968ec1622 100644 --- a/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_workbench.py +++ b/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_workbench.py @@ -69,7 +69,6 @@ async def main() -> None: .. code-block:: python import asyncio - import os from autogen_agentchat.agents import AssistantAgent from autogen_agentchat.ui import Console from autogen_ext.models.openai import OpenAIChatCompletionClient