Skip to main content
Glama

update_profile

Destructive

Update a CvLAC researcher profile's text and academic social networks: merge network links, keep existing entries, and remove links or areas only with confirmation.

Instructions

Write the researcher profile text and/or the academic social networks. Networks are MERGED over what CvLAC already stores — its form rewrites the whole table, so this reads it first and posts everything back. Pass url:null to remove one. A network CvLAC does not list goes in "otro" with its name in "label". Removing one needs confirm_delete:true. The profile text cannot be blanked: CvLAC marks it required. The areas list is replaced whole, so dropping one also needs confirm_delete:true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
areasNoThe whole list of áreas de actuación, in order — the first is the main one — by name or by CvLAC code. It replaces what is stored, so anything left out is a removal. An ambiguous name comes back in "choices" instead of being guessed.
networksNoNetworks to set or remove. Everything else stored is kept.
descriptionNoReplaces the profile text. Omit to leave it untouched.
confirm_deleteNoRequired when a network carries url:null or the areas list drops one. Without it nothing is written.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.0.7
    • addedInput schema / properties / networks / items / properties / url / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / networks / items / properties / url / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
  2. First observedv1.0.6

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the destructiveHint=true annotation: networks are MERGED (reads existing state first and posts everything back because the form rewrites the whole table), areas are replaced whole so omissions count as removals, and confirm_delete gates all deletions. This discloses exactly what gets destroyed and the read-then-write mechanics.

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 core action, then dense but purposeful sentences on merge/removal semantics. Every sentence carries a distinct constraint; it is long but not padded.

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 mutation tool with no output schema, it covers what is overwritten, deletion gating, the non-blankable profile text, and the ambiguity fallback. It omits any permission/auth requirements, which is a minor gap given the destructive nature.

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, but the description adds cross-parameter semantics the schema does not: the read-modify-write behavior behind the merge, the confirm_delete gate shared by url:null and areas removal, and the 'choices' fallback for ambiguous names. This meaningfully augments the per-field schema text.

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?

States a specific verb (write) and resource (researcher profile text and academic social networks), and distinguishes itself from read-oriented siblings like read_profile and read_cvlac. An agent can identify the tool's scope immediately.

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?

Explains the conditions that govern use: url:null removes a network, confirm_delete:true is required for removals, and the profile text cannot be blanked. It does not explicitly contrast itself with update_section or sync, but the operational context is clear.

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