Local-first MCP server + review dashboard for LinkedIn profile and personal-brand management, grounded in a verified-evidence ledger
Critical gaps across all dimensions. Tool definitions lack input schemas (cannot verify parameter types/constraints), descriptions are minimal (10-30 chars, well below 50-200 char baseline), and no output schemas are documented. 34 tools registered but only 10 have visible input schemas in the provided code. No error handling guidance, no idempotency markers, no permission gates. Naming is inconsistent (verb_noun mostly present but some tools like 'listCapabilities' use camelCase). No evidence of pagination, rate limiting, or recovery patterns. This server appears to be a proof-of-concept rather than production-grade.
Append an event to the audit log
Deny approval for a draft
Publish a draft to LinkedIn
Get details about a specific approval
Get details about a specific claim
Get all evidence supporting a specific claim
Get details about a specific draft
Get the current state of a specific feature control
Get the current LinkedIn profile data
Missing input schemas for 24 of 34 tools. Cannot verify parameter types, constraints, or required fields. Tools like listCapabilities, listFeatureControls, listSources, listDrafts, listPublications, listApprovals, listObservations, getProfile, readinessReport, workbenchSummary have no visible schema definitions.
Descriptions are uniformly minimal (10-30 characters). Baseline for production tools is 50-200 chars. Examples: 'List all capabilities and their current status' (47 chars), 'Get the current state of a specific feature control' (51 chars). Descriptions lack WHEN to use, prerequisites, or recovery guidance. LLMs cannot reliably select tools with such sparse documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
Get details about a specific evidence source
Grant approval for a draft
Import observations from external sources
List all pending approvals
List all capabilities and their current status
List all claims with optional filtering
List all content drafts
List all feature controls and their current state
List observations from profile snapshots
List all publications and their status
List all evidence sources and their configuration
Propose a new claim for the evidence ledger
Query the audit log for events
Get a readiness report for publishing
Register a new evidence source
Reject a claim
Request approval for a draft
Verify that a capability is available and enabled
Restrict or disable an evidence source
Change the state of a draft
Enable or disable a feature control
Update a section of the LinkedIn profile
Mark a claim as verified
Get a summary of the current workbench state
Create or update a content draft
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields. For example, getClaim returns claim details but no schema shows what fields are present (id, statement, status, evidence_count, etc.). This forces LLMs to guess field names.
Irreversible operations (executePublication, verifyClaim, rejectClaim) lack confirmation/dry-run patterns. No error guidance for recovery. Agents can publish drafts or verify claims without safeguards, risking unintended LinkedIn profile changes.
No pagination support visible. List tools (listCapabilities, listClaims, listDrafts, etc.) have no limit, offset, or cursor parameters. Returning unbounded results risks context window exhaustion and degraded LLM reasoning.