Skip to main content
Glama
@proof-holdings/mcp-server

@proof-holdings/mcp-server

Official

add_circle_member_channel

Adds a Telegram chat ID or E.164 WhatsApp phone as a channel for a Circle member, validating the identifier and returning 409 if that channel type already exists.

Instructions

Declare a channel for a Circle member. Returns 409 if that channel type already exists on the member. The identifier is a Telegram chat id or an E.164 WhatsApp phone (per-channel format validated server-side).

ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, then call this tool again. start_login does NOT open this tool.

Input Schema

NameRequiredDescriptionDefault
idYesCircle ID
channelYesChannel type (telegram or whatsapp)
member_idYesMember ID to add the channel to
identifierYesTelegram chat id, or E.164 WhatsApp phone with a leading +

Output Schema

NameRequiredDescriptionDefault
idNoMongoDB ObjectId
statusNo
channelNo
created_atNo
verified_atNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.7.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "channel": {},
      +    "created_at": {},
      +    "id": {
      +      "description": "MongoDB ObjectId"
      +    },
      +    "status": {},
      +    "verified_at": {}
      +  },
      +  "type": "object"
      +}
  2. First observedv1.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only declare non-read-only and non-destructive, which is thin; the description adds real context: the 409 conflict when the channel type already exists, and that identifier format is validated server-side rather than client-side. It does not say whether the call is idempotent or what permissions beyond a Proof account are required, keeping it short of a 5.

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?

The functional sentence and the 409/format caveat are front-loaded, and the ACCESS block is clearly separated. The auth paragraph is slightly verbose for an environment variable that is documented elsewhere, but the 'start_login does NOT open this tool' line earns its place by preventing a common dead end.

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?

An output schema exists, so return values need not be explained, and the description covers the mutation, the duplicate-error case, identifier validation, and the auth gate. The main remaining gap is the interaction with sibling member tools (e.g. whether the member must already exist), which is left unstated.

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 100%, with every parameter documented including the channel enum and the leading-'+' E.164 requirement. The description restates the identifier-format rule but adds no new syntax or constraints beyond what the schema already provides, so the baseline 3 applies.

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 description opens with a specific verb and resource: 'Declare a channel for a Circle member.' Combined with the channel enum (telegram/whatsapp) referenced later, an agent can distinguish this from list_circle_member_channels and remove_circle_member_channel without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a hard prerequisite (Proof account, PROOF_API_KEY set, server restart) and explicitly warns that start_login does not unlock this tool, which is genuinely useful routing info. However, it never states when to use this versus add_circle_member, invite_circle_member, or the discovery tools that produce a Telegram chat id, so the alternative selection is left implicit.

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

Deploy Server

Other Tools