Rainbrand Skill and Agent Plugin
Rainbrand is the brand layer for agents. It turns a brand's identity, guidance, and assets into shared context that agents and products can use and update as the brand evolves, alongside the tools where it is created and managed.
This repository maintains one optional Agent Skill and packages it with
Rainbrand's remote Model Context Protocol (MCP) connection as an
Agent Plugins 1.0 plugin. Both use
the identifier rainbrand.
The Rainbrand Skill teaches an agent when and how to use Rainbrand. A Brand Skill contains the context for one particular brand. Installing the standalone Skill supplies guidance; the plugin also declares the MCP connection. The client handles authentication.
Install
From this checkout, install the Skill in the current project:
npx skills add . --skill rainbrand
Prefer a project installation so the guidance is reviewable with the project.
Standalone Skill upload
The local dist/rainbrand.skill.zip contains the
canonical Skill as rainbrand/SKILL.md. Upload that archive through Claude's
Skill upload flow.
Portable plugin
Use this repository root as the plugin directory, or extract the local dist/rainbrand.plugin.zip. Load it in a client that supports Agent Plugins 1.0 and Streamable HTTP, then follow the client's OAuth sign-in flow.
The archive contains these files directly at its root:
plugin.json
mcp.json
assets/rainbrand-logo.png
skills/rainbrand/SKILL.md
README.md
CHANGELOG.md
LICENSE
Both manifests declare the Agent Plugins 1.0.0 schemas. mcp.json defines
one server named rainbrand with transport streamable-http and endpoint
https://mcp.rainbrand.com/mcp. The package contains no credentials.
assets/rainbrand-logo.png is the approved temporary white Rainbrand R on
black, used for both the OpenAI listing logo and composer icon.
Connect Rainbrand
For interactive work, connect https://mcp.rainbrand.com/mcp in an MCP client
that supports Streamable HTTP and OAuth. A plugin client reads that connection
from mcp.json; a standalone Skill installation needs it configured separately.
Complete Rainbrand sign-in, then let the client discover the live tools and
their schemas. The live tool list determines what the connected account can use.
For product information, support, and API integration guidance, use the Rainbrand website and FAQ. Before building an application or backend integration, obtain a current, verified Rainbrand API contract. Keep API keys in the application's secret store.
Provider compatibility
The portable package is a draft for client testing. Successful local validation does not establish acceptance by a provider or publication in its directory.
| Provider | Current path | Remaining gate |
|---|---|---|
| OpenAI | Import the portable ZIP and test the remote MCP connection in a supported client. The manifest includes listing copy and review cases. | Complete artwork, recording, ownership verification, reviewer access, client testing, and a new submission for the Rainbrand MCP origin. |
| Claude | Upload the standalone Skill ZIP and configure the remote MCP connection separately. | The portable plugin ZIP is not currently compatible with Claude's native plugin upload or directory format. |
| Cursor | Test the root Agent Plugins manifest from the existing public repository checkout. | Test installation from the public repository and submit its current URL through the marketplace portal. |
OpenAI's build and submission requirements are documented in Build plugins and Submit your plugin. Its review rules require a new submission when the MCP server origin changes; this migration must not update the previous submission's origin. Test the actual target client; importing this ZIP does not establish ChatGPT web availability.
Claude's native format requires .claude-plugin/plugin.json and .mcp.json
with transport http. Those root paths conflict with the portable
specification's requirement that client-specific files use a reverse-domain
top-level directory. This repository does not add an undocumented adapter or a
second maintained implementation. Reconcile those contracts before adding a
native adapter. At that point, also check Claude's archive rules: the repository
contains distribution ZIPs, and a native upload must not contain nested ZIPs.
See Claude plugin requirements, the
pre-submission checklist,
and directory publishing.
Cursor recognizes the root plugin.json; a separate .cursor-plugin/plugin.json
manifest is not required for this format. See
Cursor plugins and
marketplace submission.
Review and publication checklist
The manifest supplies five read-only positive cases and three negative cases
for OpenAI review. Tool names match the server's raw tools/list names:
list_brands, get_brand, get_account, list_workspaces, and check_credits.
A client may qualify them with the server name, for example
mcp__rainbrand__list_brands.
Prepare a dedicated reviewer account with a sample Stripe brand. Run the
positive cases in order in the same conversation: the first case supplies the
Stripe Brand session ID for get_brand, and the workspace case supplies the
personal workspace_id for check_credits. The personal-credit case expects
only check_credits. The exchange-rate, Tokyo weather, and arithmetic cases
must invoke no Rainbrand tools; the arithmetic answer is 42. Live connection,
discovery, and calls to all five tools have passed. The walkthrough exercises
all eight exact prompts with the dedicated reviewer account and Stripe brand.
Put reviewer credentials and private instructions in the provider's review
portal, never in this repository.
Before public submission:
- The manifest includes
demo_recording_urlpointing to the Rainbrand walkthrough, published with the release. - If OpenAI issues a new ownership challenge, serve the exact plain-text token from the portal at the eligible Rainbrand HTTPS origin. Do not reuse an old challenge token.
- Check public website, support, and legal pages for the completed Rainbrand rollout. Reachable pages alone do not establish that launch is complete.
- Complete each provider's client tests, review requirements, and submission process. Provider review determines whether these brand and design workflows are accepted; the portable format is not universal approval.
A later repository rename is optional housekeeping, not a submission gate. Release v1.1.2 includes both distribution ZIPs and the review walkthrough. Preserve every earlier tag, release, and asset unchanged. Use the current public repository URL in provider portals that require one.
Update or remove
npx skills update rainbrand
npx skills remove rainbrand
Add --global for a global installation.
Package and validate
The canonical source is skills/rainbrand/SKILL.md. Build both archives and
validate them in this order:
scripts/package-skill.sh
scripts/package-plugin.sh
scripts/validate-plugin.sh
Pass a ZIP path to scripts/validate-plugin.sh to validate another local copy
against this checkout. Check submission readiness separately:
scripts/validate-plugin.sh --submission
The draft package can pass ordinary validation while submission readiness fails for the missing approved artwork and recording metadata. Readiness validation does not replace the manual publication and provider checks above.
The scripts run offline with Bash 3.2 or later, POSIX awk, zip, Info-ZIP
unzip (including -Z), and standard shell utilities. They require no package
manager or additional language runtime.
Validation checks JSON types, duplicate and unsupported fields, schema identifiers, matching names, the exact MCP endpoint, and OpenAI metadata. The plugin version, Skill version, and latest numbered changelog release must agree. Archive checks cover integrity, exact members, regular file types, and byte-for-byte agreement with source files. Both builders fix timestamps and file modes so unchanged sources produce identical archives with the same ZIP tool version, including across time zones and umasks.
For packaging changes, run the optional regression suite:
python3 scripts/test-validation.py
These tests exercise malformed metadata, unsafe or mismatched archives, submission gates, and reproducible builds. Python 3 is required only for this test suite, not for package building or validation.