Releases: Wolfy024/Agentic_LLM_Workflow
Release list
LLM Orchestrator V2.1.0
Release Notes — v2.1.0: Native MCP Protocol Support
Date: April 26, 2026
What's New
🔌 Native MCP (Model Context Protocol) Client
The orchestrator now speaks MCP natively. You can plug in any standard MCP server — filesystem, Postgres, Brave Search, GitHub, Slack, or any community-built server — by adding a few lines to config.json. No custom wrappers, no code changes.
MCP tools appear alongside native tools as a single unified toolset. The LLM doesn't know or care which tools are local and which are coming from external servers — it just uses them.
Two transport types supported:
- stdio — for local MCP servers that run as subprocesses (filesystem, git, Postgres, etc.)
- SSE — for remote MCP servers accessible over HTTP (Brave Search, API gateways, hosted services)
Example config:
{
"mcp_servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"],
"permission": "destructive"
},
"brave-search": {
"transport": "sse",
"url": "https://your-mcp-proxy.example.com",
"headers": { "Authorization": "Bearer your_key" },
"permission": "allow"
}
}
}🔒 MCP Permission Profiles
MCP tools are fully integrated into the existing permission system. Each server gets a permission level:
"allow"— tools run freely, like native read-only tools"destructive"(default) — tools require user approval before execution"deny"— tools are discoverable but blocked from running
The ci profile blocks all MCP tools unconditionally. YOLO mode auto-approves destructive MCP tools just like native ones.
🎛️ /mcp Slash Command
New runtime controls for managing MCP connections without restarting:
| Command | What it does |
|---|---|
/mcp |
Show connected servers and tool counts |
/mcp connect |
Reconnect all servers from config |
/mcp disconnect |
Tear down all connections |
/mcp status |
Detailed view with per-server tool lists |
📊 UI Updates
- Startup banner now shows MCP server count and total external tools
/toolsdisplays MCP tools in their own category with server origin labels/helpincludes the new/mcpcommand
Post-Install MCP Setup
For users running the pre-built executable: just edit config.json next to the .exe, add your mcp_servers entries, and restart. No rebuild needed.
Prerequisite: Most MCP servers require Node.js (
npx). Install from nodejs.org if needed.
Technical Details
New Modules
| Module | Role |
|---|---|
mcp/transport.py |
Stdio + SSE JSON-RPC 2.0 transports with Content-Length framing |
mcp/client.py |
Per-server lifecycle: initialize handshake → tool discovery → tool execution → shutdown |
mcp/manager.py |
Multi-server coordinator: aggregates schemas, routes calls, manages permissions |
repl/commands/mcp.py |
/mcp slash command handler |
Integration Points
- Tool Registry (
tools/registry.py) —get_tool_schemas()merges native + MCP schemas;execute_tool()routes to MCP when the tool isn't in the native registry - Tool Executor (
agent/executor.py) — MCP tools are marked parallel-safe (they run in isolated processes) - Permission System (
core/permissions_checks.py) —is_destructive()andis_tool_denied_in_profile()extended to check MCP tool classifications - Main (
main.py) — MCP servers auto-connect on startup, gracefully disconnect on exit
Name Collision Handling
If a native tool and an MCP tool share the same name, the MCP tool is automatically prefixed as servername__toolname. Native tools always take priority.
No Breaking Changes
- Default
mcp_serversis{}— zero MCP servers configured out of the box - All existing native tools, slash commands, and workflows are unchanged
- No new Python dependencies required (MCP transport uses stdlib
subprocess+json) - SSE transport reuses the existing
httpxdependency
Full Changelog
- Added
backend/mcp/package (transport, client, manager) - Added
backend/repl/commands/mcp.py - Modified
backend/tools/registry.py— MCP schema merging + tool routing - Modified
backend/agent/executor.py— MCP parallel safety - Modified
backend/core/permissions_checks.py— MCP permission integration - Modified
backend/main.py— MCP startup/teardown - Modified
backend/repl/commands/__init__.py— registered/mcp - Modified
backend/ui/help.py—/mcpin help, MCP category in/tools - Modified
backend/ui/banner.py— MCP status line - Modified
config.json— addedmcp_serverskey - Modified
llm-orchestrator-setup.spec— MCP hidden imports - Modified
README.md— full MCP documentation section
LLM Orchestrator V2.0.0
LLM Orchestrator - Release Notes
🚀 Major Features & Architectural Overhaul
Monolithic Single-Executable Build
- Unified Installer & App: Completely refactored the PyInstaller build pipeline. The application is now distributed as a single
llm-orchestrator-setup.exemonolithic executable, dropping the confusing two-executable system. - Smart Entrypoint: The executable now dynamically inspects its execution name. If run as "setup" or "install", it launches the Tkinter UI to configure your environment (
.env) and installs itself to your local AppData. If run asorchestrator.exe, it launches the main LLM backend. - Fixed Dynamic Imports: Resolved a critical
ModuleNotFoundError: No module named 'tools.git.core'crash in production builds by explicitly linking dynamic tool submodules into PyInstaller'shiddenimports.
Persistent Retrieval Memory System
- Codebase Indexing: The agent now features persistent "Retrieval Memory". Every time the agent reads, writes, edits, or searches a file, it automatically extracts AST symbols (functions, classes), docstrings, and imports, updating its global map of your workspace.
smart_context_searchIntegration: Searches now utilize a 3-pronged approach for instantaneous codebase navigation: BM25 keyword scoring, AST symbol lookup, and Semantic Vector embeddings (powered by sentence-transformers).- Session Persistence: Vector indices and symbol maps are saved locally to
.orchestrator_memory/, meaning the agent remembers your project layout across system restarts. - Stats Command: Added the
/memoryslash command so you can actively monitor the size and health of your codebase index.
✨ UI & Workflow Enhancements
- "Thinking..." Animation: Added a sleek, persistent loading animation to the terminal UI during complex LLM reasoning and API waits, providing better feedback during long execution sequences.
- Context Handling Constraints Lifted: Removed overly restrictive context compaction rules, allowing for significantly longer and more detailed agent interaction sequences before truncation occurs.
🛠️ Stability & Infrastructure Fixes
- API Circuit Breaker (
ServerHealthTracker): Implemented a protective health tracker that prevents the orchestrator from hammering the LLM endpoint during persistent "500 Internal Server Error" failures. - Schema Compliance: Fixed strict role injection errors by preventing unauthorized
systemrole insertions mid-conversation, ensuring complete compliance with the OpenAI/Gemini chat schemas. - Model Configuration Matching: Fixed the environment variable resolution chain so that
LLM_MODELspecified in.envaccurately cascades through the installer intoconfig.json, permanently resolving "Model not found" errors upon startup. - File Writing Hardening: Strengthened file-writing strategies to prevent workspace clutter and ensure atomic file operations when the agent operates autonomously.
LLM_orchestrator_v1.0.0
Crazy.