Skip to content

feat: prepare Claude and Codex plugins for the OpenAI directory - #668

Merged
Zach Dunn (zachdunn) merged 4 commits into
mainfrom
feat/openai-plugin-listing
Aug 14, 2026
Merged

feat: prepare Claude and Codex plugins for the OpenAI directory#668
Zach Dunn (zachdunn) merged 4 commits into
mainfrom
feat/openai-plugin-listing

Conversation

@zachdunn

@zachdunn Zach Dunn (zachdunn) commented Aug 14, 2026

Copy link
Copy Markdown
Member

In plain terms

The Claude and Codex plugins can now be packaged the way OpenAI's directory expects. The repo already had a marketplace catalog; it was missing a plugin manifest, listing mark, MCP tool safety/auth metadata, and the domain-verification endpoint. This PR adds those so we can submit once identity verification lands.

uploads.sh pixel chevron plugin mark

What it does / what it is not

  • Adds .claude-plugin/plugin.json next to the existing marketplace.json (catalog vs plugin). Drops strict: false now that the manifest exists.
  • Wires the Codex plugin to the hosted MCP at https://agents.uploads.sh/mcp and fills in listing fields (privacy, terms, starter prompts, brand color).
  • Uses the site favicon chevron as assets/logo.png (512×512) for logo / composerIcon.
  • Advertises readOnlyHint / destructiveHint / openWorldHint and OAuth securitySchemes on every MCP tool. A token missing the required scope now returns _meta["mcp/www_authenticate"] so ChatGPT can re-consent. Connection-level HTTP 401 is unchanged.
  • Serves GET /.well-known/openai-apps-challenge from the MCP worker. Unset or blank secret → 404. Set OPENAI_APPS_CHALLENGE and deploy when the portal issues a token.
  • Puts an MCP vs CLI routing table at the top of github-screenshots and uploads-cli. Hosts without a shell (ChatGPT) are told to call hosted put instead of uploads attach ./shot.png.
  • Does not submit the plugin, rewrite the rest of the skills, add CIMD / UserInfo, or assemble reviewer test cases.

How to try it

Claude:

/plugin marketplace add buildinternet/uploads
/plugin install uploads@uploads

Domain challenge (after the MCP worker is deployed with the secret):

curl -i https://agents.uploads.sh/.well-known/openai-apps-challenge

Technical notes

Tool auth policy is declared as _meta.securitySchemes because @modelcontextprotocol/server has no first-class securitySchemes field; OpenAI's scanner reads that _meta key. Hosted comment advertises files:read (it only reads workspace data and posts via the GitHub App). Stdio health is noauth; hosted health is authenticated with no file scope.

Test plan

  • pnpm --filter @buildinternet/uploads exec vitest run test/mcp.test.ts
  • pnpm --filter @uploads/mcp exec vitest run
  • pnpm --filter @uploads/mcp typecheck
  • Routing tables sit at the top of skills/github-screenshots and skills/uploads-cli
  • Deploy MCP worker and confirm the challenge route 404s until the secret is set, then returns the token as text/plain
  • OpenAI portal scan after identity verification

Add a real plugin.json next to the existing marketplace catalog, ship the
pixel chevron as the listing mark, advertise MCP tool safety hints and
OAuth security schemes, and serve the OpenAI domain-verification challenge.
@changeset-bot

changeset-bot Bot commented Aug 14, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 939d4f7

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@buildinternet/uploads Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@uploads-sh

uploads-sh Bot commented Aug 14, 2026

Copy link
Copy Markdown

logo.png

Maintained by uploads.sh — re-uploading a file with the same name updates it everywhere it is embedded.
Add media: uploads put <file> --pr <N> --comment (or --issue <N>) · docs

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one) (2)
  • coderabbit:review
  • review
🚫 Excluded labels (none allowed) (1)
  • wip

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f430bb93-4208-48f8-b0d6-1209029ecd3c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
uploads-web 48f1176 Commit Preview URL

Branch Preview URL
Aug 14 2026, 03:49 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
uploads-auth 48f1176 Commit Preview URL

Branch Preview URL
Aug 14 2026, 03:47 PM

Short description is now 30 characters or fewer, support and category
are set, skills and MCP use the root paths the portal validates, and
reviewer test cases plus annotation justifications live next to the
Codex plugin.
Put the MCP vs CLI decision at the top of github-screenshots and
uploads-cli so hosts without a shell do not try to run uploads attach.
oxc/no-async-endpoint-handlers assumes Express 4, which does not await
route handlers. This repo is Hono on Workers, so the diagnostic is a
false positive on MCP auth middleware.
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.

1 participant