Skip to main content
Glama
jamesbrink

MCP Server for Coroot

update_current_user

Modify profile details for the authenticated user in the Coroot observability platform.

Instructions

Update current user information.

Updates the profile of the currently authenticated user.

Args: user_data: Updated user information

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
user_dataYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Primary MCP tool handler for 'update_current_user'. Registered via @mcp.tool() decorator. Defines input schema via type hints (user_data: dict[str, Any]) and docstring. Delegates execution to the internal _impl function.
    @mcp.tool()
    async def update_current_user(user_data: dict[str, Any]) -> dict[str, Any]:
        """Update current user information.
    
        Updates the profile of the currently authenticated user.
    
        Args:
            user_data: Updated user information
        """
        return await update_current_user_impl(user_data)  # type: ignore[no-any-return]
  • Internal helper function that handles error wrapping and calls CorootClient.update_current_user, formatting the success response.
    async def update_current_user_impl(user_data: dict[str, Any]) -> dict[str, Any]:
        """Update current user."""
        result = await get_client().update_current_user(user_data)
        return {
            "success": True,
            "message": "User updated successfully",
            "user": result,
        }
  • CorootClient method implementing the core logic: HTTP POST to /api/user with user_data JSON body, returns the API response.
    async def update_current_user(self, user_data: dict[str, Any]) -> dict[str, Any]:
        """Update current user information.
    
        Args:
            user_data: User data to update. For password change:
                      {"old_password": "current", "new_password": "new"}
    
        Returns:
            Updated user information.
        """
        response = await self._request(
            "POST",
            "/api/user",
            json=user_data,
        )
        data: dict[str, Any] = response.json()
        return data
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states this is an update operation but doesn't disclose behavioral traits like required permissions, whether changes are reversible, rate limits, or what the response contains. 'Update current user information' implies mutation but lacks crucial context for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with three sentences: a title, elaboration, and parameter note. It's front-loaded with the core purpose. However, the 'Args:' section is redundant since it repeats the parameter name without adding value beyond the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation with nested objects), no annotations, and an output schema (which reduces need to describe returns), the description is incomplete. It covers the basic purpose but misses usage guidelines, parameter details, and behavioral context, making it minimally adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only mentions 'user_data: Updated user information' without explaining what fields can be updated, their formats, or constraints. With 1 parameter and nested objects, this minimal information doesn't compensate for the schema's lack of descriptions, leaving the agent guessing about valid input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Update current user information' and 'Updates the profile of the currently authenticated user.' This specifies the verb (update) and resource (current user profile). However, it doesn't explicitly differentiate from sibling tools like 'update_sso_config' or 'create_user' beyond the 'current user' scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), exclusions, or compare it to sibling tools like 'create_user' or 'update_sso_config'. Usage is implied by the name but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jamesbrink/mcp-coroot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server