MCP server for interacting with Farcaster social network via Warpcast API
37 tools with minimal quality. All tools lack parameter descriptions in the schema (critical violation). Most descriptions are under 20 chars, failing the baseline. No output schemas documented. No error handling guidance. Tool names are verb-prefixed but descriptions are too terse to guide LLM selection. Example: 'Follow a user by their Farcaster ID' (34 chars) lacks context on when to use vs alternatives. Parameters like 'fid' and 'cast_hash' have no type info in schema definitions visible in code. No distinction between read-only and write operations in descriptions. Async tools (get_channel, etc.) mix direct client calls with httpx, creating inconsistent patterns.
Delete a cast by its hash
Remove likes from a cast by its hash
Remove a recast from a cast by its hash
Follow a user by their Farcaster ID
Get all available channels
Get blocked users, optionally filtered by blocker Farcaster ID
Retrieve a cast by its hash
Parameter descriptions missing from all tool schemas. FastMCP @mcp.tool() decorators lack parameter documentation in the visible code. LLMs cannot infer parameter meaning from names alone (e.g., 'fid' could be user ID, friend ID, or feed ID).
Tool descriptions are too terse (10-45 chars). Baseline is 194 chars. Descriptions like 'Follow a user by their Farcaster ID' lack context on when to use this tool vs alternatives, prerequisites, or side effects. LLMs cannot reliably select the right tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Get users who liked a cast (up to 100)
Get moderated casts, optionally filtered by channel ID
Get users who recasted a cast (up to 100)
Get casts from a user by their Farcaster ID (up to 100)
Get channel information by channel ID
Get banned users in a channel, optionally filtered by user Farcaster ID and/or channel ID
Get followers of a channel by channel ID
Get channel invites, optionally filtered by user Farcaster ID and/or channel ID
Get members of a channel, optionally filtered by user Farcaster ID
Get restricted users in a channel, optionally filtered by user Farcaster ID and/or channel ID
Get creator reward winners, optionally filtered by periods ago
Get the custody address for a user by username or Farcaster ID
Get developer reward winners, optionally filtered by periods ago
Get followers of a user by their Farcaster ID (up to 100)
Get all users that a user is following
Check the health status of the Warpcast API
Get the authenticated user's profile information
Get recent casts from the network (up to 100)
Get recently active users on the network (up to 100)
Get user profile information by Farcaster ID
Get user profile information by username
Get user profile information by verification address
Get a user's follow status for a specific channel
Get channels followed by a user by their Farcaster ID
Get the primary address for a user on a specific protocol
Get verification addresses for a user by Farcaster ID
Like a cast by its hash
Post a new cast (message) to Farcaster
Recast (retweet equivalent) a cast by its hash
Unfollow a user by their Farcaster ID
No output schemas documented. Tools return raw API responses without specifying what fields the LLM should expect. Agents cannot plan downstream tool calls or extract required IDs for chaining (e.g., does get_user return user_id, fid, or both?).
No error handling guidance. Tools return raw exceptions (e.g., 'Error making request to {url}: {str(e)}') without telling the LLM what to do next. Is the error retryable? Should the user be asked for clarification? Is it fatal?
Destructive operations (delete_cast, delete_cast_likes, delete_recast) lack confirmation or dry-run support. Agents can permanently delete user data without a safety gate. No idempotency guarantees documented.