Skip to main content
Glama

openphone

List calls

openphone_list_calls
Read-only

List calls between one of your OpenPhone numbers and a participant, newest first, optionally filtered by user and created date range. Returns direction, status, duration and timestamps. OpenPhone REST: GET /calls.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
userIdNoScope results to a user's access (a user id starting with 'US'). From openphone_list_users.
pageTokenNoPagination token from a previous response's nextPageToken.
maxResultsNoResults per page, 1-100. Default 10.
createdAfterNoOnly calls created after as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.
participantsYesA single participant phone number in E.164 format, e.g. '+15555555555' (required, exactly 1).
createdBeforeNoOnly calls created before as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.
phoneNumberIdYesAn OpenPhone phone-number id (starts with 'PN'). Get it from openphone_list_phone_numbers.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

With readOnlyHint=true already covering the safety profile, the description adds real behavioral context: default ordering is newest first, and the response reports direction, status, duration and timestamps. It omits pagination behavior despite the pageToken/maxResults parameters, which is the main remaining gap.

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?

Three compact sentences with zero filler: scope, return fields, and the REST endpoint. Critical scoping information is front-loaded, and nothing is repeated from structured fields.

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?

For a read-only list tool with a fully documented schema and no output schema, the description supplies the missing return-field information and ordering. Only pagination semantics (how to resume with pageToken) are left unstated, a minor gap given the schema documents pageToken's origin.

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 the schema already documents all seven parameters including formats and defaults, making 3 the baseline. The description reinforces the required phoneNumberId+participants pairing and the user/date-range filters but adds no syntax or constraint detail beyond what the schema states.

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 and resource ('List calls') plus the exact scope: calls between one of your OpenPhone numbers and a participant. It also gives ordering ('newest first') and filter dimensions, which cleanly distinguishes it from openphone_get_call (single call) and the other list_* siblings. An agent can identify it without opening the schema.

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 implicitly defines usage by stating the required shape of the query (between your number and a participant) and the optional filter axes (user, created date range), so the agent knows this is a scoped list operation, not a global one. It does not explicitly route to or away from openphone_get_call or openphone_get_call_transcript, so it stops short of full when/when-not guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.