From ef9b4cf6a23d804e36f4a3604e8d61f9c803dd90 Mon Sep 17 00:00:00 2001 From: David Soria Parra Date: Thu, 12 Dec 2024 16:41:30 +0000 Subject: [PATCH] Remove click dependency in client --- src/mcp/client/__main__.py | 33 +++++++++++++++++++-------------- uv.lock | 2 +- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/mcp/client/__main__.py b/src/mcp/client/__main__.py index 121e3ff..2f7ada4 100644 --- a/src/mcp/client/__main__.py +++ b/src/mcp/client/__main__.py @@ -2,9 +2,9 @@ import logging import sys from functools import partial from urllib.parse import urlparse +import argparse import anyio -import click from mcp.client.session import ClientSession from mcp.client.sse import sse_client @@ -57,19 +57,24 @@ async def main(command_or_url: str, args: list[str], env: list[tuple[str, str]]) await run_session(*streams) -@click.command() -@click.argument("command_or_url") -@click.argument("args", nargs=-1) -@click.option( - "--env", - "-e", - multiple=True, - nargs=2, - metavar="KEY VALUE", - help="Environment variables to set. Can be used multiple times.", -) -def cli(*args, **kwargs): - anyio.run(partial(main, *args, **kwargs), backend="trio") +def cli(): + parser = argparse.ArgumentParser() + parser.add_argument("command_or_url", help="Command or URL to connect to") + parser.add_argument("args", nargs="*", help="Additional arguments") + parser.add_argument( + "-e", "--env", + nargs=2, + action="append", + metavar=("KEY", "VALUE"), + help="Environment variables to set. Can be used multiple times.", + default=[] + ) + + args = parser.parse_args() + anyio.run( + partial(main, args.command_or_url, args.args, args.env), + backend="trio" + ) if __name__ == "__main__": diff --git a/uv.lock b/uv.lock index c49e4e5..b335cff 100644 --- a/uv.lock +++ b/uv.lock @@ -170,7 +170,7 @@ wheels = [ [[package]] name = "mcp" -version = "1.1.1" +version = "1.1.2" source = { editable = "." } dependencies = [ { name = "anyio" },