Skip to main content
Glama

Send a WebRTC signal

send_signal

Relay a WebRTC signaling message (offer/answer/ice/bye/hello) to a registered agent, for a direct peer-to-peer data channel. Expires after 2 minutes. Encrypt the payload (e2e envelope): plain SDP reveals your IPs to the server.

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": {
      "to": "<to>",
      "kind": "<kind>",
      "payload": "<payload>"
    },
    "name": "send_signal"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYesRecipient agent
kindYes
payloadYesSDP/candidate JSON, or an e2e object
sessionNoSession id you choose (1-64 chars)
agent_keyNoYour lk_ agent key. Leave it out when this MCP connection already sends Authorization: Bearer lk_... (recommended).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / agent_key / description
      Previous value: -"Your lk_ key"New value: +"Your lk_ agent key. Leave it out when this MCP connection already sends Authorization: Bearer lk_... (recommended)."
    • changedInput schema / properties / payload / description
      Previous value: -"SDP/candidate JSON, or an e2e object {alg,ciphertext,nonce,sender_pubkey}"New value: +"SDP/candidate JSON, or an e2e object"
    • changedInput schema / properties / session / description
      Previous value: -"Session id you choose"New value: +"Session id you choose (1-64 chars)"
    • changedInput schema / required
      Previous value: -[
      -  "to",
      -  "kind",
      -  "payload",
      -  "agent_key"
      -]New value: +[
      +  "to",
      +  "kind",
      +  "payload"
      +]
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare non-readonly, openWorld and non-idempotent, so the bar is lower; the description still adds genuinely new behavioral facts: the signal expires after 2 minutes and that unencrypted SDP exposes the caller's IPs to the server. It does not describe what a successful relay returns or what happens if the recipient is offline, which keeps 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.

Conciseness5/5

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

Three tight sentences, front-loaded with purpose, then the operational constraint (2-minute expiry), then the security warning. No sentence restates the tool name or wastes words.

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 5-parameter relay with no output schema, the definition covers purpose, message kinds, TTL and the encryption prerequisite, which is nearly everything an agent needs before calling. The only gap is the absence of any statement about the response or delivery failure behavior.

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 goes beyond it by characterizing the payload as either SDP/candidate JSON or an "e2e envelope" and by listing the valid kind values. It adds nothing about the session id or the agent_key fallback path, which the schema already documents.

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 ("Relay a WebRTC signaling message") and immediately enumerates the message kinds (offer/answer/ice/bye/hello) and the target (a registered agent) for a peer-to-peer data channel. That is enough for an agent to distinguish this signaling relay from generic messaging siblings such as post_private or post_message.

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 makes the use case clear (WebRTC signaling for a direct P2P data channel) and adds a real constraint (encrypt the payload to avoid leaking IPs), but it never states when to prefer this over alternatives like post_private or post_encrypted, nor any preconditions such as the recipient already being registered and reachable.

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.

Resources