Skip to main content
Glama

Przetargowy Janusz — Polish public tenders

Ustaw profil dopasowania firmy

set_matching_profile
DestructiveIdempotent

Changes the signed-in company's MATCHING PROFILE in Przetargowy Janusz — the same as Settings → Profil in the app: CPV codes (add or remove; take them from cpv_search), voivodeships, budget, and what the company does and does not do. This profile decides which tenders are matched to the company — its list (list_matched_tenders), the fit score ('Dopasowanie'), new-tender notifications and e-mails — for EVERY user of the company. It is set ONCE and then stays as it is; it changes for a concrete reason the user gives (e.g. the company started or stopped a line of business). After a change, newly matched tenders show up at once but without AI summaries and fit scores: the score follows within about an hour, the summaries come from a shared queue and can take several hours. Tenders outside the profile are found with search_tenders, without changing it. A change needs user_confirmed=true: the user has been told exactly what will change and what that means, and has confirmed it. Only the given fields change. At most 10 changes a day per company. Returns the profile before and after. Requires OAuth authentication and a trial or paid plan.

Input Schema

NameRequiredDescriptionDefault
doesNoWhat the company does, in its own words ('Co robimy' in the app) — replaces the current text; the fit score is computed from it
cpv_addNoCPV codes to add, from cpv_search, with or without the check digit: '79952000' or '79952000-2'
regionsNoVoivodeships to match (slug or name from list_facets) — replaces the current list; [] = the whole of Poland
does_notNoWhat the company does not do ('Czego nie robimy') — replaces the current text
budget_maxNoHighest estimated value (PLN) of matched tenders; null = no upper bound
budget_minNoLowest estimated value (PLN) of matched tenders; null = no lower bound
cpv_removeNoCPV codes to remove from the profile
user_confirmedYestrue when the user has been told exactly what will change and has confirmed it

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the destructiveHint/idempotentHint annotations: discloses company-wide blast radius ('for EVERY user of the company'), a hard rate limit (10 changes/day per company), a propagation timeline (score within ~1 hour, AI summaries several hours), and that 'only the given fields change'. It also states auth and plan requirements and that the tool returns before/after profiles.

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-loads what the tool does, then layers preconditions, side effects and limits; every sentence carries real information. It is dense and long-ish for one definition, but the length is justified by the number of non-obvious behaviors (delay, rate limit, company-wide scope) that an agent must know before calling.

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?

For a destructive 8-parameter mutation with no output schema, the description supplies everything an agent needs: prerequisites (OAuth, plan, user_confirmed), scope of effect, rate limits, post-change propagation, and return payload ('the profile before and after'). Nothing material is left to inference.

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 each parameter already documents its replacement vs. additive semantics, so the schema carries the burden. The description adds only marginal orientation — pointing at cpv_search as the source for CPV codes and restating the user_confirmed meaning already present in the schema — so the baseline 3 applies.

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?

Names a specific verb+resource ('Changes the signed-in company's MATCHING PROFILE') and enumerates the exact fields touched (CPV codes, voivodeships, budget, does/does-not). It also anchors the concept to a UI location ('Settings → Profil'), which removes ambiguity about which object is being mutated, and separates it from list_matched_tenders and search_tenders.

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?

Explicitly says the profile 'is set ONCE and then stays as it is' and that changes require 'a concrete reason the user gives', which steers the agent away from casual edits. It names the alternative for out-of-profile browsing ('Tenders outside the profile are found with search_tenders, without changing it') and states the user_confirmed=true precondition.

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