Skip to main content
Glama
benmonopoli

Greenhouse MCP

by benmonopoli

list_offices

Fetch all offices to map location names to IDs, enabling job creation, job listing, and future job permission setup.

Instructions

List all offices. Read-only.

Resolves office/location names to IDs. When a user mentions an office or location, use this to find its ID for list_jobs, create_job, or add_future_job_permission. Each office has a flat location string, parent_id, and primary_in_house_contact_user_id.

Input Schema

NameRequiredDescriptionDefault
cursorNoPass next_cursor from the previous response to get the next page
paginateNo'single' for one page, 'all' to auto-fetch every pagesingle
per_pageNoResults per page (max 500)
parent_idNoOnly offices directly under this parent office
force_refreshNoBypass cache and fetch fresh data

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.5.0
    • addedInput schema / properties / cursor
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Pass next_cursor from the previous response to get the next page",
      +  "title": "Cursor"
      +}
    • addedInput schema / properties / force_refresh / description
      Added value: +"Bypass cache and fetch fresh data"
    • removedInput schema / properties / page
      Removed value: -{
      -  "default": 1,
      -  "title": "Page",
      -  "type": "integer"
      -}
    • addedInput schema / properties / paginate / description
      Added value: +"'single' for one page, 'all' to auto-fetch every page"
    • addedInput schema / properties / parent_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Only offices directly under this parent office",
      +  "title": "Parent Id"
      +}
    • addedInput schema / properties / per_page / description
      Added value: +"Results per page (max 500)"
  2. Addedv0.3.4

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the safety burden itself and does so by declaring 'Read-only' explicitly. It also discloses the shape of each returned record (flat `location`, `parent_id`, `primary_in_house_contact_user_id`), which is useful behavioral context beyond the parameters.

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?

Extremely tight: purpose, safety, usage trigger, and return shape in three short sentences with zero filler. The most actionable line (the name-to-ID resolution and its consumers) is front-loaded.

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

Completeness4/5

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

An output schema exists, so return values need not be spelled out, and read-only status plus usage context are covered. The only omission is any hint about paging behavior defaults (per_page 500, paginate='single') for large office lists, which the schema mostly handles anyway.

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

Parameters3/5

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

Schema description coverage is 100%, so cursor, paginate, per_page, parent_id, and force_refresh are all documented in the schema. The description adds no parameter-level detail (e.g., that parent_id scopes the listing or that force_refresh bypasses cache), so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource ('List all offices') and immediately adds the functional purpose: resolving office/location names to IDs. That distinction separates it from get_office, create_office, update_office, and list_board_offices in the sibling set.

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?

Gives a concrete trigger ('When a user mentions an office or location') and names the downstream tools that consume the resulting ID (list_jobs, create_job, add_future_job_permission). It does not state when *not* to use it or point to get_office when the ID is already known, so it falls short of a full 5.

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

Deploy Server

Other Tools