Skip to main content

Fênix Cloud MCP server implemented in Python

Project description

Fenix MCP

Fenix MCP Server
Python MCP server for Fenix Cloud API integration

PyPI Python License

Quick StartInstallationConfigurationStructure


Overview

Fenix MCP connects MCP-compatible clients (Claude Code, Cursor, Windsurf, VS Code, etc.) directly to the Fenix Cloud APIs. Every tool invocation hits the live backend—no outdated snapshots or hallucinated IDs.

Available Tools:

  • knowledge — Documentation CRUD, work items, modes, rules
  • productivity — TODO management
  • intelligence — Memories and smart operations
  • user_config — User configuration documents
  • initialize — Personalized setup
  • health — Backend health check

Quick Start

pipx install fenix-mcp                    # Install
fenix-mcp --pat <your-token>              # Run (STDIO mode)

Requirements

Requirement Version
Python 3.10+
Fenix PAT Token Required
MCP Client Claude Code, Cursor, Windsurf, VS Code, etc.

Installation

With pipx (recommended)

pipx install fenix-mcp

With pip

pip install --user fenix-mcp

Upgrade

pipx upgrade fenix-mcp
# or
pip install --upgrade fenix-mcp

Configuration

MCP Client Setup

Claude Code — ~/.claude/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 / Windsurf — settings.json
{
  "modelContextProtocol.mcpServers": {
    "fenix": {
      "command": "fenix-mcp",
      "args": ["--pat", "your-token"]
    }
  }
}

Environment Variables
Variable Description Default
FENIX_API_URL Fenix Cloud API base URL https://fenix-api.devshire.app
FENIX_PAT_TOKEN Token (alternative to --pat) empty
FENIX_TRANSPORT_MODE stdio, http, or both stdio
FENIX_HTTP_HOST HTTP transport host 127.0.0.1
FENIX_HTTP_PORT HTTP transport port 5003
FENIX_LOG_LEVEL Log level (DEBUG, INFO, etc.) INFO

See .env.example for reference.

HTTP Transport
export FENIX_TRANSPORT_MODE=http
export FENIX_HTTP_PORT=5003
fenix-mcp --pat <your-token>

JSON-RPC endpoint: http://127.0.0.1:5003/jsonrpc

Run both STDIO and HTTP:

export FENIX_TRANSPORT_MODE=both
fenix-mcp --pat <your-token>

Project Structure

fenix-mcp-py/
├── fenix_mcp/                  # Main package
│   ├── main.py                 # Entry point (CLI)
│   ├── application/            # Use cases and services
│   ├── domain/                 # Business entities
│   ├── infrastructure/         # External integrations (API, transport)
│   └── interface/              # MCP protocol handlers
├── tests/                      # Test suite
├── docs/                       # Documentation
├── pyproject.toml              # Project configuration
└── .env.example                # Environment template
fenix_mcp/ — Package Structure
Directory Responsibility
main.py CLI entry point, argument parsing, server bootstrap
application/ Use cases, handlers for each MCP tool
domain/ Business entities, DTOs, validation
infrastructure/ API client, HTTP transport, logging
interface/ MCP protocol implementation, tool registration

Architecture

MCP Client → interface/ → application/ → infrastructure/ → Fenix API
                              ↓
                          domain/
                        (entities)

Tech Stack

Layer Technology
Runtime Python 3.10+
Validation Pydantic 2
HTTP aiohttp, requests
Config pydantic-settings
Testing pytest, pytest-asyncio
Linting flake8, black, mypy

Development

Setup

# Clone and install
git clone <repo>
cd fenix-mcp-py
pip install -e .[dev]

Scripts

Command Description
pytest Run tests
pytest --cov=fenix_mcp Run with coverage
black fenix_mcp/ tests/ Format code
flake8 fenix_mcp/ tests/ Lint
mypy fenix_mcp/ Type check

Commit Convention

Follow Conventional Commits:

Prefix Description Version Bump
fix: Bug fixes Patch
feat: New features Minor
BREAKING CHANGE: Breaking changes Major
chore: Maintenance None
docs: Documentation None

CI/CD

Platform Usage
GitHub Actions Tests, lint, build on push/PR to main
Semantic Release Auto-version based on commits
PyPI Package distribution

Troubleshooting

command not found: fenix-mcp

Add scripts directory to PATH:

# macOS/Linux
export PATH="$PATH:~/.local/bin"

# Windows
# Add %APPDATA%\Python\Python311\Scripts to PATH
401 Unauthorized
  1. Check --pat or FENIX_PAT_TOKEN is set correctly
  2. Regenerate token in Fenix Cloud if expired
Run HTTP and STDIO simultaneously
export FENIX_TRANSPORT_MODE=both
fenix-mcp --pat <your-token>

Security

  • Store tokens securely (keychain, pass, .env)
  • Never commit secrets to git
  • Revoke tokens when no longer needed
  • Use pipx to isolate from global Python

Useful Links

Resource URL
PyPI https://pypi.org/project/fenix-mcp/
Fenix Cloud https://fenix.devshire.app
MCP Protocol https://modelcontextprotocol.io

Project details


Release history Release notifications | RSS feed

This version

2.2.1

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-2.2.1.tar.gz (48.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-2.2.1-py3-none-any.whl (59.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fenix_mcp-2.2.1.tar.gz
  • Upload date:
  • Size: 48.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-2.2.1.tar.gz
Algorithm Hash digest
SHA256 24ba76e95fa32ecbc02c8f2530af1097a52995fdc5c7cf8915d7b0f1a3c6e3b6
MD5 604165abe617e4ae7fafc306412239a8
BLAKE2b-256 127310631c771058045f46163712fa5b4bed0d4306a6ebff2dc28a6b41c700b5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fenix_mcp-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 59.1 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-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f8539edc91e8f479e6a9194e1f5d6d603d95436b0ed7b3ab78610b35c7581e80
MD5 d45e5e1e77852d7d42f6af22b01b1b9e
BLAKE2b-256 7991dd1fe90cf11a9d843bcd7a902424e1938c7c71004e0edf99aed0530ed842

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