MCP server for Forward (getforward.xyz) — agents buy qualified leads, sales meetings, SEO content, and verified ad conversions, billed per verified result. Self-provisioning: forward_signup mints an API key with $25 free credits.
Forward MCP has 9 tools with complete input schemas and descriptions. Naming follows verb_noun convention (forward_*). Descriptions are present (avg ~120 chars) but lack actionable context for LLM selection. Parameter descriptions are minimal or absent, most params have no guidance on format, constraints, or dependencies. Output schemas are not documented. Error handling is basic. No tool annotations (readOnlyHint/destructiveHint). Composition is sound (each tool has one responsibility), but parameter design forces LLMs to guess at complex nested objects like 'icp' and 'payment'.
Authorize and start delivery. Pay with credits (no human), x402, or stripe_acp.
Get the account's prepaid credit balance.
List Forward's pay-per-result products, acceptance criteria, and prices.
Status, spend, and results-so-far for an engagement.
Price preview for a product/difficulty/volume (no commitment).
Collect verified results for an engagement, each with its charge.
Complex nested objects (icp, payment, constraints) lack parameter descriptions. LLMs cannot infer structure of 'icp' object or valid 'payment' rail options without explicit guidance.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., brief_id from forward_submit_brief, quote_id from forward_quote) without seeing response structure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). forward_checkout is irreversible but unmarked; forward_signup has side effects (API key generation) but no annotation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Price a submitted brief. Returns quote_id, unit price, est total, ETA.
Create a Forward account instantly — returns account_id and api_key funded with $25 free starter credits. No human signup. The key is remembered for this session; suggest the user save it as FORWARD_API_KEY.
Describe who you want as customers. Returns brief_id (+ any missing fields as needs).
Parameter descriptions missing or generic. 'difficulty' enum values (standard/hard/elite) are not explained; 'volume' has no range guidance; 'budget_cap_usd' lacks format/precision guidance.
Error handling is not documented. No guidance on retryability, user-fixable vs fatal errors, or recovery steps. LLMs cannot self-correct on API failures.