fenix-mcp 1.3.1__tar.gz → 1.5.0__tar.gz

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.
Files changed (34) hide show
  1. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/PKG-INFO +1 -1
  2. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/__init__.py +1 -1
  3. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/tools/knowledge.py +20 -4
  4. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp.egg-info/PKG-INFO +1 -1
  5. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/README.md +0 -0
  6. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/presenters.py +0 -0
  7. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/tool_base.py +0 -0
  8. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/tool_registry.py +0 -0
  9. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/tools/__init__.py +0 -0
  10. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/tools/health.py +0 -0
  11. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/tools/initialize.py +0 -0
  12. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/tools/intelligence.py +0 -0
  13. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/tools/productivity.py +0 -0
  14. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/application/tools/user_config.py +0 -0
  15. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/domain/initialization.py +0 -0
  16. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/domain/intelligence.py +0 -0
  17. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/domain/knowledge.py +0 -0
  18. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/domain/productivity.py +0 -0
  19. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/domain/user_config.py +0 -0
  20. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/infrastructure/config.py +0 -0
  21. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/infrastructure/context.py +0 -0
  22. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/infrastructure/fenix_api/client.py +0 -0
  23. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/infrastructure/http_client.py +0 -0
  24. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/infrastructure/logging.py +0 -0
  25. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/interface/mcp_server.py +0 -0
  26. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/interface/transports.py +0 -0
  27. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp/main.py +0 -0
  28. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp.egg-info/SOURCES.txt +0 -0
  29. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp.egg-info/dependency_links.txt +0 -0
  30. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp.egg-info/entry_points.txt +0 -0
  31. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp.egg-info/requires.txt +0 -0
  32. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/fenix_mcp.egg-info/top_level.txt +0 -0
  33. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/pyproject.toml +0 -0
  34. {fenix_mcp-1.3.1 → fenix_mcp-1.5.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fenix-mcp
3
- Version: 1.3.1
3
+ Version: 1.5.0
4
4
  Summary: Fênix Cloud MCP server implemented in Python
5
5
  Author: Fenix Inc
6
6
  Requires-Python: >=3.10
@@ -8,4 +8,4 @@ Fênix Cloud MCP Server (Python edition).
8
8
  __all__ = ["__version__"]
9
9
 
10
10
 
11
- __version__ = "1.3.1"
11
+ __version__ = "1.5.0"
@@ -219,6 +219,10 @@ class KnowledgeRequest(ToolRequest):
219
219
  default=None,
220
220
  description="Work item priority (critical, high, medium, low).",
221
221
  )
222
+ work_category: Optional[str] = Field(
223
+ default=None,
224
+ description="Work item category/discipline. REQUIRED for work_create. Values: backend, frontend, mobile, fullstack, devops, infra, platform, sre, database, security, data, analytics, ai_ml, qa, automation, design, research, product, project, agile, support, operations, documentation, training, architecture, planning, development.",
225
+ )
222
226
  story_points: Optional[int] = Field(
223
227
  default=None, ge=0, le=100, description="Story points (0-100)."
224
228
  )
@@ -364,6 +368,10 @@ class KnowledgeTool(Tool):
364
368
  if action is KnowledgeAction.WORK_CREATE:
365
369
  if not payload.work_title:
366
370
  return text("❌ Provide work_title to create the item.")
371
+ if not payload.work_category:
372
+ return text(
373
+ "❌ Provide work_category to create the item. Values: backend, frontend, mobile, fullstack, devops, infra, platform, sre, database, security, data, analytics, ai_ml, qa, automation, design, research, product, project, agile, support, operations, documentation, training, architecture, planning, development."
374
+ )
367
375
  work = await self._service.work_create(
368
376
  {
369
377
  "title": payload.work_title,
@@ -371,6 +379,7 @@ class KnowledgeTool(Tool):
371
379
  "item_type": payload.work_type,
372
380
  "status": payload.work_status,
373
381
  "priority": payload.work_priority,
382
+ "work_category": payload.work_category,
374
383
  "story_points": payload.story_points,
375
384
  "assignee_id": payload.assignee_id,
376
385
  "sprint_id": payload.sprint_id,
@@ -416,6 +425,7 @@ class KnowledgeTool(Tool):
416
425
  "item_type": payload.work_type,
417
426
  "status": payload.work_status,
418
427
  "priority": payload.work_priority,
428
+ "work_category": payload.work_category,
419
429
  "story_points": payload.story_points,
420
430
  "assignee_id": payload.assignee_id,
421
431
  "sprint_id": payload.sprint_id,
@@ -683,13 +693,19 @@ class KnowledgeTool(Tool):
683
693
  associations = await self._service.mode_rules(payload.mode_id)
684
694
  rules = [assoc.get("rule", assoc) for assoc in associations]
685
695
 
686
- # Formatar resposta com rules
696
+ # Formatar resposta com rules (incluindo content)
687
697
  output = _format_mode(mode, header="🎭 Mode details", show_content=True)
688
698
  if rules:
689
- rules_list = "\n".join(
690
- f"- {r.get('name', 'Unnamed')} (ID: {r.get('id')})" for r in rules
699
+ rules_parts = []
700
+ for r in rules:
701
+ rule_text = f"### 📋 {r.get('name', 'Unnamed')}\n"
702
+ rule_text += f"ID: {r.get('id')}\n"
703
+ if r.get("content"):
704
+ rule_text += f"\n{r.get('content')}"
705
+ rules_parts.append(rule_text)
706
+ output += f"\n\n**Rules ({len(rules)}):**\n\n" + "\n\n---\n\n".join(
707
+ rules_parts
691
708
  )
692
- output += f"\n\n**Rules ({len(rules)}):**\n{rules_list}"
693
709
  return text(output)
694
710
 
695
711
  if action is KnowledgeAction.MODE_UPDATE:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fenix-mcp
3
- Version: 1.3.1
3
+ Version: 1.5.0
4
4
  Summary: Fênix Cloud MCP server implemented in Python
5
5
  Author: Fenix Inc
6
6
  Requires-Python: >=3.10
File without changes
File without changes
File without changes
File without changes