Fênix Cloud MCP server implemented in Python
Project description
Fênix MCP — Live Access to Fênix Cloud Data
Fênix MCP connects MCP-compatible clients (Codex, Cursor, Context7, Windsurf, VS Code, etc.) directly to the Fênix Cloud APIs. Every tool invocation hits the live backend—no outdated snapshots or hallucinated IDs.
❌ Without Fênix MCP
- Manual lookups in the web console slow you down
- Agents fabricate document status, IDs, or team data
- Automation workflows stall on stale information
✅ With Fênix MCP
- Real-time API calls over STDIO or HTTP
- Rich toolset: documentation CRUD, work items, modes, rules, TODOs, memories
- Built for multi-user environments and multiple MCP clients
🛠 Requirements
- Python 3.10 or newer
- Fênix Cloud Personal Access Token (
FENIX_PAT_TOKEN) - Any MCP client (Codex, Cursor, VS Code MCP, etc.)
🚀 Installation
With pipx (recommended)
pipx install fenix-mcp
With pip
pip install --user fenix-mcp
To upgrade:
pipx upgrade fenix-mcp
# or
pip install --upgrade fenix-mcp
▶️ Quick Start
Launch the STDIO server by providing your token (or set FENIX_PAT_TOKEN beforehand):
fenix-mcp --pat <your-token>
The command accepts all flags supported by fenix_mcp.main and responds over STDIO, ready for MCP clients.
⚙️ MCP Client Configuration
Codex CLI (~/.codex/config.toml)
[mcp_servers.fenix]
command = "fenix-mcp"
args = ["--pat", "your-token"]
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"fenix": {
"command": "fenix-mcp",
"args": ["--pat", "your-token"],
"disabled": false
}
}
}
VS Code (Insiders) / Windsurf (settings.json)
{
"modelContextProtocol.mcpServers": {
"fenix": {
"command": "fenix-mcp",
"args": ["--pat", "your-token"]
}
}
}
💡 Install with
pipx install fenix-mcp --python python3.11to keep the CLI isolated from your global Python.
🌐 Optional HTTP Transport
export FENIX_TRANSPORT_MODE=http
export FENIX_HTTP_PORT=5003
fenix-mcp --pat <your-token>
Set FENIX_TRANSPORT_MODE=both to run STDIO and HTTP simultaneously. The default JSON-RPC endpoint is http://127.0.0.1:5003/jsonrpc.
🔧 Environment Variables
| Variable | Description | Default |
|---|---|---|
FENIX_API_URL |
Base URL of Fênix Cloud API | https://fenix-api.devshire.app |
FENIX_PAT_TOKEN |
Token used when --pat is omitted |
empty |
FENIX_TRANSPORT_MODE |
stdio, http, or both |
stdio |
FENIX_HTTP_HOST |
Host for HTTP transport | 127.0.0.1 |
FENIX_HTTP_PORT |
Port for HTTP transport | 5003 |
FENIX_LOG_LEVEL |
Global log level (DEBUG, INFO, …) |
INFO |
Copy
.env.exampleto.envfor easier customization.
🧪 Development
Local Testing
# Install development dependencies
pip install -e .[dev]
# Run tests
pytest
# Run with coverage
pytest --cov=fenix_mcp --cov-report=html
# Run linting
flake8 fenix_mcp/ tests/
black --check fenix_mcp/ tests/
# Run type checking
mypy fenix_mcp/
# Format code
black fenix_mcp/ tests/
Pre-commit Hooks (Optional)
# Install pre-commit
pip install pre-commit
# Install hooks
pre-commit install
# Run on all files
pre-commit run --all-files
Commit Convention
This project follows Conventional Commits:
fix:- Bug fixes (patch version bump)feat:- New features (minor version bump)BREAKING CHANGE:- Breaking changes (major version bump)chore:- Maintenance tasksdocs:- Documentation changestest:- Test additions/changes
🔄 Automation
-
CI (GitHub Actions) – runs on pushes and pull requests targeting
main. It installs dependencies, runs tests on Python 3.11, enforces flake8/black/mypy, generates coverage, builds the distribution (python -m build) and, on pushes, uploads artifacts for debugging. -
Semantic Release – after the CI job succeeds on
main, the workflow installs the requiredsemantic-releaseplugins and runsnpx semantic-release. Conventional Commits decide the next version,scripts/bump_version.pyupdatesfenix_mcp.__version__, the build artifacts are regenerated, and release notes/assets are published to GitHub and PyPI (usingPYPI_API_TOKEN). If no eligible commit (feat,fix, orBREAKING CHANGE) exists since the last tag, no new release is produced.
🧰 Available Tools
knowledge– documentation CRUD, work items, modes, rulesproductivity– TODO managementintelligence– memories and smart operationsinitialize– personalized setuphealth– backend health check
🔐 Security Tips
- Store tokens securely (
pass, keychain,.env) and never commit secrets. - Revoke tokens when no longer needed.
- In shared environments, prefer
pipx + FENIX_PAT_TOKENexported per session.
❓ Troubleshooting
"command not found: fenix-mcp"
- Ensure the
pipx/pip --userscripts directory is on yourPATH. - macOS/Linux:
export PATH="$PATH:~/.local/bin" - Windows: check
%APPDATA%\Python\Python311\Scripts(adjust version as needed).
"401 Unauthorized" or authentication errors
- Confirm
--patorFENIX_PAT_TOKENis set correctly. - Regenerate tokens in Fênix Cloud if they have expired or been revoked.
Use HTTP and STDIO at the same time
export FENIX_TRANSPORT_MODE=both
fenix-mcp --pat <your-token>
STDIO stays active for MCP clients; HTTP will listen on FENIX_HTTP_HOST:FENIX_HTTP_PORT.
🗺 Roadmap
- Official Docker image for Fênix MCP
- Convenience install scripts (
curl | sh) for macOS/Linux/Windows - Additional integrations (public core documents, more tools)
🤝 Contributing
- Fork the repository
- Create a branch:
git checkout -b feat/my-feature - Install dev dependencies:
pip install -e .[dev] - Use Conventional Commits (
feat:,fix:, orBREAKING CHANGE:) so Semantic Release can infer the next version. - Run
pytest - Open a Pull Request describing your changes
📄 License
Distributed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fenix_mcp-1.0.0.tar.gz.
File metadata
- Download URL: fenix_mcp-1.0.0.tar.gz
- Upload date:
- Size: 42.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d274b48356b00348c9afc444b60776460faca3c0e203109a3b0291826c3251d2
|
|
| MD5 |
8bf96cba6298fa85496896db760fb666
|
|
| BLAKE2b-256 |
e6695b580fbfd4bf9d3f73d442f38e963938c1c7f5108ee53e05341183e0e79d
|
File details
Details for the file fenix_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: fenix_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 50.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8702437f4e1b5fd03f7d2768fce92b3096f87d9a0592b9d52b86d6fb6116690
|
|
| MD5 |
109d5e5bf5e342c80f7fbcd3b70afc20
|
|
| BLAKE2b-256 |
6499d0ee1be30645af4c1cff299fcb91a81fc61056281ea529c8c9d7751fc10b
|