AI Agent Web Data Integration Demo - connects AI agents to real-time web data via CoreClaw's Web Data APIs and MCP server
This server has critical definition gaps across all four tools. All tools have minimal descriptions (15-50 chars, well below the 50-200 char LLM-optimized baseline). Input schemas are present with basic type info but lack depth: no enums for constrained values (e.g., 'platform' in fetch_social), no validation ranges, no parameter descriptions explaining format/constraints. Output schemas are completely undocumented, LLMs cannot plan downstream calls or extract structured data. No error handling guidance. Tools lack composition clarity: search_all aggregates multiple sources but doesn't explain when to use it vs individual fetch_* tools. The server appears to be a thin wrapper around a third-party API (CoreClaw) with minimal agent-specific design.
Fetch Google Maps data for AI agent consumption.
Fetch LinkedIn data for AI agent consumption.
Fetch social media data for AI agent consumption.
Search across all data sources for AI agent.
Output schemas completely undocumented. LLMs cannot infer what fields to expect from fetch_google_maps, fetch_linkedin, fetch_social, or search_all. This violates the pattern:tool requirement and forces agents to guess at response structure.
Tool descriptions are 15 - 50 characters, far below the 50 - 200 char LLM-optimized baseline. 'Fetch Google Maps data for AI agent consumption' does not explain WHEN to use this tool, what data it returns, or how it differs from search_all. Descriptions must answer: What? When? What does it return?
Parameter 'platform' in fetch_social accepts free-form strings with no enum constraint. LLMs will hallucinate invalid platform names. Must declare valid platforms (e.g., 'twitter', 'instagram', 'tiktok') as an enum.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
No parameter descriptions. 'query' and 'limit' parameters lack explanations of format, range, or constraints. 'limit' defaults to 50 or 20 but no min/max bounds stated. LLMs cannot validate inputs or understand constraints.
No error handling guidance. Code calls resp.raise_for_status() but provides no recovery hints to LLMs. If an API call fails, the agent has no guidance on whether to retry, ask the user, or try an alternative tool.