Skip to main content
Glama

get_global_gotchas

Retrieve lessons learned about libraries from past projects to avoid known pitfalls when working with unfamiliar libraries or starting new features.

Instructions

Query cross-project library gotchas from ~/.projectmem/global/.

Returns lessons learned in past projects that apply to the libraries
you're about to use. Call whenever working with an unfamiliar library
or starting a new feature.

Read-only. Reads from ~/.projectmem/global/ (cross-project memory,
not this repo's .projectmem/).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
libraryNoOptional library name to filter by (case-insensitive substring match — 'react' also matches 'react-router'). When omitted, returns all gotchas across every library — useful when starting a new feature to scan for any relevant past lessons.
projectNoWhich project this call is about — a registered id, alias, or absolute path (e.g. 'ossdrop'). Omit it when the server was started for a single repo, or when an active project is set with `pjm project use`. Call list_projects to see the registered names.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.3.2
    • addedInput schema / properties / project
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Which project this call is about — a registered id, alias, or absolute path (e.g. 'ossdrop'). Omit it when the server was started for a single repo, or when an active project is set with `pjm project use`. Call list_projects to see the registered names.",
      +  "title": "Project"
      +}
  2. Changed1 schema field changedv0.1.3
    • addedInput schema / properties / library / description
      Added value: +"Optional library name to filter by (case-insensitive substring match — 'react' also matches 'react-router'). When omitted, returns all gotchas across every library — useful when starting a new feature to scan for any relevant past lessons."
  3. First observedv0.1.1

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 full behavioral burden. It clearly states the operation is read-only, names the exact source location, and clarifies that it reads cross-project memory rather than the repo's own .projectmem/. This is solid transparency for a read-only query tool.

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?

Four short sentences front-load the main action and source, followed by usage guidance and safety context. There is minor redundancy between 'Read-only' and the subsequent 'Reads from' clause, but no wasteful filler.

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

Completeness5/5

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

The description covers what the tool does, when to call it, the source path, and the read-only safety property. Since an output schema exists and the parameter schemas are rich, nothing critical is missing for an agent to select and invoke this tool correctly.

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%, and both parameters already have detailed descriptions in the schema (case-insensitive substring match for library, project resolution for project). The tool description does not add parameter-specific semantics, so the baseline of 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?

The description names a specific verb ('Query') and a specific resource ('cross-project library gotchas' from ~/.projectmem/global/), and it explicitly contrasts with this repo's .projectmem/. The focus on library gotchas makes it clearly distinct from siblings like get_summary or get_project_map.

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?

Provides an explicit trigger: 'Call whenever working with an unfamiliar library or starting a new feature.' It does not, however, name sibling alternatives or provide when-not-to-use exclusions, so it falls slightly short of a perfect score.

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