# \[ANN\] MCPRepl.jl -- share your REPL with your AI Agent

**URL:** <https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536>\
**Category:** Package Announcements\
**Created:** [July 7, 2025, 12:59pm UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536 "2025-07-07T12:59:52Z")\
**Posts on this page:** 13\
**Page:** 2

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [October 30, 2025, 11:12pm UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/21 "2025-10-30T23:12:13Z")

</div>

Did you see the security changes in my fork?

Yes I agree one can always add or dev a package from git. But there’s something about it being in the general registry which gives it some additional status and visibility.

---

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [October 30, 2025, 11:20pm UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/22 "2025-10-30T23:20:41Z")

</div>

I have integrated the Julia language server so it can do that stuff now. These are the tools provided:

# lsp\_goto\_definition

Jump to the definition of a symbol using Julia LSP.

Uses the Julia Language Server to find where a function, type, or variable  
is defined in the code…

# lsp\_code\_actions

Get available code actions (quick fixes, refactorings) for a location using Julia LSP.

Uses the Julia Language Server to get available fixes and refa…

# lsp\_rename

Rename a symbol across the entire workspace using Julia LSP.

Uses the Julia Language Server to safely rename a function, variable, or type  
everywhere…

# lsp\_document\_symbols

List all symbols (functions, types, etc.) in a file using Julia LSP.

Uses the Julia Language Server to get a structured list of all symbols  
defined i…

# lsp\_workspace\_symbols

Search for symbols across the entire workspace using Julia LSP.

Uses the Julia Language Server to search for functions, types, and other  
symbols by n…

# lsp\_find\_references

Find all references to a symbol using Julia LSP.

Uses the Julia Language Server to find where a function, type, or variable  
is used throughout the co…

---

<div class="post-metadata">

