Content
# zio-ella
[zio-ella] is a framework for writing [MCP (Model Context Protocol)][mcp] servers for modern AI platforms with Scala 3
and [ZIO] with `zio-http`.
> ⚠️ The project is in its early phase and is bound to rapid change. Please feel free to reach-out with ideas and use-cases.
Example capabilities and tools definition within a service might look like:
```scala 3
import zio.ZIO
import zio.dev.ella.*
object MyService:
val capabilities = Capabilities(
// Tool that only returns current server time
Tool("get-time") -> { _ =>
zio.Clock.instant.map(_.toString)
},
// Exemple tool to get where we accept city as an argument.
Tool("get-weather", ArgDef.string("city")) -> {
_.string("city").flatMap(city => ZIO.succeed(s"Weather in $city is sunny!"))
}
)
def run = MCPServer(capabilities).run
```
Integration with the ZIO Stack as follows:
```scala 3
object Main extends ZIOAppDefault:
def program = for
_ <- logInfo("Booting...")
_ <- MyService.run
yield ()
def configuredServer: TaskLayer[Server] =
ZLayer
.fromZIO(ZIO.config(Config.int("port")).tap(port => logInfo(s"Starting server on port $port")))
.flatMap(portEnv => Server.defaultWithPort(portEnv.get))
def run = program.provide(configuredServer)
```
## Resources
- [MCP Protocol Tutorial](https://www.claudemcp.com/)
- [Anthropic / Model Context Protocol (MCP)](https://docs.anthropic.com/en/docs/agents-and-tools/mcp)
- [MCP Inspector](https://github.com/modelcontextprotocol/inspector)
[ZIO]: https://zio.dev
[zio-ella]: https://github.com/otobrglez/zio-ella
[mcp]: https://modelcontextprotocol.io/introduction
Connection Info
You Might Also Like
MarkItDown MCP
Converting files and office documents to Markdown.
Time
Obtaining current time information and converting time between different...
Filesystem
Model Context Protocol Servers
Sequential Thinking
Offers a structured approach to dynamic and reflective problem-solving,...
Git
Model Context Protocol Servers
Context 7
Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors