dorcha-inc/orla
If you are the rightful owner of orla and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
Orla is a fast and extensible Model Context Protocol (MCP) server and router with auto discovery capabilities.
orla is a runtime for model context protocol (MCP) servers that automatically discovers and executes tools from the filesystem. Just drop executable files in a tools/ directory and orla makes them available as MCP tools! No configuration required.
All the amazing folks who have taken their time to contribute something cool to orla are listed in . If you find orla useful, please consider sponsoring the orla project. Your support helps maintain and improve orla for everyone. Thank you!
quick links
- Getting Started
- Usage
- Configuration
- Command Line Options
- Community + Contributions
- Roadmap
- Integration Guides
getting started
to install orla, you can either just run
go install github.com/dorcha-inc/orla/cmd/orla@latest
or build it locally by cloning this repository and running
make build
or installing locally by running
make install
usage
The following is a simple example of using orla to create a set of MCP tools.
- Create a tools directory with some tools. The tools can be any kind of executable.
mkdir tools
cat > tools/hello.sh << 'EOF'
#!/bin/bash
echo "Hello from orla!"
EOF
chmod +x tools/hello.sh
- Start orla:
orla serve
this runs on port 8080 by default.
You can run it using stdio as the transport:
orla serve --stdio
You can specify a custom port
orla serve --port 3000
You can also specify a custom configuration file:
orla serve --config orla.yaml
If no configuration file is specified, orla will automatically check for orla.yaml in the current directory. If not found, default configuration is used.
- You can hot reload orla, i.e., get it to refresh its tools and configuration without restarting.
kill -HUP $(pgrep orla)
configuration
orla works out of the box with zero configuration, but you can customize it with a YAML config file:
tools_dir: ./tools
port: 8080
timeout: 30
log_format: json
log_level: info
The configuration options for orla are as follows
tools_dir: Directory containing executable tools (default:./tools)port: HTTP server port (default:8080, ignored in stdio mode)timeout: Tool execution timeout in seconds (default:30)log_format:"json"or"pretty"(default:"json")log_level:"debug","info","warn","error", or"fatal"(default:"info")
command line options
orla serve [options]
Options:
-config string Path to orla.yaml config file
-port int Port to listen on (ignored if stdio is used, default: 8080)
-stdio Use stdio instead of TCP port
-pretty Use pretty-printed logs instead of JSON
-tools-dir string Directory containing tools (overrides config file)
git hooks
orla includes pre-commit hooks for secret detection, linting, and testing. to enable them, run this once:
git config core.hooksPath .githooks
this configures git to automatically use hooks from .githooks/ - no setup script needed!
testing
orla comes with extensive tests which can be run using
make test
community + contributions
Contributions are very welcome! orla is an open-source project and runs on individual contributions from amazing people around the world. Contributions are welcome! For feature requests, bug reports, or usage problems, please feel free to create an issue. For more extensive contributions, check the .
Join other orla users and developers on the following platforms:
roadmap
See the RFCs in docs/rfcs/ for the full vision and roadmap.