Skip to main content

Fênix Cloud MCP server implemented in Python

Project description

Fênix MCP — Live Access to Fênix Cloud Data

PyPI Python License: MIT

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.11 to 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.example to .env for 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 tasks
  • docs: - Documentation changes
  • test: - 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 required semantic-release plugins and runs npx semantic-release. Conventional Commits decide the next version, scripts/bump_version.py updates fenix_mcp.__version__, the build artifacts are regenerated, and release notes/assets are published to GitHub and PyPI (using PYPI_API_TOKEN). If no eligible commit (feat, fix, or BREAKING CHANGE) exists since the last tag, no new release is produced.

🧰 Available Tools

  • knowledge – documentation CRUD, work items, modes, rules
  • productivity – TODO management
  • intelligence – memories and smart operations
  • initialize – personalized setup
  • health – 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_TOKEN exported per session.

❓ Troubleshooting

"command not found: fenix-mcp"
  • Ensure the pipx/pip --user scripts directory is on your PATH.
  • macOS/Linux: export PATH="$PATH:~/.local/bin"
  • Windows: check %APPDATA%\Python\Python311\Scripts (adjust version as needed).
"401 Unauthorized" or authentication errors
  • Confirm --pat or FENIX_PAT_TOKEN is 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

  1. Fork the repository
  2. Create a branch: git checkout -b feat/my-feature
  3. Install dev dependencies: pip install -e .[dev]
  4. Use Conventional Commits (feat:, fix:, or BREAKING CHANGE:) so Semantic Release can infer the next version.
  5. Run pytest
  6. 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

fenix_mcp-0.2.2.tar.gz (39.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fenix_mcp-0.2.2-py3-none-any.whl (47.3 kB view details)

Uploaded Python 3

File details

Details for the file fenix_mcp-0.2.2.tar.gz.

File metadata

  • Download URL: fenix_mcp-0.2.2.tar.gz
  • Upload date:
  • Size: 39.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for fenix_mcp-0.2.2.tar.gz
Algorithm Hash digest
SHA256 3ac0e289e52326ad722a7a808247f9ce7da924986625c974dde8a8ea9f3b29e5
MD5 cf078b4055e9501f3f6b1772b8070941
BLAKE2b-256 1f7c37124a817b7295fa5a203d03cc07c8640addbb4fdf64f37fad3fc19c2d25

See more details on using hashes here.

File details

Details for the file fenix_mcp-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: fenix_mcp-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 47.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for fenix_mcp-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1140d44151920b0c9453da97af4bda391137dc200737ef2482c8e05463142a47
MD5 1c271d3457756f7bed70cee1c602d1d8
BLAKE2b-256 7c67186196fdef1724715cb061b970a4812e48fb2c8d80b4f0e80e5a41a3cf22

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page