**Author:** ![hexaeder](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hexaeder/32/24403_2.png) [@hexaeder](https://discourse.julialang.org/u/hexaeder)\
**Post date:** [October 31, 2025, 8:59am UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/23 "2025-10-31T08:59:10Z")

</div>

Hey @kahliburke , I had a look at [your fork](https://github.com/kahliburke/MCPRepl.jl) again, it indeed looks very impressive with lots of improvements and added functionality!  
I didn’t have the time yet to play around with it, but since it is far more active than my repo, I also put a link to it in the readme.

> Did you see the security changes in my fork?

I am no security expert, I can’t comment on the validity of the modifications you did (like api keys), but for sure they are a good addition. I was more talking about the inherent security problems (which essentially come with every agentic AI system): you give some LLM full access to your computer. If the agent feels like evaluating `run('rm -rf ~')` in the repl it can just do it. I know that claude code tries to impose some restrictions on folder access and so on, all of which are sidestepped by giving the agent access to this mcp. Since those agents pupulate their context automaticially, by readimg lots of files, webpages and so on, it might be relatively simple to prompt inject and steer them into doing harmful stuff.

---

<div class="post-metadata">

**Author:** ![j\_u](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j_u/32/219081_2.png) [@j\_u](https://discourse.julialang.org/u/j_u)\
**Post date:** [October 31, 2025, 12:27pm UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/24 "2025-10-31T12:27:27Z")

</div>

If it’s so dangerous that it has to be kept on a leash, then maybe running it inside a container could be a short to medium term solution. I don’t claim to be an expert on these topics, but to keep things moving, it might be better to focus on the core functionalities that differentiate this solution from similar ones available. It really looks like a potentially great package.

---

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [October 31, 2025, 12:45pm UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/25 "2025-10-31T12:45:28Z")

</div>

There are multiple dangers here. The one that you have to take on is that you’re giving an AI program access to do things somewhat arbitrarily on your system. Sure, you can grant permission to particular tools but by the time you allow it to run arbitrary code in your repl, I mean, yeah there’s nothing scanning it for something like `run(`rm [andthensomebadoptionsandpaths]`)` (I’m not even going to type it out since it’s going to get sucked in my some model).

The other side of this though, is that you’re also opening up a port where _anything_ that wants to run those sorts of commands can, it’s an open port with no authentication.

At least it _was_ … that is one of the things I’ve added is a basic API key Bearer token auth, and a nonce system that’s used for callbacks from vscode to the MCP server.

(… and added some very helpful(?) mystical creatures if you run `MCPRepl.setup()` in your project to get all the configuration generated 😉 🐉)

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [October 31, 2025, 2:02pm UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/26 "2025-10-31T14:02:15Z")

</div>

I think its called [Auton.jl](https://github.com/AntonOresten/Auton.jl).

---

<div class="post-metadata">

**Author:** ![j\_u](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j_u/32/219081_2.png) [@j\_u](https://discourse.julialang.org/u/j_u)\
**Post date:** [October 31, 2025, 10:16pm UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/27 "2025-10-31T22:16:44Z")

</div>

It’s also a very nice package - both appear to be similar in principle to Jules from Colab.

---

<div class="post-metadata">

**Author:** ![Samuel3008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/samuel3008/32/25021_2.png) [@Samuel3008](https://discourse.julialang.org/u/Samuel3008)\
**Post date:** [January 28, 2026, 11:25am UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/28 "2026-01-28T11:25:02Z")

</div>

Do you maybe know when we can expect a new release of your fork? Because I have some problems on the main branch and there’s feature branches with lots of commits so might very well be fixed there. Thanks for your work!

---

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [January 29, 2026, 12:57am UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/29 "2026-01-29T00:57:48Z")

</div>

Try the feature branch. Yes I do intend to get everything merged in soon. It’s definitely WIP and feel free to submit bug reports.

For more simplicity try feature/standalone-mode-dashboard. It builds on the dashboard functionality which was intended to provide a proxy server which a bunch of Julia sessions could connect to at once. It’s mainly working, but there are still some issues to iron out which is why I haven’t updated the main branch. But if you are feeling adventurous go for it.

---

<div class="post-metadata">

**Author:** ![Satvik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/satvik/32/20486_2.png) [@Satvik](https://discourse.julialang.org/u/Satvik)\
**Post date:** [January 29, 2026, 1:20am UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/30 "2026-01-29T01:20:19Z")

</div>

So ultimately I’ve taken a different path – with the kernel option, it was too hard to get feedback, so I set up Claude to be able to read/write to the terminal directly. Specifically, I use Zellij with two panes (Claude on the left, Julia on the right) and a simple script send-julia that lets the Claude pane write to the REPL, along with another

```julia-auto
#!/bin/bash
tmpfile=$(mktemp)
cat > "$tmpfile"
code=$(cat "$tmpfile")
zellij action focus-next-pane && zellij action write-chars -- "$code" && zellij action write 13 && zellij action focus-previous-pane
rm "$tmpfile"

```

and another script for reading:

```julia-auto
#!/bin/bash
lines=${1:-20}
zellij action focus-next-pane && zellij action dump-screen /tmp/julia_pane_output.txt && zellij action focus-previous-pane && tail -n "$lines" /tmp/julia_pane_output.txt

```

This simple approach has worked reasonably well for me, though it’s fairly limited.  
 ![claude_demo](https://global.discourse-cdn.com/julialang/original/3X/2/e/2e56d6a3ea9ad4c67998a1c6c001f3012ca93957.gif)

---

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [January 29, 2026, 2:48am UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/31 "2026-01-29T02:48:28Z")

</div>

You should come check it out again soon, I’ve been working on a lot of functionality which has proven to be powerful for me so far and there will be more coming soon.

Some things that already exist in the feature branch include support for semantic/vector indexing and search (with Ollama and Qdrant), support for the latest MCP protocol version, optimized tool help and usage instructions to nudge agents to use the tools in the best way, token use optimizations, auto resume of MCP sessions when the REPL is restarted. The proxy version under development sets sights on some further out goals of many-to-many agent/Julia session support and agent-to-agent communication and well as more seamless REPL restart experience, hooks so your project can easily add its own specialized MCP tools, etc.

---

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [February 27, 2026, 3:50am UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/32 "2026-02-27T03:50:42Z")

</div>

I just announced Tachikoma.jl … well guess what’s coming hot on its heels? Yes it is going to be a new system for connecting AI agents with the Julia ecosystem: 開門 …

---

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [February 27, 2026, 9:09am UTC](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536/33 "2026-02-27T09:09:27Z")

</div>

As promised!!!

> [@\[ANN\] Kaimon.jl — opening the gate between AI agents and Julia](https://discourse.julialang.org/t/ann-kaimon-jl-opening-the-gate-between-ai-agents-and-julia/135880/1):
>
> The AI coding landscape is moving fast. Agents that can genuinely reason, write, and iterate on code are here, and they’re getting dramatically better every few months. The question for us as Julia users is: how do we connect all of that to the ecosystem we’ve built? Kaimon (開門, “opening the gate”) is my answer to that question. It’s an MCP server that gives AI agents — Claude Code, Cursor, VS Code Copilot, Gemini CLI — live, stateful access to Julia sessions. Not file editing and shell c…

[Previous page](https://discourse.julialang.org/t/ann-mcprepl-jl-share-your-repl-with-your-ai-agent/130536.md?page=1)
