Skip to content

Commit 32077cd

Browse files
Move lookup_group to core tier
lookup_group is the simplest path from a group email to a resource name needed by other tools — it belongs in the default tool set. Made-with: Cursor
1 parent 9dc4620 commit 32077cd

3 files changed

Lines changed: 43 additions & 43 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1056,9 +1056,9 @@ Saved files expire after 1 hour and are cleaned up automatically.
10561056
| `get_group` | **Core** | Retrieve group details |
10571057
| `list_group_members` | **Core** | List members of a group |
10581058
| `manage_group` | **Core** | Create, update, or delete groups |
1059+
| `lookup_group` | **Core** | Look up group resource name by email |
10591060
| `manage_group_members` | Extended | Add, remove, or modify member roles |
10601061
| `list_groups` | Complete | List all groups under a customer |
1061-
| `lookup_group` | Complete | Look up group resource name by email |
10621062

10631063
</td>
10641064
</tr>

core/tool_tiers.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,11 @@ groups:
150150
- get_group
151151
- list_group_members
152152
- manage_group
153+
- lookup_group
153154
extended:
154155
- manage_group_members
155156
complete:
156157
- list_groups
157-
- lookup_group
158158

159159
search:
160160
core:

ggroups/groups_tools.py

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,47 @@ async def manage_group(
373373
return f"Group {group_id} has been deleted."
374374

375375

376+
@server.tool()
377+
@require_google_service("cloudidentity", "groups_read")
378+
@handle_http_errors("lookup_group", service_type="cloudidentity")
379+
async def lookup_group(
380+
service: Resource,
381+
user_google_email: str,
382+
group_email: str,
383+
) -> str:
384+
"""
385+
Look up the resource name of a group by its email address.
386+
387+
Args:
388+
user_google_email (str): The user's Google email address. Required.
389+
group_email (str): The group's email address to look up.
390+
391+
Returns:
392+
str: The group's resource name and key information.
393+
"""
394+
logger.info(
395+
f"[lookup_group] Invoked. Email: '{user_google_email}', "
396+
f"Group email: '{group_email}'"
397+
)
398+
399+
result = await asyncio.to_thread(
400+
service.groups()
401+
.lookup(groupKey_id=group_email)
402+
.execute
403+
)
404+
405+
resource_name = result.get("name", "Unknown")
406+
group_id = resource_name.replace("groups/", "")
407+
408+
response = f"Group Lookup Result:\n\n"
409+
response += f"Email: {group_email}\n"
410+
response += f"Resource Name: {resource_name}\n"
411+
response += f"Group ID: {group_id}\n"
412+
413+
logger.info(f"Looked up group {group_email} -> {resource_name}")
414+
return response
415+
416+
376417
# =============================================================================
377418
# Extended Tier Tools
378419
# =============================================================================
@@ -563,44 +604,3 @@ async def list_groups(
563604

564605
logger.info(f"Found {len(groups)} groups under {parent} for {user_google_email}")
565606
return response
566-
567-
568-
@server.tool()
569-
@require_google_service("cloudidentity", "groups_read")
570-
@handle_http_errors("lookup_group", service_type="cloudidentity")
571-
async def lookup_group(
572-
service: Resource,
573-
user_google_email: str,
574-
group_email: str,
575-
) -> str:
576-
"""
577-
Look up the resource name of a group by its email address.
578-
579-
Args:
580-
user_google_email (str): The user's Google email address. Required.
581-
group_email (str): The group's email address to look up.
582-
583-
Returns:
584-
str: The group's resource name and key information.
585-
"""
586-
logger.info(
587-
f"[lookup_group] Invoked. Email: '{user_google_email}', "
588-
f"Group email: '{group_email}'"
589-
)
590-
591-
result = await asyncio.to_thread(
592-
service.groups()
593-
.lookup(groupKey_id=group_email)
594-
.execute
595-
)
596-
597-
resource_name = result.get("name", "Unknown")
598-
group_id = resource_name.replace("groups/", "")
599-
600-
response = f"Group Lookup Result:\n\n"
601-
response += f"Email: {group_email}\n"
602-
response += f"Resource Name: {resource_name}\n"
603-
response += f"Group ID: {group_id}\n"
604-
605-
logger.info(f"Looked up group {group_email} -> {resource_name}")
606-
return response

0 commit comments

Comments
 (0)