formatters.py•1.38 kB
"""Output formatting utilities for MCP responses."""
from typing import Any
def format_entity_response(entity: dict[str, Any]) -> str:
"""
Format an entity object for display.
Args:
entity: Entity dictionary from API response
Returns:
Formatted string representation
"""
lines = [
f"Entity ID: {entity.get('id', 'N/A')}",
f"Name: {entity.get('name', 'N/A')}",
f"Type: {entity.get('entity_type', 'N/A')}",
f"Tax Code: {entity.get('tax_code', 'N/A')}",
f"Status: {entity.get('status', 'N/A')}",
]
if entity.get("address"):
lines.append(f"Address: {entity['address']}")
if entity.get("phone"):
lines.append(f"Phone: {entity['phone']}")
return "\n".join(lines)
def format_list_response(items: list[dict[str, Any]], total: int, page: int) -> str:
"""
Format a paginated list response.
Args:
items: List of items from API response
total: Total number of items
page: Current page number
Returns:
Formatted string representation
"""
if not items:
return "No items found."
lines = [f"Total items: {total}", f"Current page: {page}", ""]
for idx, item in enumerate(items, 1):
lines.append(f"{idx}. ID: {item.get('id', 'N/A')} - {item.get('name', 'Unnamed')}")
return "\n".join(lines)