|
2 | 2 | import sys |
3 | 3 | from functools import partial |
4 | 4 | from urllib.parse import urlparse |
| 5 | +import argparse |
5 | 6 |
|
6 | 7 | import anyio |
7 | | -import click |
8 | 8 |
|
9 | 9 | from mcp.client.session import ClientSession |
10 | 10 | 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]]) |
57 | 57 | await run_session(*streams) |
58 | 58 |
|
59 | 59 |
|
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 | + ) |
73 | 78 |
|
74 | 79 |
|
75 | 80 | if __name__ == "__main__": |
|
0 commit comments