Skip to content
This repository was archived by the owner on Jan 30, 2026. It is now read-only.

Commit 229bf33

Browse files
committed
refactor: simplify indexUrls passing and add --dep flag for consistency
- Always pass indexUrls to prepare_env (even if empty), matching how dependencies are handled - Add repeatable --dep flag alongside existing --deps for CLI consistency with --index-url - Mark --deps as deprecated but keep it working for backwards compatibility
1 parent 81e9179 commit 229bf33

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

mcp_run_python/_cli.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ def cli_logic(args_list: Sequence[str] | None = None) -> int:
2222
)
2323

2424
parser.add_argument('--port', type=int, help='Port to run the server on, default 3001.')
25-
parser.add_argument('--deps', '--dependencies', help='Comma separated list of dependencies to install')
25+
parser.add_argument(
26+
'--dep', action='append', dest='dep_list', metavar='PKG', help='Dependency to install (can be repeated)'
27+
)
28+
parser.add_argument('--deps', '--dependencies', help='(Deprecated) Comma separated list of dependencies to install')
2629
parser.add_argument(
2730
'--index-url',
2831
action='append',
@@ -53,7 +56,9 @@ def cli_logic(args_list: Sequence[str] | None = None) -> int:
5356
format='%(message)s',
5457
)
5558

56-
deps: list[str] = args.deps.split(',') if args.deps else []
59+
deps: list[str] = args.dep_list or []
60+
if args.deps:
61+
deps.extend(args.deps.split(','))
5762
index_urls: list[str] = args.index_urls or []
5863
return_code = run_mcp_server(
5964
args.mode.replace('-', '_'),

mcp_run_python/deno/src/runCode.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,10 @@ export class RunCode {
124124

125125
const preparePyEnv: PreparePyEnv = pyodide.pyimport(moduleName)
126126

127-
const prepareStatus = indexUrls.length > 0
128-
? await preparePyEnv.prepare_env(pyodide.toPy(dependencies), pyodide.toPy(indexUrls))
129-
: await preparePyEnv.prepare_env(pyodide.toPy(dependencies))
127+
const prepareStatus = await preparePyEnv.prepare_env(
128+
pyodide.toPy(dependencies),
129+
pyodide.toPy(indexUrls),
130+
)
130131
return {
131132
pyodide,
132133
preparePyEnv,
@@ -218,6 +219,6 @@ interface PrepareError {
218219
message: string
219220
}
220221
interface PreparePyEnv {
221-
prepare_env: (dependencies: any, index_urls?: any) => Promise<PrepareSuccess | PrepareError>
222+
prepare_env: (dependencies: any, index_urls: any) => Promise<PrepareSuccess | PrepareError>
222223
dump_json: (value: any, always_return_json: boolean) => string | null
223224
}

0 commit comments

Comments
 (0)