Remove click dependency in client

This commit is contained in:
David Soria Parra
2024-12-12 16:41:30 +00:00
parent ce25842d35
commit ef9b4cf6a2
2 changed files with 20 additions and 15 deletions

View File

@@ -2,9 +2,9 @@ import logging
import sys import sys
from functools import partial from functools import partial
from urllib.parse import urlparse from urllib.parse import urlparse
import argparse
import anyio import anyio
import click
from mcp.client.session import ClientSession from mcp.client.session import ClientSession
from mcp.client.sse import sse_client 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) await run_session(*streams)
@click.command() def cli():
@click.argument("command_or_url") parser = argparse.ArgumentParser()
@click.argument("args", nargs=-1) parser.add_argument("command_or_url", help="Command or URL to connect to")
@click.option( parser.add_argument("args", nargs="*", help="Additional arguments")
"--env", parser.add_argument(
"-e", "-e", "--env",
multiple=True,
nargs=2, nargs=2,
metavar="KEY VALUE", action="append",
metavar=("KEY", "VALUE"),
help="Environment variables to set. Can be used multiple times.", help="Environment variables to set. Can be used multiple times.",
) default=[]
def cli(*args, **kwargs): )
anyio.run(partial(main, *args, **kwargs), backend="trio")
args = parser.parse_args()
anyio.run(
partial(main, args.command_or_url, args.args, args.env),
backend="trio"
)
if __name__ == "__main__": if __name__ == "__main__":

2
uv.lock generated
View File

@@ -170,7 +170,7 @@ wheels = [
[[package]] [[package]]
name = "mcp" name = "mcp"
version = "1.1.1" version = "1.1.2"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "anyio" }, { name = "anyio" },