Skip to main content
Glama

set_response

Configure what a bin replies to webhook senders: HTTP status, content-type, body, custom response headers, optional delay. Body and header values support {{…}} templates rendered per-request from the INCOMING delivery — {{body.challenge}}, {{query.hub.challenge}}, {{header.x-hook-secret}}, {{hmac_sha256 body.plainToken YOUR_SECRET}} — so a bin can pass provider verification handshakes with zero code: Slack URL verification (body {{body.challenge}}), Zoom CRC (JSON with the hmac_sha256 helper), Meta/WhatsApp GET echo (text/plain {{query.hub.challenge}}), Strava (JSON {"hub.challenge":"{{query.hub.challenge}}"}), Asana (response header X-Hook-Secret: {{header.x-hook-secret}}). Only the fields you pass change; everything else keeps its current value. Works on bins created via create_bin by this same client; the incoming request is still captured in full either way.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
binYesbin id (or custom slug) from create_bin
bodyNoresponse body, max 10000 chars; {{…}} templates allowed
statusNoHTTP status to respond with, 100-599 (bins default to 200)
headersNocustom response headers as name→value (max 10; values may use {{…}} templates). Pass {} to clear. Hop-by-hop/security headers (set-cookie, location, strict-transport-security…) are rejected.
delay_msNoartificial response delay in milliseconds, 0-10000 (for testing sender timeouts/retries)
content_typeNoContent-Type of the response (e.g. application/json, text/plain)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it does well. It discloses that the operation is a partial update ('Only the fields you pass change; everything else keeps its current value') and that the incoming request is still captured 'in full either way.' It also explains the per-request template rendering behavior, which is a non-obvious side effect. It stops short of describing error cases, rate limits, or what the mutation returns, so a small gap remains.

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 description is longer than average, but every section earns its place: a crisp first sentence, template rule, provider examples, partial-update semantics, and client restriction. It is front-loaded with the core purpose and uses examples to make a complex feature concrete. The only minor issue is the provider list could be trimmed, but it does add practical value for an agent handling verification handshakes.

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 the tool's complexity (templating, partial updates, header restrictions) and the absence of annotations/output schema, the description is quite complete. It covers what to configure, the template mechanism, how partial updates behave, and that capture is unaffected. It doesn't mention the API response format, but since no output schema exists and the mutation semantics are clear, this is acceptable. A 5 would require explicit error handling or privilege details.

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. The description earns an extra point by enriching parameter meaning: it explains how body and header templates work with concrete examples (Slack, Zoom, Meta, Strava, Asana) and highlights that delay is for testing sender timeouts/retries. This goes beyond the schema's basic 'templates allowed' phrasing and helps an agent construct realistic values.

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 ('Configure') and resource ('what a bin replies to webhook senders'), then enumerates the exact knobs: HTTP status, content-type, body, headers, delay. It clearly distinguishes itself from sibling tools like create_bin, get_capture, or send_test_webhook by focusing solely on mutating a bin's response behavior. An agent can immediately know what this tool does and why it exists.

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?

The description gives strong context for when to use this tool: after creating a bin (via create_bin) and when needing to configure responses, especially provider verification handshakes. It includes a prerequisite ('bins created via create_bin by this same client') and clarifies that the incoming request is still captured, which helps avoid confusion with capture-related tools. However, it does not explicitly name alternatives or state when *not* to use it, leaving some inference to the agent.

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.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a distinct action—create bin, read/list/wait for captures, simulate a delivery, configure a response, and verify a signature. The reading tools are differentiated by listing summaries vs. retrieving full captures vs. blocking for the next arrival, so agents should not misselect.

Naming Consistency5/5

All tool names follow a consistent lowercase snake_case verb_noun pattern: create_bin, get_capture, list_captures, set_response, verify_signature. Multi-word targets and wait_for are still predictable and match the same imperative style.

Tool Count5/5

Seven tools cover the webhook capture workflow without redundancy or bloat. Each tool serves a concrete stage in the create → capture → inspect → respond → verify loop, which is an ideal scope for an MCP server.

Completeness4/5

The core lifecycle is well covered: bins can be created, captures can be listed/read/waited for, test webhooks can be generated, responses configured, and signatures verified. Minor gaps exist around bin lifecycle management—there is no list_bins/get_bin/delete_bin or capture deletion—but auto-expiring anonymous bins make this a workable, not blocking, omission.

Resources