Skip to main content
Glama

Joeb

Block companies

block_companies
Idempotent

Block the companies behind jobs, so search leaves their postings out: each job named blocks the company that posted it.

Takes 1 to 25 jobs. Name each by its id as a row shows it (its first 12 characters), by any unique prefix of 8 or more characters, or by its full id. A posting link is not an id here: get_jobs looks one up. A company is matched exactly as its postings name it on their job board, so the same employer posting on another board is a separate company this doesn't block. Jobs at one company block it once, and blocking a company already blocked leaves its block as it was.

Every posting from a blocked company, now or later, is left out of search_jobs. Jobs the user already liked, dismissed or applied to keep their state, and stay on their saved lists. list_blocked_companies lists the blocks; unblock_companies lifts them.

All or nothing: every id is checked before anything is blocked. If any id names no job, matches several jobs, or isn't a job id, nothing is blocked and the error names each bad id, listing a longer id for every job an ambiguous one matches.

Returns each company this call blocked, with its block id, and each that was already blocked before it, with that block's id.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "job_ids": "<job_ids>"
    },
    "name": "block_companies"
  }
}

Input Schema

NameRequiredDescriptionDefault
job_idsYesJobs whose companies to block, 1 to 25: each blocks the company that posted it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Goes well past the annotations: all-or-nothing validation semantics, the exact ambiguity error behavior, what survives (liked/dismissed/applied state, saved lists), the per-board company matching nuance, and the return payload shape including pre-existing blocks. Idempotency is stated in behavior terms rather than just repeating idempotentHint.

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 with purpose and effect, then validation, then side effects, then return value — a sensible ordering with no filler. It is on the long side for one parameter and the company-matching caveat is dense, but nearly every sentence carries decision-relevant information.

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?

No output schema exists, yet the description explains the return value (blocked companies with block ids, plus already-blocked ones with their ids). Combined with error semantics and side effects, an agent has everything needed to call this and interpret the result.

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

Parameters5/5

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

Schema already documents the single parameter at 100% coverage, but the description adds substantial meaning the schema lacks: accepted id forms (first-12-char prefix, 8+ char unique prefix, full id), the 1-25 bound, and that duplicate companies collapse to a single block.

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?

Opens with a specific verb and resource ("Block the companies behind jobs") plus the downstream effect ("search leaves their postings out"), and the phrase "each job named blocks the company that posted it" disambiguates the unit of operation. Clearly separable from list_blocked_companies and unblock_companies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the effect and points elsewhere where relevant: "A posting link is not an id here: get_jobs looks one up," and names list_blocked_companies and unblock_companies as the management counterparts. It also implicitly scopes use to job ids as "a row shows it."

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.

Resources