ComplaintrComplaintr

report_complaint Tool

Complete reference for the report_complaint MCP tool.

The report_complaint tool submits structured bug reports to Complaintr from AI agents.

Parameters

ParameterTypeRequiredMax LengthDescription
appNamestringYes100The name of the application that has the issue
titlestringYes200A brief, descriptive title summarizing the issue
descriptionstringYes5000Detailed description including expected vs actual behavior
sourceAgentstringNo50Name of the AI agent (e.g., opencode, claude, cursor)
metadataobjectNoAdditional structured context (URLs, errors, environment info)

appName

The application name must match a registered application exactly (case-insensitive). The developer registers this in the Complaintr dashboard.

Best practice: Ask the developer what name they registered, or check recent context for the correct application name.

title

A concise summary that helps the developer quickly understand the issue. Keep it under one sentence.

Good: "Login button returns 500 on Safari" Avoid: "There's a problem with the login page when I click the button and it doesn't work"

description

The most important field. Structure it to include:

  1. What you tried to do
  2. What you expected to happen
  3. What actually happened
  4. Any error messages or unexpected output

sourceAgent

Identify yourself so the developer knows which agent encountered the issue. Common values: opencode, claude, chatgpt, cursor, windsurf, copilot.

metadata

Optional structured data in JSON format. Useful fields:

FieldTypeDescription
urlstringThe URL or endpoint where the issue occurred
errorstringThe exact error message or code
statusCodenumberHTTP status code if applicable
browserstringBrowser name and version
screenSizestringViewport dimensions
stackTracestringFull stack trace if available
requestBodyobjectThe request payload that triggered the error
responseBodyobjectThe unexpected response
reproduciblebooleanWhether the issue can be reproduced consistently
timestampstringISO 8601 timestamp of when the issue occurred

Returns

Success (201)

{
  "id": "comp_abc123",
  "title": "Login page redirects to 404",
  "application": "my-web-app",
  "createdAt": "2026-07-25T10:35:00.000Z"
}
  • id — unique complaint identifier (use for reference)
  • application — the resolved application name
  • createdAt — server timestamp of submission

Errors

HTTP StatusMessageCause
400"appName, title, and description are required"Missing required fields
400"appName must be a string with at most 100 characters"Field exceeds max length
400"title must be a string with at most 200 characters"Field exceeds max length
400"description must be a string with at most 5000 characters"Field exceeds max length
404"Application not found"The appName does not match any registered application
429"Too many requests. Please try again later."Rate limit exceeded (10 per 60s per IP)
500"Internal server error: ..."Unexpected server error

Example Calls

Minimal Report

{
  "appName": "ecommerce-api",
  "title": "GraphQL returns null for nested items beyond page 1",
  "description": "When paginating orders, lineItems returns null for orders with more than 10 items. Expected: all lineItems returned with pagination."
}

Full Report with Metadata

{
  "appName": "saas-dashboard",
  "title": "CSV export includes deleted users",
  "description": "The user export feature at /admin/users/export includes soft-deleted users in the CSV output. The UI does not show these users. Expected: only active users in the export.",
  "sourceAgent": "opencode",
  "metadata": {
    "url": "https://dashboard.example.com/admin/users/export",
    "endpoint": "GET /api/admin/users/export",
    "format": "csv",
    "issue": "Soft-deleted users (deleted_at IS NOT NULL) are included",
    "reproducible": true,
    "timestamp": "2026-07-25T10:30:00Z"
  }
}

Report from Claude Desktop

{
  "appName": "payment-gateway",
  "title": "Webhook signature verification fails on retries",
  "description": "The Stripe webhook endpoint at /api/webhooks/stripe returns 400 on retry attempts because the signature uses the original timestamp. Expected: retries should be handled gracefully with idempotency keys.",
  "sourceAgent": "claude",
  "metadata": {
    "endpoint": "POST /api/webhooks/stripe",
    "statusCode": 400,
    "provider": "Stripe",
    "error": "Signature verification failed: timestamp outside tolerance"
  }
}

Constraints

ConstraintValue
Rate limit10 requests per 60 seconds per IP
appName matchingCase-insensitive
Max appName length100 characters
Max title length200 characters
Max description length5000 characters
Max sourceAgent length50 characters

Discovery

When connecting to a Complaintr MCP server, tools are auto-discovered. Ask your host environment:

"What MCP tools are available?"

The report_complaint tool should appear in the listing. No manual registration is needed.

On this page