fenix-mcp 1.13.0__py3-none-any.whl → 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- fenix_mcp/__init__.py,sha256=ThgQu80gAYvNTOp0tZR76cZummpN0oFewZ0iwVj9NGA,181
1
+ fenix_mcp/__init__.py,sha256=ewwBzUPQxM4BTmesnfhTvSBnnkCQQPE4nOkAVo-lKYM,180
2
2
  fenix_mcp/main.py,sha256=iJV-9btNMDJMObvcn7wBQdbLLKjkYCQ1ANGEwHGHlMU,2857
3
3
  fenix_mcp/application/presenters.py,sha256=fGME54PdCDhTBhXO-JUB9yLdBHiE1aeXLTC2fCuxnxM,689
4
4
  fenix_mcp/application/tool_base.py,sha256=ZCb9g4ij5Hbb0410NEZTYXvPWq-Zkg8ZCsinTa3gCY4,4741
5
5
  fenix_mcp/application/tool_registry.py,sha256=bPT5g8GfxG_qu28R1WaDOZHvtmG6TPDvZi8eWj1T9xE,1250
6
6
  fenix_mcp/application/tools/__init__.py,sha256=Gi1YvYh-KdL9HD8gLVrknHrxiKKEOhHBEZ02KBXJaKQ,796
7
7
  fenix_mcp/application/tools/health.py,sha256=m5DxhoRbdwl6INzd6PISxv1NAv-ljCrezsr773VB0wE,834
8
- fenix_mcp/application/tools/initialize.py,sha256=_yVhjB4R6h0XAXyqnoe27F1UpidvcJstlsropsPf7q8,6449
9
- fenix_mcp/application/tools/intelligence.py,sha256=fb004UlYiSlhL8pblG3AEx6cwrVMxTL_arloJshacSw,16173
10
- fenix_mcp/application/tools/knowledge.py,sha256=AQBSispBde0-jAhlKjHrek9FNUaZzqhn293yyocYUQ0,61057
8
+ fenix_mcp/application/tools/initialize.py,sha256=YQpZ0K6uz_LiLdE_GdQ0uJKtj6cgFru38xwoaCl5Jmg,5146
9
+ fenix_mcp/application/tools/intelligence.py,sha256=CLw6vxeuu9NwNIINBUUCn3g5JQ2nJmSUogbTwsDhrvE,8440
10
+ fenix_mcp/application/tools/knowledge.py,sha256=NHr2zoTNIE1994iBABwuNARv78XToWMiZdlI4bY5ocU,70327
11
11
  fenix_mcp/application/tools/productivity.py,sha256=Wmefwg6yuXkHwwQT999d9D4lQf0UY_jnCTDlBe2YRTg,11273
12
12
  fenix_mcp/application/tools/user_config.py,sha256=O5AVg7IUKL9uIoUoBSFovBDHl9jofhKWzhFK7CnKi4s,6470
13
- fenix_mcp/domain/initialization.py,sha256=AZhdSNITQ7O3clELBuqGvjJc-c8pFKc7zQz-XR2xXPc,6933
14
- fenix_mcp/domain/intelligence.py,sha256=j1kkxT-pjuzLQeAGDd2H8gd3O1aeUIRgHFnMGvNwQYg,8636
15
- fenix_mcp/domain/knowledge.py,sha256=xZt2Mjikf4HxcXERDC6ov1fxoHnm4LPU6FI2FZxqq0w,21152
13
+ fenix_mcp/domain/initialization.py,sha256=j7D0TsvtLqTZLmwFkrZnv1e2ZnDCuDQ_P3c8jMm2ifI,2849
14
+ fenix_mcp/domain/intelligence.py,sha256=khoNPqhQMZkTOvSRbLtbp7xYpYgkP57s571TnRs4WYU,2747
15
+ fenix_mcp/domain/knowledge.py,sha256=-4c4AyRKE-n_RmlrkCkHSnpQquZBEDNv_tiDrUtACkQ,19249
16
16
  fenix_mcp/domain/productivity.py,sha256=PzY664eRPuBCfZGUY_Uv1GNeyMWsw6xqC54C-nobQns,6799
17
17
  fenix_mcp/domain/user_config.py,sha256=8rzhJCNqIArfaCoKxxQXFoemCU7qww3hq0RDanIf_2Y,2028
