fenix-mcp 0.5.8__tar.gz → 0.5.9__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.8 → fenix_mcp-0.5.9}/PKG-INFO +1 -1
  2. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/__init__.py +1 -1
  3. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/tools/intelligence.py +35 -2
  4. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp.egg-info/PKG-INFO +1 -1
  5. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/README.md +0 -0
  6. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/presenters.py +0 -0
  7. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/tool_base.py +0 -0
  8. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/tool_registry.py +0 -0
  9. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/tools/__init__.py +0 -0
  10. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/tools/health.py +0 -0
  11. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/tools/initialize.py +0 -0
  12. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/tools/knowledge.py +0 -0
  13. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/tools/productivity.py +0 -0
  14. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/application/tools/user_config.py +0 -0
  15. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/domain/initialization.py +0 -0
  16. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/domain/intelligence.py +0 -0
  17. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/domain/knowledge.py +0 -0
  18. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/domain/productivity.py +0 -0
  19. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/domain/user_config.py +0 -0
  20. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/infrastructure/config.py +0 -0
  21. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/infrastructure/context.py +0 -0
  22. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/infrastructure/fenix_api/client.py +0 -0
  23. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/infrastructure/http_client.py +0 -0
  24. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/infrastructure/logging.py +0 -0
  25. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/interface/mcp_server.py +0 -0
  26. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/interface/transports.py +0 -0
  27. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp/main.py +0 -0
  28. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp.egg-info/SOURCES.txt +0 -0
  29. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp.egg-info/dependency_links.txt +0 -0
  30. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp.egg-info/entry_points.txt +0 -0
  31. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp.egg-info/requires.txt +0 -0
  32. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/fenix_mcp.egg-info/top_level.txt +0 -0
  33. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/pyproject.toml +0 -0
  34. {fenix_mcp-0.5.8 → fenix_mcp-0.5.9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fenix-mcp
3
- Version: 0.5.8
3
+ Version: 0.5.9
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.8"
11
+ __version__ = "0.5.9"
@@ -6,7 +6,7 @@ from __future__ import annotations
6
6
  from enum import Enum
7
7
  from typing import Any, Dict, List, Optional
8
8
 
9
- from pydantic import Field
9
+ from pydantic import Field, field_validator
10
10
 
11
11
  from fenix_mcp.application.presenters import text
12
12
  from fenix_mcp.application.tool_base import Tool, ToolRequest
@@ -83,7 +83,40 @@ class IntelligenceRequest(ToolRequest):
83
83
  default=False,
84
84
  description="Retornar metadata completa das memórias? Defina true para incluir o campo bruto.",
85
85
  )
86
- tags: Optional[List[str]] = Field(default=None, description="Tags da memória.")
86
+ tags: Optional[List[str]] = Field(
87
+ default=None,
88
+ description="Tags da memória como array JSON de strings.",
89
+ json_schema_extra={"example": ["tag1", "tag2", "tag3"]},
90
+ )
91
+
92
+ @field_validator("tags", mode="before")
93
+ @classmethod
94
+ def validate_tags(cls, v: Any) -> Optional[List[str]]:
95
+ """Validate and normalize tags field."""
96
+ if v is None or v == "":
97
+ return None
98
+
99
+ # If it's already a list, return as is
100
+ if isinstance(v, (list, tuple, set)):
101
+ return [str(item).strip() for item in v if str(item).strip()]
102
+
103
+ # If it's a string, try to parse as JSON
104
+ if isinstance(v, str):
105
+ try:
106
+ import json
107
+
108
+ parsed = json.loads(v)
109
+ if isinstance(parsed, list):
110
+ return [str(item).strip() for item in parsed if str(item).strip()]
111
+ except (json.JSONDecodeError, TypeError):
112
+ pass
113
+
114
+ # If JSON parsing fails, treat as comma-separated string
115
+ return [item.strip() for item in v.split(",") if item.strip()]
116
+
117
+ # For any other type, convert to string and wrap in list
118
+ return [str(v).strip()] if str(v).strip() else None
119
+
87
120
  limit: int = Field(default=20, ge=1, le=100, description="Limite de resultados.")
88
121
  offset: int = Field(default=0, ge=0, description="Offset para paginação.")
89
122
  query: Optional[str] = Field(default=None, description="Termo de busca.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fenix-mcp
3
- Version: 0.5.8
3
+ Version: 0.5.9
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