Overview
What is zio-ella?
zio-ella is a framework for writing MCP (Model Context Protocol) servers for modern AI platforms using Scala 3 and ZIO with zio-http. It is designed for developers who want to expose ZIO-based services as MCP tools.
How to use zio-ella?
Define server capabilities by mapping Tool instances to ZIO effects, then run the server with MCPServer(capabilities).run. The server port can be configured via a ZIO config layer using Config.int("port"). The entry point is a standard ZIOAppDefault that provides the configured server layer.
Key features of zio-ella
- Write MCP servers in Scala 3 with ZIO and zio-http
- Define tools using
ToolandArgDefwith ZIO effects - Run via
MCPServerand standard ZIOAppDefault pattern - Port configuration through ZIO config layers
- Lightweight, early-phase framework open to rapid change
Use cases of zio-ella
- Exposing existing ZIO services as MCP tools for AI agents
- Building custom MCP servers with Scala's functional programming stack
- Prototyping MCP-based integrations for modern AI platforms
- Creating simple, composable server capabilities (e.g., time, weather lookups)
FAQ from zio-ella
What language and runtime does zio-ella require?
zio-ella requires Scala 3 and ZIO with zio-http.
Is zio-ella production-ready?
No. The project is in its early phase and is bound to rapid change. Users are encouraged to share ideas and use-cases.
How do I configure the server port?
The port is read from the environment or configuration using Config.int("port") and is applied via a ZLayer in the main program.
What types of tools can I define?
Any tool that maps a Tool name and optional ArgDef to a ZIO effect. The README shows examples like get-time (no argument) and get-weather (accepting a city string).
Where can I learn more about MCP?
The README links to the MCP Protocol Tutorial, Anthropic's MCP documentation, and the MCP Inspector tool.