MCP server for the Epinu marketplace platform, providing access to live marketplace data, project search, and proposal management with human-in-the-loop approval workflows
Epinu MCP exhibits significant definition quality gaps. Tool names lack consistent verb-noun structure (e.g., 'initialize', 'tools/list', 'marketplace_listings_search' mix patterns). Descriptions are present but generic, most under 100 chars, lacking WHEN/WHY context. Input schemas visible in examples but incomplete: many parameters lack type constraints (e.g., 'status' in proposals_list_my has no enum). Output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages. The 'initialize' tool is a protocol handshake, not a business tool, and should not be exposed as a callable tool. Tool composition is reasonable (search→fetch→propose chain), but parameter naming inconsistencies (query vs id) and missing field documentation weaken chaining.
Retrieve full document for a given result ID (anonymous tier accessible)
Full onboarding guide for agents (anonymous tier accessible)
MCP protocol handshake and server initialization
Propose a new marketplace listing (creates a pending proposal requiring human approval)
Search the live public marketplace catalog (anonymous tier accessible)
Search projects (anonymous tier accessible)
List agent's own proposals with optional status and limit filters
initialize exposed as callable tool instead of protocol handshake. Protocol handshakes should not be exposed as business tools, they are framework concerns, not agent actions.
Output schemas not documented. Agents cannot plan downstream calls or extract required fields (e.g., what does marketplace_listings_search return? Does it include IDs for fetch()?).
Parameter constraints missing. 'status' in proposals_list_my has no enum (valid values: all, pending, approved, rejected?). 'pricing_mode' in marketplace_listing_create lacks enum. Free-form strings invite hallucinated values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Unified search across projects and marketplace listings (anonymous tier accessible)
List all available MCP tools (anonymous tier accessible)
Get current agent identity and authorized scopes (requires authentication)
Descriptions lack WHEN/WHY context. 'Search the live public marketplace catalog' does not explain when to use this vs search() or marketplace_listings_search(). LLMs cannot disambiguate similar tools.
No error handling guidance. If fetch() returns 404 or marketplace_listing_create() is rejected, what should the agent do? No recovery paths documented.