Without -y, npx prompts 'Ok to proceed? (y)' on first install of a
package, which hangs the stdio MCP connection (no TTY to answer).
Keeping version unpinned (auto-latest) — currently pulls 1.3.1 which
has the interact/annotation capabilities. Tested end-to-end via
'claude --plugin-dir pdf-viewer/'.
Plugin name: pdf → pdf-viewer
- 'Viewer' makes the interactive/visual modality self-evident
- Naturally explains why NOT to use for summarization
- Matches enterprise-search precedent (capability-named, not job-function)
Skill name: pdf → view-pdf
- Verb-noun matches repo convention (review-contract, triage-nda)
Trigger description (SKILL.md frontmatter):
- Hybrid style: situation framing + verb list for keyword matching
- Includes 'open, show, view' so bare 'open this PDF' triggers the
skill — SKILL body then disambiguates viewer vs Read
- Keeps 'Not for summarization (use Read)' guard
Marketplace/plugin.json description:
- Marketing-oriented (benefits-first) to match other plugins' style
- 'View, annotate, sign... Mark up contracts, fill forms with visual
feedback, stamp approvals, place signatures — download annotated copy'
Updated all /pdf:* cross-references → /pdf-viewer:*
Accuracy:
- list_pdfs: 'remote origins' → 'local directories' (server has no
remote allowlist, any HTTPS works)
- get_screenshot: 'PNG' → 'image' (server returns JPEG)
- Supported sources: clarify only arXiv auto-converts /abs/→PDF;
others need direct PDF URLs
Conventions (matching legal/, productivity/ patterns):
- Add argument-hint frontmatter to all 4 commands
- Add CONNECTORS.md callout to all commands
Positioning — form filling:
- Emphasize this is VISUAL form filling (vs programmatic tools)
- Document the unnamed-field workflow: screenshot → match bounding
boxes to visual labels → fill by name. Many real PDFs have fields
named 'Text1', 'Field_7' with labels only on the rendered page.
- User gets live feedback and can edit directly in viewer
The underlying @modelcontextprotocol/server-pdf gained an `interact`
tool with 10 annotation types (highlight, underline, strikethrough,
note, rectangle, circle, line, freetext, stamp, image), form filling,
auto-highlight-text, page extraction, and annotated-PDF download.
This reshapes the plugin around interactive workflows:
- Rename plugin: pdf-research → pdf
- Rename skill: pdf-reading → pdf (unified, covers all capabilities)
- Commands: drop /summarize, rename /read → /open, add /annotate,
/fill-form, /sign
- SKILL.md: document interact tool, all annotation types, coordinate
system, interactive workflows (AI-driven annotate, form filling,
visual signing)
- Positioning: explicitly steer AWAY from viewer for pure ingestion
(use native Read instead) — the viewer's value is user interactivity
- /sign disclaimer: visual signature image, not certified digital sig
Out of scope (documented): summarization, cert signing, PDF generation.
First knowledge-work plugin to use a local stdio MCP server instead of
a remote HTTP connector. The pdf-server runs locally via npx and provides
interactive PDF viewing for academic papers and local files.
Tested end-to-end in Claude Code: plugin validation, MCP server connection,
tool availability (list_pdfs, display_pdf), and command/skill registration
all confirmed working.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Improve plugin customizer to support scoped and general customization
- Add three customization modes: scoped (specific section), generic
(template setup with ~~ placeholders), and general (tweaking existing)
- Add Phase 0 for gathering user intent before diving into customization
- Clarify MCP server type descriptions (SSE/HTTP transport labels)
- Document directory entries without URLs (name-based matching)
- Update component-schemas.md with consistent MCP terminology
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* remove note about 1p connectors
* Address PR review: keyword-style "use when" and default to placeholder track
Rewrite skill description's "use when" guidance as keyword phrases instead
of logical clauses for better matching. Default to generic plugin setup mode
when ~~placeholders exist, even if user requested scoped customization, to
prevent incomplete plugin configuration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Remove server type selection guide from component schemas
MCP server type details are unnecessary for plugin authors and add noise
to the reference doc.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Soften placeholder default rule to respect explicit user intent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Bump cowork-plugin-management version to 0.2.2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Add Cowork section with link to claude.com/plugins
- Update Claude Code commands to use current plugin marketplace syntax
- claude plugin marketplace add for adding marketplace
- claude plugin install for installing specific plugins