Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from starlette.requests import Request
from starlette.responses import PlainTextResponse


def add_health_check(mcp):
"""Add a health check endpoint"""

@mcp.custom_route("/health", methods=["GET"])
async def health_check(request: Request) -> PlainTextResponse:
return PlainTextResponse("OK")
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from gg_api_core.scopes import set_developer_scopes
from gg_api_core.sentry_integration import init_sentry

from developer_mcp_server.add_health_check import add_health_check
from developer_mcp_server.register_tools import DEVELOPER_INSTRUCTIONS, register_developer_tools

# Configure more detailed logging
Expand All @@ -23,6 +24,8 @@
logger.info("Created Developer GitGuardianFastMCP instance")

register_developer_tools(mcp)
add_health_check(mcp)


set_developer_scopes()

Expand Down
47 changes: 21 additions & 26 deletions packages/gg_api_core/src/gg_api_core/tools/list_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,30 +81,25 @@ async def list_users(params: ListUsersParams) -> ListUsersResult:

logger.debug(f"Query parameters: {json.dumps(query_params)}")

try:
if params.get_all:
# Use paginate_all for fetching all results
members = await client.paginate_all("/members", query_params)
logger.debug(f"Retrieved all {len(members)} members using pagination")
return ListUsersResult(members=members, total_count=len(members), next_cursor=None)
if params.get_all:
# Use paginate_all for fetching all results
members = await client.paginate_all("/members", query_params)
logger.debug(f"Retrieved all {len(members)} members using pagination")
return ListUsersResult(members=members, total_count=len(members), next_cursor=None)
else:
# Single page request
result, headers = await client.list_members(params=query_params)

# Handle response format
if isinstance(result, dict):
members = result.get("results", result.get("data", []))
next_cursor = client._extract_next_cursor(headers) if headers else None
elif isinstance(result, list):
members = result
next_cursor = None
else:
# Single page request
result, headers = await client.list_members(params=query_params)

# Handle response format
if isinstance(result, dict):
members = result.get("results", result.get("data", []))
next_cursor = client._extract_next_cursor(headers) if headers else None
elif isinstance(result, list):
members = result
next_cursor = None
else:
logger.error(f"Unexpected result type: {type(result)}")
raise ToolError(f"Unexpected response format: {type(result).__name__}")

logger.debug(f"Found {len(members)} members")
return ListUsersResult(members=members, total_count=len(members), next_cursor=next_cursor)

except Exception as e:
logger.error(f"Error listing workspace members: {str(e)}")
raise ToolError(str(e))
logger.error(f"Unexpected result type: {type(result)}")
raise ToolError(f"Unexpected response format: {type(result).__name__}")

logger.debug(f"Found {len(members)} members")
return ListUsersResult(members=members, total_count=len(members), next_cursor=next_cursor)
2 changes: 2 additions & 0 deletions packages/secops_mcp_server/src/secops_mcp_server/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import os
from typing import Any, Literal

from developer_mcp_server.add_health_check import add_health_check
from developer_mcp_server.register_tools import register_developer_tools
from fastmcp.exceptions import ToolError
from gg_api_core.mcp_server import get_mcp_server
Expand Down Expand Up @@ -120,6 +121,7 @@ class ListHoneytokensParams(BaseModel):
logger.debug("Created SecOps GitGuardianFastMCP instance")

register_developer_tools(mcp)
add_health_check(mcp)


@mcp.tool(
Expand Down
Loading