import asyncio import shutil from agents import Agent, Runner, trace from agents.mcp import MCPServer, MCPServerStdio async def run(mcp_server: MCPServer, directory_path: str): agent = Agent( name="Assistant", instructions=f"Answer questions about the git repository at {directory_path}, use that for repo_path", mcp_servers=[mcp_server], ) message = "Who's the most frequent contributor?" print("\n" + "-" * 40) print(f"Running: {message}") result = await Runner.run(starting_agent=agent, input=message) print(result.final_output) message = "Summarize the last change in the repository." print("\n" + "-" * 40) print(f"Running: {message}") result = await Runner.run(starting_agent=agent, input=message) print(result.final_output) async def main(): # Ask the user for the directory path directory_path = input("Please enter the path to the git repository: ") async with MCPServerStdio( params={ "command": "uvx", "args": [ "mcp-server-git" ] } ) as server: with trace(workflow_name="MCP Git Example"): await run(server, directory_path) if __name__ == "__main__": if not shutil.which("uvx"): raise RuntimeError("uvx is not installed. Please install it with `pip install uvx`.") asyncio.run(main())