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.yamlfile that defines agents and MCP servers inline. Or, if your setup grows, switch to a directory-based layout with a sharednanobot.yamland individual.mdfiles per agent. The main agent inagents/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_KEYorANTHROPIC_API_KEY, pick a model likegpt-4.1or 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.