BLAH - Barely Local Agent Host A new public registry that assists in ochestration of MCP servers and their tools
BLAH - Barely Logical Agent Host - Update #1
(think npmjs for tools)
Once this list is fully done, the BLAH JSON schema will be finalized.
Notes:
BLAH is an open-source ecosystem for managing, distributing, and executing AI agent tools using the Model Context Protocol (MCP). It provides a decentralized registry for MCP servers that promotes transparency, security, and community-driven development.
This project is organized as a monorepo using Turborepo:
packages/cli
- The main BLAH CLI tool for working with MCPapps/web
- Web interface for BLAHapps/docs
- Documentation site# Clone the repository git clone https://github.com/thomasdavis/blah.git cd blah # Install dependencies pnpm install # Build the project pnpm run build
See the CLI README for detailed instructions on using the BLAH CLI.
# Navigate to the CLI package cd packages/cli # Set up your environment variables (.env file) echo "OPENAI_API_KEY=your_openai_api_key_here" > .env echo "BLAH_HOST=https://ajax-blah.web.val.run" >> .env # Run a simulation pnpm run simulate
Unrelated Ideas
blah
export default async function server(request: Request): Promise { const tools = [ { name: "hello_name", description: `Says hello to the name`, inputSchema: { type: "object", properties: { name: { type: "string", description: `Name to say hello to`, }, }, }, }, ]; return new Response(JSON.stringify(tools), { headers: { "Content-Type": "application/json", }, status: 200, }); }
I am still working on tools to make development not shit.
While developing this, I want to send logs from everybodies clients to just figure out all the fucking errors the clients are throwing due to different configures.
So far just a basic client that lists prompts, resources, and tools. Could be interactive later, and should also run against tests.
npm run playground
BLAH is an open-source ecosystem for managing, distributing, and executing AI agent tools using the Model Context Protocol (MCP). It provides a decentralized registry for MCP servers that doesn't suffer from misaligned incentives, promoting transparency, security, and community-driven development.
Key Features:
BLAH aims to be the foundation for a new generation of AI tools that can be easily shared, discovered, and composed. We envision a future where:
npm install -g blah-mcp
# Search for tools blah search "image generation" # Install a tool blah install awesome-image-generator # List installed tools blah list # Get info about a tool blah info awesome-image-generator
BLAH's registry is designed with lessons learned from package managers like npm, focusing on:
BLAH supports various agent interaction patterns:
A tool in BLAH is fundamentally a function, but can be represented as:
Every tool should explicitly document how it's invoked, though this isn't mandatory.
BLAH comes with a comprehensive CLI:
blah publish - Publish a tool to the registry
blah search - Search for tools by name, tag, or description
blah install - Install a tool
blah remove - Remove an installed tool
blah update - Update tools to latest versions
blah list - List installed tools
blah info - Display information about a tool
blah config - Configure BLAH settings
blah login - Authenticate with registry
blah logout - End authentication session
blah whoami - Show current authenticated user
blah version - Display version information
blah help - Show help information
BLAH uses a manifest file (blah.json
) to define tools and their dependencies. This manifest can exist:
Example blah.json
:
{ "name": "awesome-image-generator", "version": "1.0.0", "description": "Tool for generating awesome images", "entry": "./dist/index.js", "tools": [ { "name": "generate_image", "description": "Generates an image from a text prompt", "parameters": { "prompt": { "type": "string", "description": "Text description of the desired image" }, "style": { "type": "string", "enum": ["realistic", "cartoon", "abstract"], "default": "realistic" } } } ], "dependencies": { "image-gen-lib": "^2.0.0" }, "tags": ["image", "generation", "creative"] }
BLAH supports and aims to be compatible with:
Tools in BLAH are organized using:
BLAH consists of three main components:
Currently, ValTown serves as the primary backend for registry storage and compute, though alternative implementations are welcome.
BLAH takes security seriously:
Contributions are welcome! Check back soon for detailed contribution guidelines.
Special thanks to Lisa and Wombat for their invaluable contributions to this project.
BLAH is released under the MIT License. See the LICENSE file for details.
Build Logical Agents, Humanely
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!