Skip to main content
Glama
ponisha-mcp

ponisha-mcp

by Kia-Karami

ponisha_submit_bid

Submit a bid or proposal to a Ponisha project, with amount, delivery days, and proposal text; avoids projects where the employer already hired a freelancer.

Instructions

Submit a bid (proposal) on a project. Refuses projects where the employer already chose a freelancer. This is visible to the employer and costs credits: each project sets its own price (coin_needed from ponisha_get_project; it grows with budget, e.g. 1, 2 or 5; a promoted bid costs promoted_coin_needed, about 10x). Tell the user the cost before submitting. With too few credits Ponisha rejects it (406). confirm amount, days and text with the user first. Amounts are in TOMAN (as shown on ponisha.ir), between 100,000 and 1,000,000,000. Milestones (payments) must sum exactly to the total amount; if omitted, one milestone for the full amount is used.

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": {
      "project_id": "<project_id>",
      "amount": "<amount>",
      "days": "<days>",
      "description": "<description>"
    },
    "name": "ponisha_submit_bid"
  }
}

Input Schema

NameRequiredDescriptionDefault
daysYesDelivery time in days (1-180)
amountYesTotal price in Toman, e.g. 5000000 for 5 million Toman
paymentsNo
project_idYes
descriptionYesProposal text shown to the employer (no contact info allowed)
is_promotedNoPaid promotion of the bid
allow_if_hiredNoBid even if the employer already chose someone. Only if the user explicitly asks for it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4/5.0
Behavior4/5

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

Goes well beyond the annotations (readOnly=false, destructive=false, openWorld=true) by disclosing that the bid is visible to the employer, that submission costs credits priced per project, that a promoted bid costs roughly 10x, and that insufficient credits trigger a rejection (406). What it doesn't cover is the success response shape (no output schema) or whether a bid can be withdrawn after spending credits.

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 the action, then the refusal condition, then the cost/credit consequences, then the user-confirmation mandate — a sensible order for an agent reading top-down. It is dense but almost every clause carries an operational rule; the amount-range restatement is the main redundancy against the schema.

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 cost-incurring, employer-visible write with 7 parameters, the description supplies nearly everything needed to call it safely: price discovery path, credit-failure mode, promotion multiplier, unit, and milestone invariants. The only notable absence is what a successful call returns, which matters here since no output schema exists.

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?

Beyond the 71%-covered schema it adds real meaning: the milestone-total constraint (payments must sum exactly to amount, else a single full-amount milestone is created) is a validation rule not expressible in the schema, and it clarifies cost fields (coin_needed, promoted_coin_needed) by reference to ponisha_get_project. The TOMAN range restatement largely duplicates the schema's min/max.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a precise verb+resource pair: "Submit a bid (proposal) on a project," which makes it distinguishable from ponisha_get_bid / ponisha_my_bids on name and verb alone. It does not explicitly contrast with ponisha_update_bid, which is the one sibling an agent might reasonably confuse it with.

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 unusually concrete pre-call guidance: tell the user the cost first, confirm amount/days/text with the user, and only use allow_if_hired when the user explicitly asks. It also states a blocking condition (employer already hired a freelancer). It stops short of naming alternatives such as updating an existing bid.

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