Skip to content

Prepare Screenly MCP for Claude Desktop marketplace listing - #304

Open
salmanfarisvp wants to merge 2 commits into
Screenly:masterfrom
salmanfarisvp:feat/mcp-annotations-and-mcpb-bundle
Open

Prepare Screenly MCP for Claude Desktop marketplace listing#304
salmanfarisvp wants to merge 2 commits into
Screenly:masterfrom
salmanfarisvp:feat/mcp-annotations-and-mcpb-bundle

Conversation

@salmanfarisvp

Copy link
Copy Markdown
Member

Summary

Unblocks Anthropic Claude Desktop marketplace submission by finishing the remaining MCP listing prerequisites, and fixes a stdio bug that would have failed review on first launch.

  • Tool annotations on all 33 MCP tools (title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint) so clients can distinguish read-only vs destructive actions
  • MCPB Desktop Extension packaging (mcpb/manifest.json + mcpb/README.md with privacy policy) and a release workflow step that builds screenly-cli-<target>.mcpb for macOS and Windows, injecting the version from the git tag
  • Fix MCP stdout contamination by enabling simple_logger's stderr feature — log lines were previously interleaved with JSON-RPC on stdout and caused Claude Desktop to fail with Unexpected non-whitespace character after JSON at position 4
  • Docs updated for .mcpb install path, tool annotations, and stderr logging behaviour

Changes

Area Files
Annotations src/mcp/server.rs — all 33 tools
MCPB bundle mcpb/manifest.json, mcpb/README.md
Release packaging .github/workflows/release.yml
Stdout fix Cargo.toml (simple_logger + stderr)
Docs README.md, .gitignore (*.mcpb)

Test plan

  • cargo check --all-targets
  • cargo fmt --check
  • cargo test (190 passed)
  • Local .mcpb pack with @anthropic-ai/mcpb — manifest schema validation passed; executable bit preserved
  • Confirmed stdout is pure JSON-RPC after the stderr logging fix; logs go to stderr only
  • Confirmed tools/list returns annotations for all 33 tools (12 read-only, 8 destructive)
  • Installed screenly-cli-aarch64-apple-darwin.mcpb in Claude Desktop locally — connects successfully with API token; tools work
  • Review release.yml MCP Bundle step for macOS/Windows matrix targets
  • After merge + tagged release, verify .mcpb artifacts attach to the GitHub release

Add tool annotations, an MCPB bundle manifest, release packaging for
desktop platforms, and route logger output to stderr so the MCP stdio
JSON-RPC stream stays clean.
@salmanfarisvp

Copy link
Copy Markdown
Member Author

Tested with the local build and working fine as expected

image

and different commands
image

image

Fork pull_request runs do not receive repository secrets, so
SCREENLY_API_TOKEN is empty and `screen list` fails auth. The job also
uses screenly/cli@master, so it never exercises the PR's own code.
@vpetersson

Copy link
Copy Markdown
Contributor

Love it!

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@salmanfarisvp

Copy link
Copy Markdown
Member Author

@renatgalimov, could you please request a review from Copilot?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants