fenix-mcp 0.5.10__tar.gz → 0.5.12__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-0.5.10 → fenix_mcp-0.5.12}/PKG-INFO +1 -1
  2. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/__init__.py +1 -1
  3. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/tools/knowledge.py +21 -6
  4. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/domain/knowledge.py +1 -1
  5. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp.egg-info/PKG-INFO +1 -1
  6. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/README.md +0 -0
  7. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/presenters.py +0 -0
  8. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/tool_base.py +0 -0
  9. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/tool_registry.py +0 -0
  10. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/tools/__init__.py +0 -0
  11. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/tools/health.py +0 -0
  12. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/tools/initialize.py +0 -0
  13. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/tools/intelligence.py +0 -0
  14. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/tools/productivity.py +0 -0
  15. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/application/tools/user_config.py +0 -0
  16. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/domain/initialization.py +0 -0
  17. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/domain/intelligence.py +0 -0
  18. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/domain/productivity.py +0 -0
  19. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/domain/user_config.py +0 -0
  20. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/infrastructure/config.py +0 -0
  21. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/infrastructure/context.py +0 -0
  22. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/infrastructure/fenix_api/client.py +0 -0
  23. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/infrastructure/http_client.py +0 -0
  24. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/infrastructure/logging.py +0 -0
  25. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/interface/mcp_server.py +0 -0
  26. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/interface/transports.py +0 -0
  27. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp/main.py +0 -0
  28. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp.egg-info/SOURCES.txt +0 -0
  29. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp.egg-info/dependency_links.txt +0 -0
  30. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp.egg-info/entry_points.txt +0 -0
  31. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp.egg-info/requires.txt +0 -0
  32. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/fenix_mcp.egg-info/top_level.txt +0 -0
  33. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/pyproject.toml +0 -0
  34. {fenix_mcp-0.5.10 → fenix_mcp-0.5.12}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fenix-mcp
3
- Version: 0.5.10
3
+ Version: 0.5.12
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__ = "0.5.10"
11
+ __version__ = "0.5.12"
@@ -160,7 +160,6 @@ class KnowledgeRequest(ToolRequest):
160
160
  default=None, description="Descrição do work item."
161
161
  )
162
162
  work_type: Optional[str] = Field(default="task", description="Tipo do work item.")
163
- work_status: Optional[str] = Field(default=None, description="Status do work item.")
164
163
  work_priority: Optional[str] = Field(
165
164
  default=None, description="Prioridade do work item."
166
165
  )
@@ -266,7 +265,6 @@ class KnowledgeTool(Tool):
266
265
  "title": payload.work_title,
267
266
  "description": payload.work_description,
268
267
  "item_type": payload.work_type,
269
- "status": payload.work_status,
270
268
  "priority": payload.work_priority,
271
269
  "story_points": payload.story_points,
272
270
  "assignee_id": payload.assignee_id,
@@ -281,7 +279,6 @@ class KnowledgeTool(Tool):
281
279
  items = await self._service.work_list(
282
280
  limit=payload.limit,
283
281
  offset=payload.offset,
284
- status=payload.work_status,
285
282
  priority=payload.work_priority,
286
283
  type=payload.work_type,
287
284
  assignee=payload.assignee_id,
@@ -308,7 +305,6 @@ class KnowledgeTool(Tool):
308
305
  "title": payload.work_title,
309
306
  "description": payload.work_description,
310
307
  "item_type": payload.work_type,
311
- "status": payload.work_status,
312
308
  "priority": payload.work_priority,
313
309
  "story_points": payload.story_points,
314
310
  "assignee_id": payload.assignee_id,
@@ -901,16 +897,35 @@ def _format_work(item: Dict[str, Any], *, header: Optional[str] = None) -> str:
901
897
  if header:
902
898
  lines.append(header)
903
899
  lines.append("")
900
+
901
+ # Extract title
904
902
  title = item.get("title") or item.get("name") or "Sem título"
903
+
904
+ # Extract status
905
905
  status = item.get("status") or item.get("state") or "desconhecido"
906
+
907
+ # Extract priority
906
908
  priority = item.get("priority") or item.get("priority_level") or "indefinido"
909
+
910
+ # Extract ID
911
+ item_id = item.get("id", "N/A")
912
+
913
+ # Extract assignee - check both assignee_id and assignee object
914
+ assignee = item.get("assignee_id")
915
+ if not assignee and item.get("assignee"):
916
+ assignee = item.get("assignee", {}).get("name") or item.get("assignee", {}).get(
917
+ "id"
918
+ )
919
+ if not assignee:
920
+ assignee = "N/A"
921
+
907
922
  lines.extend(
908
923
  [
909
924
  f"🎯 **{title}**",
910
- f"ID: {item.get('id', 'N/A')}",
925
+ f"ID: {item_id}",
911
926
  f"Status: {status}",
912
927
  f"Prioridade: {priority}",
913
- f"Responsável: {item.get('assignee_id') or item.get('assignee', 'N/A')}",
928
+ f"Responsável: {assignee}",
914
929
  ]
915
930
  )
916
931
  if item.get("due_date") or item.get("dueDate"):
@@ -64,7 +64,7 @@ class KnowledgeService:
64
64
  # Work items
65
65
  # ------------------------------------------------------------------
66
66
  async def work_create(self, payload: Dict[str, Any]) -> Dict[str, Any]:
67
- return await self._call(self.api.create_work_item, _strip_none(payload))
67
+ return await self._call_dict(self.api.create_work_item, _strip_none(payload))
68
68
 
69
69
  async def work_list(self, **filters: Any) -> List[Dict[str, Any]]:
70
70
  return await self._call_list(self.api.list_work_items, **_strip_none(filters))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fenix-mcp
3
- Version: 0.5.10
3
+ Version: 0.5.12
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