Official remote MCP server for PicSee URL shortening, link management, and click analytics.
Strong tool definitions with comprehensive schemas and descriptions. All 17 tools have clear verb-noun naming (create_, get_, list_, edit_, delete_, recover_). Descriptions are detailed (100-300 chars typical) and explain WHEN to use each tool. Input schemas are well-structured with Zod validation, proper types, and parameter descriptions. Key strengths: clear risk classification (READ_ONLY, WRITE, REVERSIBLE), smart defaults (externalId guidance for agent attribution), and pagination support (limit, prevMapId). Gaps: no output schemas documented in code, missing error recovery guidance in descriptions, and tool annotations (readOnlyHint/destructiveHint) not visible in registration.
Create a new PicSee short link from a destination URL. `url` is required; every other field is optional. The response contains `picseeUrl`, the shortened link ready to share.
Soft-delete a short link (mark as deleted; the link stops redirecting but metadata is retained). The link can be recovered later via `recover_short_link`. Returns the updated link metadata with `isDeleted: true`.
Update an existing short link's destination URL, custom metadata (title, description, image, tags), tracking setup (UTM, pixels, GTM), or device targets. Pass only the fields you want to change; omitted fields are left alone. Pass `null` to clear a field (e.g., `utm: null` removes all UTM params). Returns the updated link metadata.
Return the calling account's API plan, lifetime quota, current period usage, and the plan expiration date. Use this before bulk operations to confirm there is remaining quota, or when the user asks about their PicSee plan.
Return the number of API-created short links grouped by `externalId` over a time window (default last 30 days, max 31-day range). Useful for attributing API usage to specific campaigns / clients.
Output schemas not documented in code. Tool descriptions explain what is returned (e.g., 'picseeUrl', 'click counts', 'platform breakdown') but no formal schema definitions are visible. LLMs cannot reliably extract fields or plan downstream calls without documented return types.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) not visible in tool registration. Risk classification exists in comments (READ_ONLY, WRITE, REVERSIBLE) but is not exposed via MCP protocol annotations. Agents cannot automatically infer safety properties.
Error recovery guidance missing from descriptions. Tools document error codes (PUB00503, PUB00201) but descriptions do not explain what to do when errors occur. E.g., 'encodeId conflict returns PUB00503' should suggest 'try a different slug or call get_short_link to check availability'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | A | 86 | 2026-07-28+ | v2 |
List every short-link domain available to the account: brand short domains (BSDs) owned by the account, PicSee subdomains, and the shared root domain. Each entry flags HTTPS support and whether it is the account default. Call this before `create_short_link` if the user wants to pick a non-default domain.
List the account's previously-created tags as `{ id, value }` pairs. The `value` strings are exactly what the `tags` array on `create_short_link` / `edit_short_link` accepts. Call this to offer the user a tag picker instead of asking them to retype tag names.
List previously-used UTM sources / mediums and saved Meta Pixels + Google Tag Manager containers on the account. Use this to populate dropdowns when assembling tracking parameters for a new short link, rather than having the user type them in.
Fetch metadata for a single short link by slug: destination URL, custom fields (title, description, image, tags), tracking setup (UTM, pixels, GTM), device targets, creation time, and click count. Use this before editing to see the current state.
Fetch audience labels (custom segments / cohorts) assigned to a short link. Requires Advanced plan. Returns label IDs and names.
Fetch daily click counts for a short link over a time range (default last 30 days). Returns an array of `{ date, clicks }` entries. Useful for trend analysis and performance reporting.
Fetch click analytics for a short link: total clicks, unique visitors, top referrers, top platforms, and geographic distribution. Useful for quick performance checks without drilling into detailed breakdowns.
Fetch platform / device breakdown for a short link (iOS, Android, Windows, macOS, etc.) over a time range. Returns click counts and percentages by platform.
Fetch top referrers (sources of clicks) for a short link over a time range. Returns referrer URLs and click counts, sorted by popularity.
Fetch geographic breakdown (countries / regions) for a short link over a time range. Returns click counts and percentages by region.
List short links created by the account, with optional filtering by creation time, star status, external ID, or search criteria (slug, author, tag, keyword). Paginate via `limit` and `prevMapId`. Returns link metadata including click counts, creation time, and custom fields.
Recover a previously soft-deleted short link (restore it to active status). Returns the updated link metadata with `isDeleted: false`.
Time parameter format hints repeated across 6 analytics tools. Descriptions state 'Taipei time in YYYY-MM-DDTHH:mm:ss format' but do not clarify timezone handling, DST, or what happens if times are in UTC. Ambiguity risks incorrect date range queries.
Tier-based tool visibility (anonymous, free, advanced) is implemented in registerTools() but not exposed to the LLM. An agent calling get_short_link_audience_labels on a Free plan will fail with PUB00201 instead of the tool being hidden upfront. Descriptions should note plan requirements.