zio-ella
MCP framework for ZIO HTTP
claude mcp add --transport stdio otobrglez-zio-ella docker run -i otobrglez/zio-ella \ --env PORT="Port to bind the MCP server (if applicable)"
How to use
zio-ella is a framework for writing MCP (Model Context Protocol) servers using Scala 3 and ZIO with zio-http. In MCP terms, you define a set of capabilities and tools, where each Tool can accept arguments and return results. For example, a tool named get-time returns the current server time, while a tool named get-weather can accept a city as an argument and respond with a weather string. The example demonstrates how to define a Capabilities collection and expose a run method that starts the MCP server. The integration example shows wiring the server into a ZIO application, boot logging, and configuring the port from a config source. To use the tools, you interact with the Tool definitions and supply any required arguments (for instance, city for get-weather) and then consume the resulting response produced by the server.
How to install
Prerequisites:
- Docker installed and running (recommended for this MCP server in its current packaging approach).
- Optional local Scala/Java development environment if you intend to build from source (Java 17+ JDK, sbt, Scala 3).
Installation options:
-
Run with Docker (recommended):
- Ensure Docker is running.
- Pull and run the image: docker run -i otobrglez/zio-ella
- The container will start the MCP server exposed on the container's port (adjust as needed with port mappings).
-
Build from source (if you have a Scala 3 environment):
- Install prerequisites: Java 17+, sbt.
- Clone the repository: git clone https://github.com/otobrglez/zio-ella.git
- Navigate to the project directory: cd zio-ella
- Build the project: sbt package
- Run the server (example, adapt to your setup): java -jar target/scala-3.x.x/zio-ella.jar
Notes:
- The project is in early development; expect rapid changes and evolving APIs. Check the repository for the latest build and run instructions.
- If you plan to deploy, consider containerizing with Docker for consistency across environments.
Additional notes
Tips and considerations:
- The server exposes tools defined in the Capabilities; add or modify Tools to extend functionality (e.g., new endpoints or data sources).
- For local development, keep an eye on port configuration and ensure the port your MCP server listens on is accessible to clients.
- Since the project is under active development, consult the project’s issue tracker or docs for any breaking changes or migration notes when updating versions.
- If you plan to run outside Docker, ensure you have a compatible Java/Scala toolchain and the necessary dependencies wired into your build.
- Environment variables can be used to customize runtime behavior (e.g., ports, endpoints, or feature flags).
Related MCP Servers
mcp-for-beginners
This open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.
ReActMCP
ReActMCP is a reactive MCP client that empowers AI assistants to instantly respond with real-time, Markdown-formatted web search insights powered by the Exa API.
spring-ai
From Java Dev to AI Engineer: Spring AI Fast Track
furi
CLI & API for MCP management
mcp-lite-dev
共学《MCP极简开发》项目代码
zerodha
Zerodha MCP Server & Client - AI Agent (w/Agno & w/Google ADK)