Category: LlamaBot Build in Public

A place to document changes with LlamaBot

  • Exploring MCP for LlamaBot, Part 1

    Source: Hugging Face

    MCP Server:

    My process of setting up Claude Desktop to act as an MCP Client, setting up MCP.

    Adding our own mcp_server.py into LlamaBot. Here’s a basic mcptool call to compute body mass index.

    I had to open up this file path for Claude desktop with cursor to configure MCP

    cursor /Users/kodykendall/Library/Application Support/Claude/claude_desktop_config.json

    And add this JSON a configuration:

    {
        "mcpServers": {
          "filesystem": {
            "command": "/Users/kodykendall/SoftEngineering/LLMPress/Simple/LlamaBotSimple/mcp/run_mcp_server.sh",
            "args": []
          }
        }
      } 

    I had to wrap the Python execution inside a bash script, so that it was executable and so it would activate the venv for LlamaBot.

    #!/bin/bash
    
    # Get the directory where this script is located
    SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
    PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
    
    # Activate the virtual environment
    source "$PROJECT_ROOT/venv/bin/activate"
    
    # Run the MCP server with all passed arguments
    python "$SCRIPT_DIR/mcp_server.py" "$@" 

    Then, when opening Claude Desktop, when it attempted to use the BMI tool-call, Claude desktop asked for permission to execute it.

    It calculated my BMI and Claude told me I’m overweight. Dang! I’m 25.66 BMI, and the normal weight is 24.9.

    But good 👍, that means that Claude (and other MCP clients) can consume our BMI request that’s in mcp_client.py

    I was wondering: is this accessing the MCP server via the piping input/output through standard in/out running locally on my mac, or through HTTP protocol?

    Our implementation uses stdio as the default (very nice if you’re running other programs locally that are in separate processes from your agent. This means you could expose tool-calling across many different applications on your computer, that don’t have to be running under the same process on your operating system).

    Great, Claude is using the MCP tools, but how can I integrate MCP client with my own project, so that LlamaBot can act as a client and use these same tools?

    Before doing that, I’m going to focus on getting tool calling working with something more relevant to LlamaBot: writing some code to our file-system.

    Goal: Can we get Claude Desktop to write code to our file-system?

    Yes.

    Sweet! Not too shabby.

    This begs the question. If we can have an MCP Client like Claude Desktop write code directly to our file-system, then do we need the LlamaBot chat.html interface in the first place?

    Yes, we do. For 2 reasons:

    1. We don’t know what Claude is doing under the hood.
    2. Customizing & creating multi-step agentic workflows isn’t possible with Claude currently

    Claude is using tool-calling under the hood, and implementing some sort of agent architecture. But we don’t know exactly how Claude is operating under the hood. Is it just simple tool calling? Or do they have some sort of reasoning & acting agent loop (ReAct) architecture in there? We have no idea.

    We’ll continue exploring implementing MCP client, and MCP servers into LlamaBot.

  • 05.29.25 – LlamaBot User Input Area Expansion UI/UX

    This is a silent coding session, because I’m sitting at the airport, but want to document the changes I’m making to LlamaBot still.

    Also sometimes, it’s nice to not have to be in front of the camera talking. I’ve found myself making less progress lately because of feeling like I can’t work on the camera unless I’m recording myself in real time.

    This is my compromise! It also means I can spare the nice people sitting next to me at the airport from hearing me monologue about LangChain, LlamaBot, and the future of user experience.

    Alright, jumping into it.

    Goal:

    • Fix our user input field and cuts off text that’s long. (It needs to expand horizontally)


    OpenAI’s = ❤️

    Changing it quickly with cursor:

    Done!

    Here’s the PR: https://github.com/KodyKendall/LlamaBot/pull/3

    PS: I added a CLA to protect the long-term viability of the project 👍