Skip to main content
Glama

Plan pe buget

plan_budget
Read-onlyIdempotent

Răspunde la „am 500 de lei, unde pot publica 5 articole?" și „site-ul example.ro, unde mă promovez cu 1.000 de lei?". Alege din tot catalogul, după nișă și subiect, și întoarce pachetele Mix recomandat, Premium și Economic, cu totalul cu și fără TVA. Fiecare publicație are potrivire: subiect (chiar în nume), zonă (publicație locală), nișă (specializată), rubrică (site general cu o rubrică pe tema asta), apropiată sau generală. linkPolicy apare doar când linkul nu e dofollow, deci nu transmite autoritate SEO. refuzaTextAi: publicația primește doar text rescris de un om. Lista exclude din răspuns, trimisă la un apel nou, dă alte publicații. Implicit folosește SEO și linkuri dofollow. Merge fără cont.

Use when the user gives a budget, a number of articles or a website to promote and wants to know where to publish. Do not use when the user names a specific site (use get_site) or just browses (use search_catalog).

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": {
      "bugetLei": "<bugetLei>"
    },
    "name": "plan_budget"
  }
}

Input Schema

NameRequiredDescriptionDefault
zonaNoOrașul sau județul, dacă omul vrea vizibilitate locală: Brașov, Maramureș
minDaNoDA minim cerut de om
minDrNoDR minim cerut de om
nicheNoSlug sau nume de nișă (ex. sanatate, business). Are întâietate față de site
cuvinteNoSubiectul, cu variante, fără orașe: ["stomatologie","dentar","dentist"]. Publicațiile cu ele în nume au prioritate
excludeNoDomenii de ocolit: lista `exclude` din răspunsul anterior, sau ce nu vrea omul
websiteNoSite-ul promovat (ex. example.ro); din el se deduce nișa
alteNiseNoNișe apropiate, când subiectul stă între două
articoleNoCâte articole. Lipsă: Mix și Premium cât încape, cel mult 15, Economic cel mult 20
bugetLeiYesBugetul, în lei
campaignNoTipul de campanie. Implicit SEO
doarMariNoDoar publicații mari (DR și DA de cel puțin 40), la cererea omului
languageNoLimba publicațiilor. Implicit ro
bugetCuTvaNoBugetul include TVA. Implicit da
doarDofollowNoDoar linkuri dofollow. Implicit da la SEO

Output Schema

NameRequiredDescriptionDefault
atentieNostring. Warning to tell the user, if any.
excludeNoarray of string. Send back as `exclude` to get different publications.
pacheteNoarray. Packages (recommended mix, premium, economy), each with publications, total with and without VAT.
posibilNoboolean. False when the budget is too small for any publication.
rezumatNostring. One-line summary to show the user.
deRetinutNoarray of string. Conditions to tell the user.
articoleMaximeNonumber. Most articles the budget allows.
cotaTvaProcenteNonumber. VAT rate used for totals.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": {},
      +  "properties": {
      +    "articoleMaxime": {
      +      "description": "number. Most articles the budget allows."
      +    },
      +    "atentie": {
      +      "description": "string. Warning to tell the user, if any."
      +    },
      +    "cotaTvaProcente": {
      +      "description": "number. VAT rate used for totals."
      +    },
      +    "deRetinut": {
      +      "description": "array of string. Conditions to tell the user."
      +    },
      +    "exclude": {
      +      "description": "array of string. Send back as `exclude` to get different publications."
      +    },
      +    "pachete": {
      +      "description": "array. Packages (recommended mix, premium, economy), each with publications, total with and without VAT."
      +    },
      +    "posibil": {
      +      "description": "boolean. False when the budget is too small for any publication."
      +    },
      +    "rezumat": {
      +      "description": "string. One-line summary to show the user."
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  3. Changed1 schema field changed
    • changedInput schema / properties / niche / description
      Previous value: -"Slug sau nume din list_niches. Are întâietate față de site"New value: +"Slug sau nume de nișă (ex. sanatate, business). Are întâietate față de site"
  4. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, and the description adds genuine context on top: it works without an account, defaults to SEO and dofollow links, explains that linkPolicy appears only for non-dofollow links, that refuzaTextAi means human-rewritten text only, and that a new call with the returned exclude list yields different publications. That is behavior an agent cannot infer from the annotations.

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 the user questions, then response contents, then routing guidance — well ordered. The enumeration of potrivire values is long but it is load-bearing for interpreting the output; only that sentence is verbose.

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 15-parameter planning tool with an output schema and full annotations, the description covers trigger conditions, defaults, auth requirements, and response semantics. The remaining gap is minor: nothing is said about what happens when the budget cannot fill any package.

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 coverage is 100%, so the baseline is 3; the description still adds real meaning by clarifying the cross-call use of exclude (feed the previous response's list back in to get different publications) and the defaults for campaign and dofollow. It does not, however, add anything about bugetCuTva, doarMari, or the numeric bounds.

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?

It gives a specific verb + resource (plan a budget → choose publications from the whole catalog) and anchors it with two concrete user questions ('am 500 de lei, unde pot publica 5 articole?'). It also states what comes back (Mix recomandat, Premium, Economic with totals with/without VAT), which clearly distinguishes it from search_catalog and get_site.

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?

The 'Use when' paragraph states the trigger conditions (user gives a budget, an article count, or a website to promote) and explicitly names the exclusions with the sibling to use instead: get_site when a specific site is named, search_catalog for browsing. This is exactly the when/when-not/alternative triad.

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.