Model Context Protocol (MCP) server for accessing OpenSincera API to retrieve publisher metadata and verification information
Server has moderate-to-good definition quality. All 6 tools are explicitly registered with names, descriptions, and input schemas. Naming follows verb_noun pattern consistently (get_*, compare_*, evaluate_*, health_check). Descriptions are detailed and exceed the minimum baseline. However, several tools lack output schema documentation, some parameters lack meaningful constraints, and error handling guidance is minimal. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. The tools are all READ_ONLY, which is appropriate, but this is not expressed via toolAnnotations.
Compare a publisher against its similar publishers (competitive benchmark). Retrieves the target publisher's data and its similar publishers, then generates a side-by-side comparison of key metrics: A2CR, Ads in View, Ad Refresh, Page Weight, CPU Usage, Supply Paths, Reseller Count, ID Absorption Rate, and Unique GPIDs. Use the device parameter to compare using mobile or desktop specific metrics.
Evaluate and rank multiple publisher domains for advertiser media selection. Scores each publisher (0-100) based on ad quality metrics, supply chain health, and identity coverage. Supports campaign goal weighting (branding vs performance), bilingual output (en/ja), and device-specific scoring (mobile/desktop).
Get detailed publisher information by domain name with comprehensive metric descriptions. Returns formatted data including performance metrics, supply chain information, and detailed explanations of each field's meaning and business impact.
Get detailed publisher information by Publisher ID with comprehensive metric descriptions. Returns formatted data including performance metrics, supply chain information, and detailed explanations of each field's meaning and business impact.
No output schemas documented for any tool. LLMs cannot determine what fields to expect in responses, forcing them to guess and parse unstructured output. This violates pattern:tool and pattern:response-shaper.
Missing tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are READ_ONLY but this is not declared in the tool metadata. This forces LLMs to reason about side effects without explicit guidance.
health_check description is minimal (48 chars) and lacks context for when/why to use it. Describes WHAT but not WHEN or WHY. Compare to other tools which explain their business purpose.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Get detailed publisher metadata from OpenSincera API with comprehensive field descriptions. Requires either publisherId or publisherDomain. Returns publisher information including: - Basic Info: Publisher ID, name, domain, status, verification status, contact info, categories - Performance Metrics: Ads to Content Ratio (A2CR), Ads in View, Ad Refresh Rate, Page Weight, CPU Usage - Supply Chain: Total Supply Paths, Reseller Count, Global Publisher IDs (GPIDs) - Identity: ID Absorption Rate Each metric includes detailed explanations of what it measures and its business implications.
Check the health status of the OpenSincera API connection
Parameters lack consistency in constraint documentation. For example, 'limit' in get_publisher_metadata has min/max in schema (1-100) but no example or guidance on typical usage. 'device' enum documentation is incomplete ('Default: overall' stated but not formalized).
Error handling not visible in tool definitions. No error_classification pattern (retryable vs user-fixable vs fatal). No recovery_guide pattern. No actionable error messages defined. Source code shows axios calls but error paths are not documented in tool descriptions.