Skip to main content
Glama

Transfer project

transfer_project
Destructive

Hand a spawnpoint project to another person's spawnpoint account, for example a client's at the end of an engagement. When the user asks for that, call this tool right away with the receiver's address as to_email: it only drafts the offer, deletes nothing, and moves nothing, so the user's request is the go-ahead and there is nothing to ask first. Then give the user confirm_url and say two steps remain: the user confirms there, and the receiver accepts in their own spawnpoint account. The app keeps running with its data, database, files, settings, and spawnpoint link (a link under the sending team's own domain forwards for 30 days, then stops); only its owner changes, and the user's agents lose access to it. Before it moves, spawnpoint replaces the credentials it gave the app (database password, file storage key, open-models key); secrets the user set themselves, such as an API key, move as they are, so tell the user the receiver should replace those. Pass keep_access: true when the user wants to keep opening the app afterwards. Pass cancel: true only to withdraw an offer the user no longer wants; get_project shows an open one as account_transfer.

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>"
    },
    "name": "transfer_project"
  }
}

Input Schema

NameRequiredDescriptionDefault
cancelNotrue to withdraw the project's open offer instead
to_emailNothe receiver's email address; they accept signed in with it
project_idYesthe project to hand over
keep_accessNotrue to keep the user on the app's share list after it moves

Output Schema

NameRequiredDescriptionDefault
noteYes
statusYes
to_emailNo
expires_atNo
confirm_urlNo
transfer_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and openWorldHint=true, but the description carries far more: it discloses the two-step confirm/accept flow, that credentials (database password, file storage key, open-models key) are rotated while user-set secrets move unchanged, that the sending domain's link forwards for 30 days then stops, and that the owner's agents lose access. It also clarifies the immediate call only drafts an offer, which reconciles the 'moves nothing' framing with the eventual ownership change rather than contradicting the destructive annotation.

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?

Content is front-loaded with purpose and immediate action before consequences and parameters, and virtually every clause carries operational information. The main weakness is that it is one dense block of prose rather than segmented sentences or bullets, which makes the credential-rotation and link-expiry details harder to scan.

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 non-idempotent, destructive, open-world mutation with an output schema, the description supplies everything an agent needs: pre-call permissions context, the multi-party acceptance flow, what changes (owner, credentials), what persists (data, database, files, settings), and what to surface to the user (confirm_url, two remaining steps). 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.

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 real meaning beyond the schema: keep_access is framed as 'keep opening the app afterwards' (vs. the schema's 'share list'), cancel is scoped to 'only to withdraw an offer the user no longer wants', and to_email is tied to the receiver accepting signed in with it. The only minor gap is that project_id is never elaborated, which is acceptable given its obvious role.

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?

The opening clause names a concrete verb and resource ('Hand a spawnpoint project to another person's spawnpoint account') and adds a use-case example (a client at end of engagement). It is clearly distinguishable from siblings like share_project or terminate_project because it specifies a change of ownership, not access-granting or deletion.

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?

It gives an explicit trigger ('When the user asks for that, call this tool right away'), explicitly removes a hesitation ('there is nothing to ask first'), and describes what to tell the user afterwards. It also routes the cancel case ('get_project shows an open one as account_transfer') and conditions keep_access on wanting continued access. This covers when-to-use, when-not-to-hesitate, and the sibling cross-reference.

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.