Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
72 lines (59 loc) · 2.26 KB

File metadata and controls

72 lines (59 loc) · 2.26 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from __future__ import annotations as _annotations
import argparse
import logging
import sys
from collections.abc import Sequence
from . import __version__
from .main import LoggingLevel, run_mcp_server
def cli():
sys.exit(cli_logic())
def cli_logic(args_list: Sequence[str] | None = None) -> int:
"""Run the CLI."""
parser = argparse.ArgumentParser(
prog='mcp-run-python',
description=f'mcp-run-python CLI v{__version__}\n\nMCP server for running untrusted Python code.\n',
formatter_class=argparse.RawTextHelpFormatter,
)
parser.add_argument('--port', type=int, help='Port to run the server on, default 3001.')
parser.add_argument('--deps', '--dependencies', help='Comma separated list of dependencies to install')
parser.add_argument(
'--disable-networking', action='store_true', help='Disable networking during execution of python code'
)
parser.add_argument('--verbose', action='store_true', help='Enable verbose logging')
parser.add_argument('--version', action='store_true', help='Show version and exit')
parser.add_argument(
'mode',
choices=['stdio', 'streamable-http', 'example'],
nargs='?',
help='Mode to run the server in.',
)
args = parser.parse_args(args_list)
if args.version:
print(f'mcp-run-python {__version__}')
return 0
elif args.mode:
logging.basicConfig(
level=logging.DEBUG if args.verbose else logging.INFO,
stream=sys.stderr,
format='%(message)s',
)
deps: list[str] = args.deps.split(',') if args.deps else []
return_code = run_mcp_server(
args.mode.replace('-', '_'),
allow_networking=not args.disable_networking,
http_port=args.port,
dependencies=deps,
deps_log_handler=deps_log_handler,
verbose=bool(args.verbose),
)
return return_code
else:
parser.error('Mode is required')
logger = logging.getLogger('mcp-run-python-install')
def deps_log_handler(level: LoggingLevel, msg: str):
if level == 'debug':
logger.debug('install: %s', msg)
elif level == 'info':
logger.info('install: %s', msg)
else:
logger.warning('install: %s', msg)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.