Skip to main content
Glama

archive_reason_list

Retrieve available archive reasons to properly move candidate applications to the Archived stage in the hiring pipeline.

Instructions

List all archive reasons (needed for application_change_stage to Archived).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The `handle_call_tool` function serves as the central handler for all registered MCP tools. It uses the `TOOL_ENDPOINT_MAP` to map the tool name "archive_reason_list" to the Ashby API endpoint "/archiveReason.list" and executes the request via the `AshbyClient`.
    @server.call_tool()
    async def handle_call_tool(name: str, arguments: dict[str, Any]) -> list[types.TextContent]:
        """Route tool calls to the correct Ashby endpoint, passing arguments directly."""
        endpoint = TOOL_ENDPOINT_MAP.get(name)
        if not endpoint:
            return [types.TextContent(type="text", text=f"Unknown tool: {name}")]
    
        try:
            # Pass arguments straight through -- tool schemas already use Ashby's
            # camelCase param names so no translation is needed.
            response = ashby.post(endpoint, data=arguments if arguments else None)
            return [types.TextContent(type="text", text=json.dumps(response, indent=2))]
        except requests.exceptions.HTTPError as e:
            error_body = ""
            if e.response is not None:
                try:
                    error_body = e.response.text
                except Exception:
                    pass
            return [
                types.TextContent(
                    type="text",
                    text=f"Ashby API error on {endpoint}: {e}\n{error_body}",
                )
            ]
        except Exception as e:
            return [types.TextContent(type="text", text=f"Error calling {endpoint}: {e}")]
  • Tool definition for "archive_reason_list" including its description and empty input schema.
        name="archive_reason_list",
        description="List all archive reasons (needed for application_change_stage to Archived).",
        inputSchema={
            "type": "object",
            "properties": {},
        },
    ),
  • Registration mapping from the tool name "archive_reason_list" to the API endpoint path.
    "archive_reason_list": "/archiveReason.list",
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool lists reasons and its purpose for archiving, but doesn't add details like whether it's read-only, requires permissions, has rate limits, or what the return format is. It provides basic context but lacks rich behavioral traits beyond the minimal purpose.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose and usage context without any waste. It's front-loaded with the core action and provides necessary additional info concisely.

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 has 0 parameters, no annotations, and no output schema, the description is minimal but adequate for a simple list tool. It explains what the tool does and why it's used, but lacks details on output format or behavioral constraints. For its low complexity, it's complete enough but with clear gaps in transparency.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter info, which is appropriate. Baseline is 4 for 0 parameters, as the schema fully covers the absence of inputs.

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 as 'List all archive reasons' with a specific verb and resource. It distinguishes from siblings by mentioning its relationship to 'application_change_stage to Archived', though it doesn't explicitly differentiate from other list tools like 'department_list' or 'source_list'. This is clear but lacks explicit sibling differentiation.

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

Usage Guidelines4/5

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

The description provides clear context for usage by stating it's 'needed for application_change_stage to Archived', which implies when to use this tool. However, it doesn't explicitly state when not to use it or name alternatives, such as whether other tools might list reasons for different purposes. This offers good guidance but not full alternatives.

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/PlenishAI/mcp-ashby'

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