Skip to content

Commit ef9b4cf

Browse files
committed
Remove click dependency in client
1 parent ce25842 commit ef9b4cf

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

src/mcp/client/__main__.py

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
import sys
33
from functools import partial
44
from urllib.parse import urlparse
5+
import argparse
56

67
import anyio
7-
import click
88

99
from mcp.client.session import ClientSession
1010
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]])
5757
await run_session(*streams)
5858

5959

60-
@click.command()
61-
@click.argument("command_or_url")
62-
@click.argument("args", nargs=-1)
63-
@click.option(
64-
"--env",
65-
"-e",
66-
multiple=True,
67-
nargs=2,
68-
metavar="KEY VALUE",
69-
help="Environment variables to set. Can be used multiple times.",
70-
)
71-
def cli(*args, **kwargs):
72-
anyio.run(partial(main, *args, **kwargs), backend="trio")
60+
def cli():
61+
parser = argparse.ArgumentParser()
62+
parser.add_argument("command_or_url", help="Command or URL to connect to")
63+
parser.add_argument("args", nargs="*", help="Additional arguments")
64+
parser.add_argument(
65+
"-e", "--env",
66+
nargs=2,
67+
action="append",
68+
metavar=("KEY", "VALUE"),
69+
help="Environment variables to set. Can be used multiple times.",
70+
default=[]
71+
)
72+
73+
args = parser.parse_args()
74+
anyio.run(
75+
partial(main, args.command_or_url, args.args, args.env),
76+
backend="trio"
77+
)
7378

7479

7580
if __name__ == "__main__":

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)