Skip to main content
Home
It is unknown whether this package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
It is unknown whether this package works with Cloudflare Workers
It is unknown whether this package works with Node.js
It is unknown whether this package works with Deno
It is unknown whether this package works with Bun
It is unknown whether this package works with Browsers
JSR Score
52%
Published
5 months ago (0.0.14)

MCP Run Python

Model Context Protocol server to run Python code in a sandbox.

The code is executed using Pyodide in Deno and is therefore isolated from the rest of the operating system.

See https://ai.pydantic.dev/mcp/run-python/ for complete documentation.

The server can be run with deno installed using:

deno run \
  -N -R=node_modules -W=node_modules --node-modules-dir=auto \
  jsr:@pydantic/mcp-run-python [stdio|sse|warmup]

where:

  • -N -R=node_modules -W=node_modules (alias of --allow-net --allow-read=node_modules --allow-write=node_modules) allows network access and read+write access to ./node_modules. These are required so pyodide can download and cache the Python standard library and packages
  • --node-modules-dir=auto tells deno to use a local node_modules directory
  • stdio runs the server with the Stdio MCP transport — suitable for running the process as a subprocess locally
  • sse runs the server with the SSE MCP transport — running the server as an HTTP server to connect locally or remotely
  • warmup will run a minimal Python script to download and cache the Python standard library. This is also useful to check the server is running correctly.

Here's an example of using @pydantic/mcp-run-python with PydanticAI:

from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStdio

import logfire

logfire.configure()
logfire.instrument_mcp()
logfire.instrument_pydantic_ai()

server = MCPServerStdio('deno',
    args=[
        'run',
        '-N',
        '-R=node_modules',
        '-W=node_modules',
        '--node-modules-dir=auto',
        'jsr:@pydantic/mcp-run-python',
        'stdio',
    ])
agent = Agent('claude-3-5-haiku-latest', mcp_servers=[server])


async def main():
    async with agent.run_mcp_servers():
        result = await agent.run('How many days between 2000-01-01 and 2025-03-18?')
    print(result.output)
    #> There are 9,208 days between January 1, 2000, and March 18, 2025.w

if __name__ == '__main__':
    import asyncio
    asyncio.run(main())

New Ticket: Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@thriveai/mcp-run-python

Import symbol

import * as mcp_run_python from "@thriveai/mcp-run-python";
or

Import directly with a jsr specifier

import * as mcp_run_python from "jsr:@thriveai/mcp-run-python";

Add Package

pnpm i jsr:@thriveai/mcp-run-python
or (using pnpm 10.8 or older)
pnpm dlx jsr add @thriveai/mcp-run-python

Import symbol

import * as mcp_run_python from "@thriveai/mcp-run-python";

Add Package

yarn add jsr:@thriveai/mcp-run-python
or (using Yarn 4.8 or older)
yarn dlx jsr add @thriveai/mcp-run-python

Import symbol

import * as mcp_run_python from "@thriveai/mcp-run-python";

Add Package

vlt install jsr:@thriveai/mcp-run-python

Import symbol

import * as mcp_run_python from "@thriveai/mcp-run-python";

Add Package

npx jsr add @thriveai/mcp-run-python

Import symbol

import * as mcp_run_python from "@thriveai/mcp-run-python";

Add Package

bunx jsr add @thriveai/mcp-run-python

Import symbol

import * as mcp_run_python from "@thriveai/mcp-run-python";