https://github.com/vpakarinen2/marrow
Orchestrator to manage a modular ecosystem of MCP servers.
https://github.com/vpakarinen2/marrow
agent-orchestrator agentic-ai agentic-rag autonomous-agents json-rpc mcp mcp-server model-context-protocol orchestration
Last synced: about 1 month ago
JSON representation
Orchestrator to manage a modular ecosystem of MCP servers.
- Host: GitHub
- URL: https://github.com/vpakarinen2/marrow
- Owner: vpakarinen2
- License: apache-2.0
- Created: 2026-04-21T12:09:21.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-04-21T12:27:50.000Z (about 1 month ago)
- Last Synced: 2026-04-21T14:28:38.237Z (about 1 month ago)
- Topics: agent-orchestrator, agentic-ai, agentic-rag, autonomous-agents, json-rpc, mcp, mcp-server, model-context-protocol, orchestration
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ฆด Marrow
Orchestrator designed to manage a modular ecosystem of MCP (Model Context Protocol) servers.
## โจ Key Features
* **Logic & Output:** Prevents context-flooding by giving the LLM a dedicated `reasoning` and a `final_answer` field.
* **Orchestrator:** Built on LlamaIndex workflows, ensuring every "thought" is strictly typed to a Pydantic schema.
* **Short-Term Memory:** Retains the user's original objective across complex, multi-step tool invocations.
* **Stealth Scraping:** Uses Playwright (Chromium) and human-like delays to bypass basic bot protection.
* **Self-Correction:** If a tool fails, Marrow reads the Python error log and understands the failure.
* **FastMCP:** Skills run as isolated local servers using the Model Context Protocol.
## ๐ Installation
### 1. Prerequisites
You will need the **`uv`** package manager installed.
### 2. Set Up the Environment
```bash
# Pin the Python version
uv python pin 3.12
# Create the virtual environment
uv venv
# Activate the environment
.venv\Scripts\activate # Windows
source .venv/bin/activate # macOS/Linux
```
### 3. Install Dependencies
```bash
uv add fastapi pydantic pydantic-settings ruff rich pytest llama-index instructor openai loguru mcp fastmcp markitdown playwright polars
```
### 4. Install Playwright Browser
```bash
uv run playwright install chromium
```
### 4. Environment Variables
Create a ```.env``` file and add your OpenAI API key.
```bash
OPENAI_API_KEY=your_sk_key_here
```
## ๐ง Usage
```bash
uv run main.py
```
## โExample
```
โญโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐ฆด Marrow | v1.0 โ
โฐโ Powered by Llama โโฏ
2026-04-24 17:04:15.160 | INFO | core:__init__:50 - Marrow orchestrator initialized and ready.
What should Marrow do?: use web scraper to fetch https://apnews.com/live/iran-war-israel-trump-04-24-2026 and summarize today's live news
2026-04-24 17:05:01.459 | INFO | core:think:73 - Marrow is planning...
2026-04-24 17:05:03.114 | WARNING | core:act:106 - ACTION: Connecting to web_scraper...
2026-04-24 17:05:05.253 | INFO | core:act:146 - Cleaned URL for Playwright: https://apnews.com/live/iran-war-israel-trump-04-24-2026
2026-04-24 17:05:05.253 | INFO | core:act:156 - Invoking fetch_website_content...
2026-04-24 17:05:11.414 | SUCCESS | core:act:169 - Skill web_scraper returned 211881 characters.
2026-04-24 17:05:11.415 | INFO | core:think:73 - Marrow is planning...
2026-04-24 17:05:28.604 | DEBUG | core:think:93 - Plan: I need to provide a clear and concise summary of the live news updates about Iran. From the extracted content, the latest key events include diplomatic movements by Iranian Foreign Minister Abbas Araghchi towards ceasefire talks.
```
## Author
Ville Pakarinen (@vpakarinen2)