MCP server for Surf crypto data API providing access to crypto market, exchange, wallet, token, social, project, on-chain, prediction-market, fund, news, and web data
All 12 tools suffer from severely underdeveloped schemas and descriptions. Every tool uses a generic command/params pattern with no enum values, parameter types, or constraints visible in the schema. Descriptions are boilerplate and fail to distinguish tools or guide LLM selection. No output schemas documented. The surf_sql tool creates server-side state but lacks confirmation/dry-run patterns. Tools are named generically (surf_*) without action verbs. Parameter descriptions are absent from the input schema itself.
Use this when the user needs exchange data from Surf. Provides access to exchange data endpoints with commands for retrieving exchange information. Commands include various exchange-related operations with parameters for filtering and querying exchange data.
Use this when the user needs fund data from Surf. Provides access to fund data endpoints with commands for retrieving fund information. Commands include various fund-related operations with parameters for filtering and querying fund data.
Use this when the user needs market data from Surf. Provides access to market data endpoints with commands for retrieving market information. Commands include various market-related operations with parameters for filtering and querying market data.
Use this when the user needs news data from Surf. Provides access to news data endpoints with commands for retrieving news information. Commands include various news-related operations with parameters for filtering and querying news data.
Use this when the user needs on-chain data from Surf. Provides access to on-chain data endpoints with commands for retrieving on-chain information. Commands include various on-chain-related operations with parameters for filtering and querying on-chain data.
Use this when the user needs prediction-market data from Surf. Provides access to prediction-market data endpoints with commands for retrieving prediction-market information. Commands include various prediction-market-related operations with parameters for filtering and querying prediction-market data.
All 12 tools use identical generic schema: {command: enum, params: object} with no enum values, parameter types, or descriptions visible. LLMs cannot determine valid commands or required parameters.
Tool descriptions are boilerplate and identical across all tools ('Use this when the user needs X data from Surf'). No guidance on when to select one tool over another, no output schema documentation, no error recovery hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | 2025-06-18+ | v2 |
Use this when the user needs project data from Surf. Provides access to project data endpoints with commands for retrieving project information. Commands include various project-related operations with parameters for filtering and querying project data.
Use this when the user needs social data from Surf. Provides access to social data endpoints with commands for retrieving social information. Commands include various social-related operations with parameters for filtering and querying social data.
Use this when the user needs SQL query capabilities from Surf. Provides access to SQL endpoints with commands for executing SQL queries and managing SQL jobs. Includes sql-job-create command which creates server-side state.
Use this when the user needs token data from Surf. Provides access to token data endpoints with commands for retrieving token information. Commands include various token-related operations with parameters for filtering and querying token data.
Use this when the user needs wallet data from Surf. Provides access to wallet data endpoints with commands for retrieving wallet information. Commands include various wallet-related operations with parameters for filtering and querying wallet data.
Use this when the user needs web data from Surf. Provides access to web data endpoints with commands for retrieving web information. Commands include various web-related operations with parameters for filtering and querying web data.
Tool names lack action verbs. 'surf_market' does not indicate whether it searches, lists, gets, or analyzes market data. Names should be verb_noun (e.g., 'get_market_price', 'search_market_data').
surf_sql creates server-side state (sql-job-create) but lacks confirmation/dry-run pattern. Agents cannot preview results before committing expensive queries. No guidance on retryability or idempotency.
No output schemas documented for any tool. LLMs cannot plan downstream tool calls or extract required fields (e.g., IDs for chaining). Responses are opaque.