18
18
  fenix_mcp/infrastructure/config.py,sha256=zhJ3hhsP-bRfICcdq8rIDh5NGDe_u7AGpcgjcc2U1nY,1908
@@ -20,11 +20,11 @@ fenix_mcp/infrastructure/context.py,sha256=kiDiamiPbHZpTGyZMylcQwtLhfaDXrxAkWSst
20
20
  fenix_mcp/infrastructure/http_client.py,sha256=uJwt_iBGSFa1XPFBeqtm7eznkEm8aZ1v2DSxYjloAQs,2753
21
21
  fenix_mcp/infrastructure/logging.py,sha256=bHrWlSi_0HshRe3--BK_5nzUszW-gh37q6jsd0ShS2Y,1371
22
22
  fenix_mcp/infrastructure/request_context.py,sha256=hAHXHh-SKizBN7-YgdaRv0JsRYXBdurO2sr9btHPjKI,1101
23
- fenix_mcp/infrastructure/fenix_api/client.py,sha256=Sv3hCIFuO0llbv7RDtyLweBNRh82HxZLxDpQVV4UvXg,27709
24
- fenix_mcp/interface/mcp_server.py,sha256=5UM2NJuNbwHkmCEprIFataJ5nFZiO8efTtP_oW3_iX0,2331
23
+ fenix_mcp/infrastructure/fenix_api/client.py,sha256=fkXIzo2_Qs4AfnkPX8Z1k-3dwTTJ5wEG-MBCfUZ8Axo,29119
24
+ fenix_mcp/interface/mcp_server.py,sha256=xSIMZwOaEwHLJ1BKy_agdMiep7HFhIgsUhOVz49DsyA,2728
25
25
  fenix_mcp/interface/transports.py,sha256=2zJtc-L73zasyiwQoZbvFJ0yT1bggL5WAa7Nm7zID3k,8502
