MCP server for Gorilla. Find your first SaaS users on Reddit, X, YouTube, LinkedIn, and Bluesky.
The 'search' tool has a well-structured input schema with proper types, enums, and descriptions. The tool description is comprehensive (280+ chars) and explains what the tool does, when to use it, and pricing/latency expectations. All parameters have descriptions and appropriate constraints (minLength, min/max for limit). However, the output schema is not documented in the source code, the response structure is inferred from the V2StreamPollResponse interface but never explicitly declared as the tool's return type to the MCP client. Error handling is present but generic (HTTP errors without recovery guidance). The tool follows verb_noun naming ('search') and accepts natural-language queries, which is good for the chat data model.
The social demand engine for your agent. Searches Reddit, X, YouTube, LinkedIn, and Bluesky in parallel for posts where people are expressing demand for what you described. Returns scored results ranked Hot / Warm / Cold by buying intent and recency. Filter by source and by time. Pricing: one credit per qualified lead (Hot or Warm); Cold results are free, and a failed search is fully refunded. LinkedIn is a paid-plan source; the free tier covers Reddit, X, YouTube, and Bluesky. Takes 30-90s.
Output schema not documented. The tool returns V2StreamPollResponse (Post[], buckets, credits, errors) but this structure is not declared in the tool definition visible to the MCP client. LLMs cannot plan downstream operations without knowing what fields to expect.
Error responses lack recovery guidance. HTTP errors (e.g., 'GET /search failed (401)') do not tell the LLM what to do next. Should include hints like 'Check GORILLA_API_KEY is set' or 'Verify API base points to usegorilla.app'.
No tool annotations. The tool does not declare readOnlyHint, destructiveHint, or idempotentHint. The 'search' tool is read-only and idempotent, these should be explicitly marked for agent safety.
Partial failure handling unclear. The tool returns errors per source (e.g., 'reddit: rate limited') but the response structure and how to interpret partial results is not documented. Should clarify: are partial results usable? Should the agent retry failed sources?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Result limit enforcement not explicit. The tool accepts limit 1-200 but does not document what happens if the backend returns fewer results (e.g., due to rate limits or no matches). Should clarify: is the response always complete, or should the agent check total vs returned count?