opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

A standalone, deployable MCP host for building MCP agents
GitHub RepoImpressions3

Project Description

View on GitHub

Nanobot: A Standalone MCP Host for Building Your Own Chat Agents

If you've played with MCP servers, you've probably done it inside someone else's app—Claude, Cursor, VS Code, Goose. Those hosts are great, but they're not yours. What if you wanted to build a dedicated chatbot around a specific set of MCP servers without bolting it onto an existing IDE or assistant? That's the gap Nanobot was built to fill: a standalone, deployable MCP host you can run yourself.

What It Does

An MCP host, per the Model Context Protocol spec, is the service that combines MCP servers with an LLM and context to present an agent experience to a consumer. The most common interface is chat, but it can just as easily be voice, SMS, email, Slack, or anything else that talks to an agent.

Nanobot is exactly that layer, packaged as an open-source tool you can deploy or embed into your own applications. You define your agents and the MCP servers they should connect to, point Nanobot at an LLM provider, and it serves MCP over HTTP—so an MCP-compatible host like Obot can connect and interact with your agent.

It supports OpenAI and Anthropic models out of the box, with provider selection handled automatically based on the model name you specify. Additional providers (Azure, Bedrock, Ollama, and others) can be configured manually.

Why It's Cool

  • It's the piece most MCP demos skip. Everyone shows off individual MCP servers, but the host—the thing that actually wires servers, an LLM, and context into an agent—is usually hidden inside a closed product. Nanobot makes that layer explicit and yours to configure.

  • Two configuration styles, one for each mood. You can go simple with a single nanobot.yaml file that defines agents and MCP servers inline. Or, if your setup grows, switch to a directory-based layout with a shared nanobot.yaml and individual .md files per agent. The main agent in agents/ is auto-set as the entrypoint, which is a nice touch that saves you from declaring things twice.

  • The config is genuinely small. The Blackjack example in the README is essentially a few lines: an agent with a name, a model, and a reference to an MCP server defined by URL. That's the whole thing. If you've ever fought through a sprawling agent framework config, this will feel refreshing.

  • MCP-UI support. Nanobot isn't just about tool calls—it also handles MCP-UI, which means agents can render richer interfaces rather than plain text responses. The Blackjack demo is a good illustration of what that looks like in practice.

  • Provider selection is automatic. Set OPENAI_API_KEY or ANTHROPIC_API_KEY, pick a model like gpt-4.1 or a Claude variant, and Nanobot picks the right provider. No provider blocks to hand-configure for the common cases.

How to Try It

Install via Homebrew:

brew install obot-platform/tap/nanobot

That gives you the nanobot CLI for running and managing your MCP host.

Set an API key for whichever provider you plan to use:

export OPENAI_API_KEY=sk-...
# or
export ANTHROPIC_API_KEY=sk-ant-...

Create a nanobot.yaml that defines your agent and its MCP server:

agents:
  dealer:
    name: Blackjack Dealer
    model: gpt-4.1
    mcpServers: blackjackmcp

mcpServers:
  blackjackmcp:
    url: https://blackjack.nanobot.ai/mcp

Then run it:

nanobot run ./nanobot.yaml

Nanobot serves MCP over HTTP at http://localhost:8080. Connect it to an MCP-compatible host such as Obot, and you're talking to your agent.

If you'd rather see a working setup first, the repo links to live examples—a Blackjack game, a Hugging Face MCP integration, and a Shopify shopping demo—each with its config file in the examples/ directory.

The repository is at github.com/obot-platform/nanobot.

Final Thoughts

One important caveat up front: Nanobot is in maintenance mode. External pull requests and issues are disabled, and no further feature development is planned here. Its MCP client, proxy, and multiplexer functionality is being replaced by the official MCP Go SDK alongside the team's next-generation project, mmmcp.

That said, if you want to understand how an MCP host is structured, or you need a working reference for building your own dedicated MCP-powered chatbot, Nanobot is still a clear and compact example. It's best treated as a learning tool and a starting point rather than a long-term dependency. If you're building something serious on MCP, keep an eye on mmmcp—and read Nanobot's source in the meantime.


Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: feff643d-95d1-4322-a05c-0b6de2c7c1b3Last updated: October 4, 2026 at 02:51 AM