Skip to main content
Glama

Coda Search Principals

coda_search_principals
Read-onlyIdempotent

Search for users and groups to add to a Coda doc's permissions by name or email prefix, returning matching principals before granting access.

Instructions

Search for users and groups that can be added to a doc's permissions.

Returns matching principals (users and groups) based on the query string. Use this to look up a user's email or find groups before calling coda_add_permission. Results include the principal's type, email, and name.

Input Schema

NameRequiredDescriptionDefault
queryYesSearch query (name or email prefix)
doc_idYesThe doc ID to search principals in

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.12.1
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "type": "object",
      -  "x-fastmcp-wrap-result": true
      -}New value: +null
  2. First observedv0.4.14

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint), so the bar is lower; the description adds value by disclosing the return payload ('type, email, and name') in the absence of an output schema. It stops short of mentioning pagination, result limits, or matching semantics.

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?

Three short sentences, front-loaded with the core action and followed by return content and the recommended next call. Slight redundancy between 'users and groups' and '(users and groups)', but no wasted filler.

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 2-parameter read tool with no output schema, the description supplies the missing return-field context and the downstream dependency (coda_add_permission). Only result-count/pagination behavior is unaddressed.

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 both parameters (query, doc_id) are already documented. The description restates 'query string' and the doc scope without adding format or matching-behavior detail, so baseline 3 is appropriate.

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 (search) and resource (users and groups that can be added to a doc's permissions), which cleanly separates it from siblings like coda_list_permissions and coda_get_sharing_metadata that read existing state. An agent can identify the tool's job from the first sentence alone.

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?

Explicitly names the downstream use case ('before calling coda_add_permission') and the lookup scenarios (user's email, groups). It gives clear when-to-use guidance but does not state when-not to use it (e.g., use coda_list_permissions to view current grants).

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