26
- fenix_mcp-1.13.0.dist-info/METADATA,sha256=rFQ8PBM6ww0xqwuuDZhOI0CIa8xRYQXRghzqmxnXjJA,7261
27
- fenix_mcp-1.13.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
- fenix_mcp-1.13.0.dist-info/entry_points.txt,sha256=o52x_YHBupEd-1Z1GSfUjv3gJrx5_I-EkHhCgt1WBaE,49
29
- fenix_mcp-1.13.0.dist-info/top_level.txt,sha256=2G1UtKpwjaIGQyE7sRoHecxaGLeuexfjrOUjv9DDKh4,10
30
- fenix_mcp-1.13.0.dist-info/RECORD,,
26
+ fenix_mcp-2.0.0.dist-info/METADATA,sha256=6oZbIkzpboBC9i1IzXjedPEo_mSECyo_9tbZ36oHQFA,7714
27
+ fenix_mcp-2.0.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
28
+ fenix_mcp-2.0.0.dist-info/entry_points.txt,sha256=o52x_YHBupEd-1Z1GSfUjv3gJrx5_I-EkHhCgt1WBaE,49
29
+ fenix_mcp-2.0.0.dist-info/top_level.txt,sha256=2G1UtKpwjaIGQyE7sRoHecxaGLeuexfjrOUjv9DDKh4,10
30
+ fenix_mcp-2.0.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,258 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: fenix-mcp
3
- Version: 1.13.0
4
- Summary: Fênix Cloud MCP server implemented in Python
5
- Author: Fenix Inc
6
- Requires-Python: >=3.10
7
- Description-Content-Type: text/markdown
8
- Requires-Dist: pydantic>=2.5
9
- Requires-Dist: requests>=2.31
10
- Requires-Dist: urllib3>=2.0
11
- Requires-Dist: aiohttp>=3.9
12
- Requires-Dist: pydantic-settings>=2.0
13
- Provides-Extra: dev
14
- Requires-Dist: pytest>=7.4; extra == "dev"
15
- Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
16
- Requires-Dist: pytest-cov>=4.0; extra == "dev"
17
- Requires-Dist: black>=23.0; extra == "dev"
18
- Requires-Dist: flake8>=6.0; extra == "dev"
19
- Requires-Dist: mypy>=1.0; extra == "dev"
20
- Requires-Dist: twine>=4.0; extra == "dev"
21
-
22
- # Fênix MCP — Live Access to Fênix Cloud Data
23
-
24
- [![PyPI](https://img.shields.io/pypi/v/fenix-mcp.svg)](https://pypi.org/project/fenix-mcp/) [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
25
-
26
- **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.
27
-
28
- ## ❌ Without Fênix MCP
29
-
30
- - Manual lookups in the web console slow you down
31
- - Agents fabricate document status, IDs, or team data
32
- - Automation workflows stall on stale information
33
-
34
- ## ✅ With Fênix MCP
35
-
36
- - Real-time API calls over STDIO or HTTP
37
- - Rich toolset: documentation CRUD, work items, modes, rules, TODOs, memories
38
- - Built for multi-user environments and multiple MCP clients
39
-
40
- ## 🛠 Requirements
41
-
42
- - Python 3.10 or newer
43
- - Fênix Cloud Personal Access Token (`FENIX_PAT_TOKEN`)
44
- - Any MCP client (Codex, Cursor, VS Code MCP, etc.)
45
-
46
- ## 🚀 Installation
47
-
48
- ### With `pipx` (recommended)
49
-
50
- ```bash
51
- pipx install fenix-mcp
52
- ```
53
-
54
- ### With `pip`
55
-
56
- ```bash
57
- pip install --user fenix-mcp
58
- ```
59
-
60
- To upgrade:
61
-
62
- ```bash
63
- pipx upgrade fenix-mcp
64
- # or
65
- pip install --upgrade fenix-mcp
66
- ```
67
-
68
- ## ▶️ Quick Start
69
-
70
- Launch the STDIO server by providing your token (or set `FENIX_PAT_TOKEN` beforehand):
71
-
72
- ```bash
73
- fenix-mcp --pat <your-token>
74
- ```
75
-
76
- The command accepts all flags supported by `fenix_mcp.main` and responds over STDIO, ready for MCP clients.
77
-
78
- ## ⚙️ MCP Client Configuration
79
-
80
- ### Codex CLI (`~/.codex/config.toml`)
81
-
82
- ```toml
83
- [mcp_servers.fenix]
84
- command = "fenix-mcp"
85
- args = ["--pat", "your-token"]
86
- ```
87
-
88
- ### Cursor (`~/.cursor/mcp.json`)
89
-
90
- ```json
91
- {
92
- "mcpServers": {
93
- "fenix": {
94
- "command": "fenix-mcp",
95
- "args": ["--pat", "your-token"],
96
- "disabled": false
97
- }
98
- }
99
- }
100
- ```
101
-
102
- ### VS Code (Insiders) / Windsurf (`settings.json`)
103
-
104
- ```json
105
- {
106
- "modelContextProtocol.mcpServers": {
107
- "fenix": {
108
- "command": "fenix-mcp",
109
- "args": ["--pat", "your-token"]
110
- }
111
- }
112
- }
113
- ```
114
-
115
- > 💡 Install with `pipx install fenix-mcp --python python3.11` to keep the CLI isolated from your global Python.
116
-
117
- ## 🌐 Optional HTTP Transport
118
-
119
- ```bash
120
- export FENIX_TRANSPORT_MODE=http
121
- export FENIX_HTTP_PORT=5003
122
- fenix-mcp --pat <your-token>
123
- ```
124
-
125
- Set `FENIX_TRANSPORT_MODE=both` to run STDIO and HTTP simultaneously. The default JSON-RPC endpoint is `http://127.0.0.1:5003/jsonrpc`.
126
-
127
- ## 🔧 Environment Variables
128
-
129
- | Variable | Description | Default |
130
- | --- | --- | --- |
131
- | `FENIX_API_URL` | Base URL of Fênix Cloud API | `https://fenix-api.devshire.app` |
132
- | `FENIX_PAT_TOKEN` | Token used when `--pat` is omitted | empty |
133
- | `FENIX_TRANSPORT_MODE` | `stdio`, `http`, or `both` | `stdio` |
134
- | `FENIX_HTTP_HOST` | Host for HTTP transport | `127.0.0.1` |
135
- | `FENIX_HTTP_PORT` | Port for HTTP transport | `5003` |
136
- | `FENIX_LOG_LEVEL` | Global log level (`DEBUG`, `INFO`, …) | `INFO` |
137
-
138
- > Copy `.env.example` to `.env` for easier customization.
139
-
140
-
141
- ## 🧪 Development
142
-
143
- ### Local Testing
144
-
145
- ```bash
146
- # Install development dependencies
147
- pip install -e .[dev]
148
-
149
- # Run tests
150
- pytest
151
-
152
- # Run with coverage
153
- pytest --cov=fenix_mcp --cov-report=html
154
-
155
- # Run linting
156
- flake8 fenix_mcp/ tests/
157
- black --check fenix_mcp/ tests/
158
-
159
- # Run type checking
160
- mypy fenix_mcp/
161
-
162
- # Format code
163
- black fenix_mcp/ tests/
164
- ```
165
-
166
- ### Pre-commit Hooks (Optional)
167
-
168
- ```bash
169
- # Install pre-commit
170
- pip install pre-commit
171
-
172
- # Install hooks
173
- pre-commit install
174
-
175
- # Run on all files
176
- pre-commit run --all-files
177
- ```
178
-
179
- ### Commit Convention
180
-
181
- This project follows [Conventional Commits](https://www.conventionalcommits.org/):
182
-
183
- - `fix:` - Bug fixes (patch version bump)
184
- - `feat:` - New features (minor version bump)
185
- - `BREAKING CHANGE:` - Breaking changes (major version bump)
186
- - `chore:` - Maintenance tasks
187
- - `docs:` - Documentation changes
188
- - `test:` - Test additions/changes
189
-
190
- ## 🔄 Automation
191
-
192
- - **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.
193
-
194
- - **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.
195
-
196
- ## 🧰 Available Tools
197
-
198
- - `knowledge` – documentation CRUD, work items, modes, rules
199
- - `productivity` – TODO management
200
- - `intelligence` – memories and smart operations
201
- - `initialize` – personalized setup
202
- - `health` – backend health check
203
-
204
- ## 🔐 Security Tips
205
-
206
- - Store tokens securely (`pass`, keychain, `.env`) and never commit secrets.
207
- - Revoke tokens when no longer needed.
208
- - In shared environments, prefer `pipx + FENIX_PAT_TOKEN` exported per session.
209
-
210
- ## ❓ Troubleshooting
211
-
212
- <details>
213
- <summary><b>"command not found: fenix-mcp"</b></summary>
214
-
215
- - Ensure the `pipx`/`pip --user` scripts directory is on your `PATH`.
216
- - macOS/Linux: `export PATH="$PATH:~/.local/bin"`
217
- - Windows: check `%APPDATA%\Python\Python311\Scripts` (adjust version as needed).
218
-
219
- </details>
220
-
221
- <details>
222
- <summary><b>"401 Unauthorized" or authentication errors</b></summary>
223
-
224
- - Confirm `--pat` or `FENIX_PAT_TOKEN` is set correctly.
225
- - Regenerate tokens in Fênix Cloud if they have expired or been revoked.
226
-
227
- </details>
228
-
229
- <details>
230
- <summary><b>Use HTTP and STDIO at the same time</b></summary>
231
-
232
- ```bash
233
- export FENIX_TRANSPORT_MODE=both
234
- fenix-mcp --pat <your-token>
235
- ```
236
-
237
- STDIO stays active for MCP clients; HTTP will listen on `FENIX_HTTP_HOST:FENIX_HTTP_PORT`.
238
-
239
- </details>
240
-
241
- ## 🗺 Roadmap
242
-
243
- - Official Docker image for Fênix MCP
244
- - Convenience install scripts (`curl | sh`) for macOS/Linux/Windows
245
- - Additional integrations (public core documents, more tools)
246
-
247
- ## 🤝 Contributing
248
-
249
- 1. Fork the repository
250
- 2. Create a branch: `git checkout -b feat/my-feature`
251
- 3. Install dev dependencies: `pip install -e .[dev]`
252
- 4. Use Conventional Commits (`feat:`, `fix:`, or `BREAKING CHANGE:`) so Semantic Release can infer the next version.
253
- 5. Run `pytest`
254
- 6. Open a Pull Request describing your changes
255
-
256
- ## 📄 License
257
-
258
- Distributed under the [MIT License](./LICENSE).