|
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