julia-mcp
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 50 GitHub stars
Code Basarisiz
- eval() — Dynamic code execution via eval() in server.py
Permissions Gecti
- Permissions — No dangerous permissions requested
This tool is an MCP server that provides AI assistants with access to persistent Julia sessions. It allows the AI to execute Julia code, maintain state (like variables and loaded packages) between calls, and restart sessions without dealing with Julia's startup overhead.
Security Assessment
Overall Risk: Medium. The primary security consideration is a confirmed failure in the automated code scan: the server uses `eval()` to dynamically execute code. However, this is entirely by design, as the core purpose of the tool is to evaluate Julia code sent by the AI. The server operates locally using pure stdio transport, meaning it opens no network ports or external sockets. It does not request dangerous system permissions, nor does it appear to make unauthorized network requests or contain hardcoded secrets. Because the tool inherently evaluates arbitrary strings as code, it should be kept strictly local and used only with AI assistants you trust.
Quality Assessment
The project is in excellent health. It uses the permissive MIT license and is actively maintained, with its most recent updates pushed today. It has garnered 50 GitHub stars, which indicates a solid baseline of community trust and interest for a specialized developer tool. The documentation is clear, straightforward, and provides easy setup instructions for popular clients like Claude.
Verdict
Use with caution — the tool is well-maintained and safe to run locally, but its core function requires dynamically executing AI-generated code.
MCP server for persistent Julia sessions — fast iteration without startup/compilation overhead
julia-mcp
MCP server that gives AI assistants access to efficient Julia code execution. Avoids Julia's startup and compilation costs by keeping sessions alive across calls, and persists state (variables, functions, loaded packages) between them — so each iteration is fast.
- Sessions start on demand, persist state between calls, and recover from crashes — no manual management
- Each project directory gets its own isolated Julia process
- Pure stdio transport — no open ports or sockets
Tools
- julia_eval(code, env_path?, timeout?) — execute Julia code in a persistent session.
env_pathsets the Julia project directory (omit for a temporary session).timeoutdefaults to 60s and is auto-disabled forPkgoperations. - julia_restart(env_path?) — restart a session, clearing all state. If
env_pathis omitted, restarts the temporary session. - julia_list_sessions — list active sessions and their status
Requirements
- uv (you might already have it installed)
- Julia – any version,
juliabinary must be inPATH- Recommended packages – used automatically if available in the global environment:
- Revise.jl - to pick code changes up without restarting
- TestEnv.jl — to properly activate test environment when
env_pathpoints to/test/
The server itself is written in Python since the Python MCP protocol implementation is very mature.
Usage
First, clone the repository:
cd /any_directory
git clone https://github.com/aplavin/julia-mcp.git
Then register the server with your client of choice (see below).
That's it! Your AI assistant can now execute Julia code more efficiently, saving of TTFX.
Claude Code
User-wide (recommended — makes Julia available in all projects):
claude mcp add --scope user julia -- uv run --directory /any_directory/julia-mcp python server.py
Project-scoped (only available in the current project):
claude mcp add --scope project julia -- uv run --directory /any_directory/julia-mcp python server.py
Custom Julia CLI arguments
Append Julia flags after server.py to override the defaults (--startup-file=no --threads=auto):
claude mcp add --scope user julia -- uv run --directory /any_directory/julia-mcp python server.py --threads=1 --startup-file=yes
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"julia": {
"command": "uv",
"args": ["run", "--directory", "/any_directory/julia-mcp", "python", "server.py"]
}
}
}
Custom Julia CLI arguments
Append Julia flags after server.py to override the defaults (--startup-file=no --threads=auto):
{
"mcpServers": {
"julia": {
"command": "uv",
"args": ["run", "--directory", "/any_directory/julia-mcp", "python", "server.py", "--threads=1", "--startup-file=yes"]
}
}
}
Codex CLI
User-wide — makes Julia available in all projects:
codex mcp add julia -- uv run --directory /any_directory/julia-mcp server.py
Custom Julia CLI arguments
Append Julia flags after server.py to override the defaults (--startup-file=no --threads=auto):
codex mcp add julia -- uv run --directory /any_directory/julia-mcp server.py --threads=1 --startup-file=yes
VS Code Copilot
Add to .vscode/settings.json:
{
"mcp": {
"servers": {
"julia": {
"command": "uv",
"args": ["run", "--directory", "/path/to/julia-mcp", "python", "server.py"]
}
}
}
}
Custom Julia CLI arguments
Append Julia flags after server.py to override the defaults (--startup-file=no --threads=auto):
{
"mcp": {
"servers": {
"julia": {
"command": "uv",
"args": ["run", "--directory", "/path/to/julia-mcp", "python", "server.py", "--threads=1", "--startup-file=yes"]
}
}
}
}
Details
- Each unique
env_pathgets its own isolated Julia session. Omittingenv_pathuses a temporary session that is cleaned up on MCP shutdown. - If
env_pathends in/test/, the parent directory is used as the project andTestEnvis activated automatically. For this to work,TestEnvmust be installed in the base environment. - Julia is launched with
--threads=autoand--startup-file=noby default. Pass custom Julia CLI flags afterserver.pyto override these defaults entirely.
Alternatives
Other projects that give AI agents access to Julia:
- MCPRepl.jl and REPLicant.jl require you to manually start and manage Julia sessions.
julia-mcphandles this automatically. - DaemonConductor.jl (linux only) runs Julia scripts, but calls are independent and don't share variables.
julia-mcpretains state between calls.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi