Skip to content

Releases: Wolfy024/Agentic_LLM_Workflow

LLM Orchestrator V2.1.0

Pre-release

Choose a tag to compare

@Wolfy024 Wolfy024 released this 25 Apr 23:41

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
  • /tools displays MCP tools in their own category with server origin labels
  • /help includes the new /mcp command

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() and is_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_servers is {} — 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 httpx dependency

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/mcp in help, MCP category in /tools
  • Modified backend/ui/banner.py — MCP status line
  • Modified config.json — added mcp_servers key
  • Modified llm-orchestrator-setup.spec — MCP hidden imports
  • Modified README.md — full MCP documentation section

LLM Orchestrator V2.0.0

Pre-release

Choose a tag to compare

@Wolfy024 Wolfy024 released this 25 Apr 23:01

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.exe monolithic 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 as orchestrator.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's hiddenimports.

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_search Integration: 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 /memory slash 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 system role insertions mid-conversation, ensuring complete compliance with the OpenAI/Gemini chat schemas.
  • Model Configuration Matching: Fixed the environment variable resolution chain so that LLM_MODEL specified in .env accurately cascades through the installer into config.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

Pre-release

Choose a tag to compare

@Wolfy024 Wolfy024 released this 24 Apr 04:21
646606c

Crazy.