nexus-5/core/mcp/tools/auth.py
2026-01-26 11:09:40 -05:00

58 lines
1.6 KiB
Python

"""Authentication tools for MCP."""
from core.mcp.auth import (
MCPContext,
set_active_profile as _set_active_profile,
)
from core.mcp.base import mcp, json_response, error_response
@mcp.tool()
async def set_active_profile(profile_id: str) -> str:
"""
Set the active profile for this MCP session. Must be called before using other tools.
Args:
profile_id: UUID of the team profile
Returns:
JSON object with profile info and role
"""
try:
profile = await _set_active_profile(profile_id)
return json_response({
"success": True,
"profile": {
"id": str(profile.id),
"name": f"{profile.first_name} {profile.last_name}".strip(),
"email": profile.email,
"role": profile.role
},
"message": f"Active profile set to {profile.first_name} ({profile.role})"
})
except PermissionError as e:
return error_response(str(e))
@mcp.tool()
async def get_my_profile() -> str:
"""
Get the current active profile's information.
Returns:
JSON object with profile details including role and contact info
"""
profile = MCPContext.get_profile()
if not profile:
return error_response("No active profile. Call set_active_profile first.")
return json_response({
"id": str(profile.id),
"first_name": profile.first_name,
"last_name": profile.last_name,
"email": profile.email,
"phone": profile.phone,
"role": profile.role,
"status": profile.status
})