project-alena
Verified Safeby MinatoNami
Overview
Orchestrates various AI models and tools (like Google Calendar and Codex CLI) via MCP for local, privacy-first personal assistant capabilities, integrating voice, chat, and external services like Telegram.
Installation
bash scripts/start_controller_with_mcp.shEnvironment Variables
- GOOGLE_CREDENTIALS_PATH
- CALENDAR_ID
- CALENDAR_TIMEZONE
- OLLAMA_BASE_URL
- OLLAMA_MODEL
- OLLAMA_TIMEOUT
- TELEGRAM_BOT_TOKEN
- TELEGRAM_TARGET_CHAT_ID
- ALENA_CONTROLLER_URL
- ALENA_MAX_TOOL_STEPS
- LOG_LEVEL
- MAX_AUDIO_BYTES
- WHISPER_MODEL
- WHISPER_DEVICE
- WHISPER_COMPUTE_TYPE
- OLLAMA_ENABLED
- LLM_ROUTE
- ALENA_CONTROLLER_TIMEOUT
- CORS_ALLOW_ORIGINS
- ALENA_MEMORY_MAX_MESSAGES
- ALENA_CONTROLLER_HOST
- ALENA_CONTROLLER_PORT
- OLLAMA_DEBUG
- CALENDAR_TIMEZONE_OFFSET
- TELEGRAM_SOURCE_CHAT_IDS
- TELEGRAM_ECHO_IN_TARGET
- TELEGRAM_REPLY_IN_SOURCE
- TELEGRAM_CONTROLLER_ENABLED
- TELEGRAM_CONTROLLER_MAX_CONCURRENCY
- TELEGRAM_STT_WS_URL
- TELEGRAM_STT_TIMEOUT
- TELEGRAM_STT_SSL_VERIFY
Security Notes
Controlled Subprocess Execution: The `codex_runner.py` uses `subprocess.run` to invoke the `codex` CLI. While it attempts to sandbox with `--sandbox workspace-write` for `--apply` actions, any external CLI invocation carries inherent risks if the CLI itself or the prompt input can be exploited for arbitrary command execution. The project states "No shell execution (safe subprocess calls)" but this relies on the `codex` CLI's own sandboxing. Hardcoded Repository Whitelist: The `modules/core/controller/safety.py` module includes `ALLOWED_REPOS = ["/Users/lionelchong/sandbox"]` which is a hardcoded path. This is a critical security control to prevent agents from accessing arbitrary filesystem locations, but it must be made configurable by the user or dynamically determined to be practical and secure in different deployment environments. As it stands, it severely limits usability and is a significant setup friction. Default Wildcard CORS: The FastAPI backend for the voice assistant (`modules/voice-assistant/backend/app/main.py`) uses `allow_origins=["*"]` for CORS by default. While common for local development, this poses a security risk if the server is exposed to the internet, as it allows any domain to make cross-origin requests. Secrets Management: `modules/mcp/google-calendar/secrets/README.md` explicitly instructs users not to commit `credentials.json` or `token.json` and details secure handling, which is good practice. Environment variables are supported for custom paths.
Similar Servers
5ire
A desktop AI assistant client that integrates with various LLM providers and connects to Model Context Protocol (MCP) servers for extended tool-use and knowledge base capabilities.
ha-mcp
Provides AI agents with complete control over Home Assistant via REST and WebSocket APIs, offering a comprehensive suite of tools for smart home management, automation, and debugging.
claude-prompts-mcp
Enhances AI assistant behavior through structured prompt management, multi-step chains, quality gates, and autonomous verification loops, primarily for development tasks.
1xn-vmcp
An open-source platform for composing, customizing, and extending multiple Model Context Protocol (MCP) servers into a single logical, virtual MCP server, enabling fine-grained context engineering for AI workflows and agents.