Skip to main content
Glama
ponisha-mcp

ponisha-mcp

by Kia-Karami

ponisha_update_portfolio

Update a portfolio item by submitting only changed fields; current details remain, while contents must include all items to keep. Show the change and get approval before saving.

Instructions

Edit one of your portfolio items. Pass only what changes; everything else is kept from the current item. contents replaces the whole list, so include the items to keep (see ponisha_get_portfolio for their file ids). Older items may have no role or service type; then pass role and skill_category_id too. Ponisha may review the item again after an edit. Show the user the change and get approval first.

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": {
      "portfolio_id": "<portfolio_id>"
    },
    "name": "ponisha_update_portfolio"
  }
}

Input Schema

NameRequiredDescriptionDefault
roleNoYour role in the project, e.g. «طراح رابط کاربری»; at least 3 characters
tagsNo1–5 tag titles (see ponisha_search_portfolio_tags)
titleNo3–60 characters
skillsNo1–5 skill ids from ponisha_list_skills
contentsNoItems shown in order (images, files, links, text)
durationNo
descriptionNoWhat the project was and what you did
portfolio_idYes
duration_unitNo
maximum_priceNoToman
minimum_priceNoToman; give with maximum_price
preview_imageNoOr: file id of a portfolio_preview upload for the cover
cover_image_pathNoLocal jpg/png for the cover; uploaded for you (up to 5 MB)
skill_category_idNoService type id from ponisha_list_service_types
related_project_idNoA Ponisha project of yours this work came from

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (which only say it is a non-read-only, non-destructive, open-world mutation), the description discloses the most important behavioral trait: partial-update semantics where omitted fields are preserved. It further warns that contents is replace-all rather than merge, that the platform may re-review the item after an edit, and that the agent must show the user the change and get approval before calling — none of which the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short sentences, front-loaded with the action and the partial-update rule, then escalating to the riskier details (replace semantics, re-review, user approval). For a 15-parameter mutation tool, every sentence carries distinct operational information with no 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 hard parts of a 15-param mutation: update semantics, replace-all behavior, legacy-item requirements, review risk, and approval gating. It does not say what the call returns or how validation failures surface, but with no output schema and rich per-parameter descriptions the remaining gap is modest.

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?

With 80% schema coverage the baseline is 3, and the description earns above that by explaining the merge/replace distinction for contents and by cross-referencing ponisha_get_portfolio for existing file ids. It also explains the conditional need for role and skill_category_id on legacy items, which the schema does not express. Other parameters (prices, duration, cover image) are left to the schema.

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?

"Edit one of your portfolio items" gives a specific verb (edit), a specific resource (portfolio item), and an ownership scope (yours), which cleanly separates it from ponisha_create_portfolio, ponisha_delete_portfolio, and ponisha_get_portfolio without requiring the schema to be opened.

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?

It states the core usage contract clearly: pass only what changes, everything else is preserved, and pre-read via ponisha_get_portfolio when file ids are needed. It also flags the fallback case where older items lack role or service type so those must be supplied. It stops short of explicitly naming sibling alternatives (e.g. create vs update), but the routing is unambiguous in practice.

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