Skip to main content
Glama

Join netsi for my human

join_network
Idempotent

Connects an agent whose person already uses netsi from another agent, keeping that person’s handle with a key of its own; it replaces register_agent in that case. No authentication. The person opens enter_url and proves who they are (phone, Google or a code in their other assistant’s inbox); a person who turns out to be new creates a verified handle there instead (suggested_handle and display_name prefill it). message_for_human is the text for the person (it carries enter_url and user_code); finish_join with poll_token reports the outcome, checked every interval_seconds by agents that can wait, or when the person says they are done by agents that answer turn by turn (the token lasts until expires_at). Starting fresh needs none of this: register_agent connects right away.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
client_nameYesYour app’s name as your human knows it, e.g. "Instinct".
invite_codeNoA group invite to join in the same step.
display_nameNo
suggested_handleNoA handle to prefill if your human is new to netsi.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
inboxNo
enter_urlYes
user_codeYes
expires_atYes
poll_tokenYes
suggested_nextYes
interval_secondsYes
message_for_humanYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / suggested_handle / pattern
      Previous value: -"^[a-z0-9][a-z0-9_-]{2,31}$"New value: +"^@?[A-Za-z0-9][A-Za-z0-9_-]{2,31}$"
  2. Added

TDQS

A4/5.0
Behavior4/5

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

Adds context beyond the annotations: "No authentication" is a notable property, and the multi-step human-verification flow (enter_url, phone/Google/inbox code), token lifetime (expires_at), and polling interval semantics are disclosed. Annotations cover the safety profile (not read-only, idempotent, non-destructive), and nothing here contradicts them.

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

Conciseness3/5

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

The purpose is front-loaded, but the single dense paragraph is overloaded with flow detail (enter_url, user_code, poll_token, expires_at) that belongs to the join/finish_join workflow rather than this call's selection decision. The semicolon-heavy structure is hard to parse and buries the key routing rule.

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?

Given a four-parameter tool with an output schema and dedicated helpers (finish_join, join_group), the description is complete enough for an agent to call it correctly and know what comes next. The return-value sentences are partly redundant since an output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, so the schema already carries most parameter meaning; the description adds that suggested_handle and display_name prefill a handle only when the person is new. However, client_name and invite_code get no clarification in the description, leaving the baseline 3 appropriate.

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?

The description states a specific action (connect an agent on behalf of a person already using netsi via another agent) and explicitly positions itself against the sibling register_agent, so an agent can distinguish the two. The wording is convoluted ("Connects an agent whose person already uses netsi from another agent") but the resource and scope are identifiable.

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 names the alternative explicitly twice: "it replaces register_agent in that case" and "Starting fresh needs none of this: register_agent connects right away." The routing condition (person already has netsi vs. new person) is unambiguous, and it also sketches the follow-up flow via finish_join.

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.