Skip to main content
Glama

markRelated

Idempotent

Mark a Jam as related to another Jam of the same team, with a type read from the first Jam: it fixes the target, proves it, or relates_to it (the default). Teams with links on the share page show it on both Jams; the target shows the inverse ("fixed by", "proven by"). Marking again with the same type changes nothing. Returns the relation. When you record a Jam that proves a fix, mark it as fixes or proves of the bug Jam. Use it to connect a set of Jams of one flow, such as one Jam per UI state. Needs the permission that edits a Jam's title.

Input Schema

NameRequiredDescriptionDefault
typeNoHow the first Jam relates to the target. Default relates_to
jamIdYesJam identifier — a UUID or a jam.dev URL
intentNoIn 15-30 English words, your larger task and why this call helps it. People by role ("a customer"); no argument values or secrets.
llm_modelNoYour exact model id from your system prompt, or "unknown". Never guess.
targetJamIdYesThe Jam to relate to: a Jam ID or a Jam URL, in the same team

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / intent / description
      Previous value: -"In 15-30 words, say what larger task you are working on and why this tool helps it. Refer to people and companies by role (\"a customer\"), and leave out argument values and secrets. Use English. Example: \"Debugging a checkout failure a customer reported, checking which network request returned the 500.\""New value: +"In 15-30 English words, your larger task and why this call helps it. People by role (\"a customer\"); no argument values or secrets."
    • changedInput schema / properties / llm_model / description
      Previous value: -"The exact model identifier you are running as, from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Pass \"unknown\" if you are not certain; never guess."New value: +"Your exact model id from your system prompt, or \"unknown\". Never guess."
  2. First observed

TDQS

A4.1/5.0
Behavior3/5

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

The description adds substantial behavior beyond the annotations: both Jams display the link, the target shows an inverse label, re-marking with the same type is a no-op, it returns the relation, and it requires a permission level that ranks with editing a Jam's title. However, the idempotency claim substantially overlaps idempotentHint and the destructiveHint=false write behavior is only implied, so the incremental value is solid but not exceptional.

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?

Front-loaded purpose clause followed by type semantics, side effects, usage examples, and permission requirements - every sentence contributes. Some sentences are long and pack multiple facts, but nothing is 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?

Covers the enum behavior, side effects on both Jams, idempotency, permission prerequisite, and return value, so an agent has what it needs to call it correctly despite no output schema. Only the absence of explicit guidance for the reverse operation (markUnrelated) leaves a small gap.

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?

Schema description coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains what fixes, proves, and relates_to actually signify and confirms both Jams must belong to the same team. The intent and llm_model params remain unexplained, which is fine given their schema text.

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 ('Mark a Jam as related to another Jam of the same team') and then defines the three relation types, their meanings, and the default. An agent can distinguish this from markUnrelated or updateJam from the description 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?

Gives concrete when-to-use guidance: record a Jam that proves a fix, or connect a set of Jams covering one flow such as one Jam per UI state. It does not explicitly name markUnrelated as the alternative for disconnecting, so routing guidance is strong but not exhaustive.

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.