@dodopayments/opencode-plugin 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mcp.json +4 -14
- package/README.md +33 -19
- package/mcp.json +13 -0
- package/opencode-plugin/README.md +3 -3
- package/opencode-plugin/index.js +9 -7
- package/package.json +3 -2
package/.mcp.json
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"dodopayments-api": {
|
|
4
|
-
"type": "
|
|
5
|
-
"
|
|
6
|
-
"args": [
|
|
7
|
-
"-y",
|
|
8
|
-
"mcp-remote@latest",
|
|
9
|
-
"https://mcp.dodopayments.com/mcp"
|
|
10
|
-
],
|
|
4
|
+
"type": "http",
|
|
5
|
+
"url": "https://mcp.dodopayments.com/mcp",
|
|
11
6
|
"enabled": true
|
|
12
7
|
},
|
|
13
8
|
"dodo-knowledge": {
|
|
14
|
-
"type": "
|
|
15
|
-
"
|
|
16
|
-
"args": [
|
|
17
|
-
"-y",
|
|
18
|
-
"mcp-remote@latest",
|
|
19
|
-
"https://knowledge.dodopayments.com/mcp"
|
|
20
|
-
],
|
|
9
|
+
"type": "http",
|
|
10
|
+
"url": "https://knowledge.dodopayments.com/mcp",
|
|
21
11
|
"enabled": true
|
|
22
12
|
}
|
|
23
13
|
}
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/@dodopayments/opencode-plugin)
|
|
6
6
|
[](https://discord.gg/bYqAp4ayYh)
|
|
7
7
|
|
|
8
|
-
The official Dodo Payments plugin for AI coding agents. Installs
|
|
8
|
+
The official Dodo Payments plugin for AI coding agents. Installs the Dodo Payments integration skills and two MCP servers across **Claude Code**, **Codex CLI**, **Cursor**, **VS Code / GitHub Copilot**, **Grok Build**, **Meta Muse Code**, **Gemini CLI**, **Antigravity**, **Junie**, **OpenCode**, and more, from a single source of truth.
|
|
9
9
|
|
|
10
10
|
This plugin conforms to the [Agent Plugins 1.0.0](https://agent-plugins.org/specification) specification: a root [`plugin.json`](./plugin.json), skills as immediate children of [`skills/`](./skills), and MCP servers in [`mcp.json`](./mcp.json). Clients with native Agent Plugins support load it directly; the provider-specific manifests in this repo are generated compatibility shims for clients that do not.
|
|
11
11
|
|
|
@@ -13,10 +13,28 @@ This plugin conforms to the [Agent Plugins 1.0.0](https://agent-plugins.org/spec
|
|
|
13
13
|
|
|
14
14
|
- **Dodo Payments API MCP server** - Live API access (payments, subscriptions, customers, products, refunds, licenses, usage). Authenticates via browser OAuth, no local credentials required.
|
|
15
15
|
- **Dodo Knowledge MCP server** - No credentials. Semantic search over the current Dodo Payments documentation.
|
|
16
|
-
- **
|
|
16
|
+
- **Agent skills** - Integration guides (listed [below](#included-skills)), written as `SKILL.md` files with YAML frontmatter. Your agent loads the relevant skill on its own when a task calls for it.
|
|
17
17
|
|
|
18
18
|
## Install
|
|
19
19
|
|
|
20
|
+
| Client | Skills | MCP | How |
|
|
21
|
+
|---|---|---|---|
|
|
22
|
+
| Claude Code | ✅ | ✅ | [Marketplace](#claude-code) |
|
|
23
|
+
| Codex CLI / ChatGPT | ✅ | ✅ | [Marketplace](#codex-cli) |
|
|
24
|
+
| Cursor (and Grok Bot) | ✅ | ✅ | [Clone](#cursor) |
|
|
25
|
+
| VS Code / GitHub Copilot | ✅ | ✅ | [Plugins view](#vs-code--github-copilot) · [Copilot CLI](./docs/clients/more-clients.md) |
|
|
26
|
+
| Grok Build | ✅ | ✅ | [`grok plugin install`](./docs/clients/grok.md) |
|
|
27
|
+
| grok.com, xAI API | — | ✅ | [Connector / API tool](./docs/clients/grok.md) |
|
|
28
|
+
| Meta Muse Code | ✅ | ✅ | [`muse plugins install`](./docs/clients/muse.md) |
|
|
29
|
+
| Gemini CLI | ✅ | ✅ | [Extension](#gemini-cli) |
|
|
30
|
+
| Google Antigravity | ✅ | ✅ | [`agy plugin install`](./docs/clients/antigravity-and-junie.md#antigravity) |
|
|
31
|
+
| JetBrains Junie | ✅ | ✅ | [Extension](./docs/clients/antigravity-and-junie.md#junie) |
|
|
32
|
+
| Kiro | ✅ | ✅ | [Power](#kiro) |
|
|
33
|
+
| OpenCode | ✅ | ✅ | [npm](#opencode) |
|
|
34
|
+
| Qwen Code, Devin, Goose, Factory Droid, Augment, OpenHands, OpenClaw, Hermes | ✅ | ✅ | [More clients](./docs/clients/more-clients.md) |
|
|
35
|
+
| Cline, Kilo, Zed, Warp, Amp, Continue, Kimi, … | ✅ | ✅ | [`npx skills` + `npx add-mcp`](./docs/clients/more-clients.md#skills-and-mcp-separately) |
|
|
36
|
+
| Claude.ai, ChatGPT, Perplexity, Mistral | — | ✅ | [Custom connector](./docs/clients/more-clients.md#mcp-only-assistants) |
|
|
37
|
+
|
|
20
38
|
### Claude Code
|
|
21
39
|
|
|
22
40
|
```bash
|
|
@@ -75,16 +93,13 @@ git clone https://github.com/dodopayments/dodo-agent-plugin.git
|
|
|
75
93
|
|
|
76
94
|
Point Kiro at the cloned folder. Skills load from `skills/`, MCP servers from `mcp.json`, and Kiro-specific presentation comes from the `dev.kiro` extension namespace in `plugin.json`.
|
|
77
95
|
|
|
78
|
-
### Gemini CLI
|
|
79
|
-
|
|
80
|
-
Gemini CLI has no agent-skill primitive, so **only the two MCP servers are available** - the seventeen skills are not. `dodo-knowledge` still covers a good share of what the skills provide, and it stays current automatically.
|
|
96
|
+
### Gemini CLI
|
|
81
97
|
|
|
82
98
|
```bash
|
|
83
|
-
|
|
84
|
-
~/.gemini/extensions/dodopayments
|
|
99
|
+
gemini extensions install https://github.com/dodopayments/dodo-agent-plugin
|
|
85
100
|
```
|
|
86
101
|
|
|
87
|
-
|
|
102
|
+
`gemini-extension.json` at the repo root is the manifest, and Gemini auto-discovers the `skills/` directory next to it. Verified on Gemini CLI 0.63.0: `gemini skills list` shows every skill and `gemini mcp list` shows both servers.
|
|
88
103
|
|
|
89
104
|
### VS Code / GitHub Copilot
|
|
90
105
|
|
|
@@ -94,7 +109,7 @@ git clone https://github.com/dodopayments/dodo-agent-plugin.git
|
|
|
94
109
|
|
|
95
110
|
Then open the Chat view, go to **Plugins**, and add the cloned folder. Skills load from `skills/`, and both MCP servers load from `.mcp.json`.
|
|
96
111
|
|
|
97
|
-
> VS Code 1.125.1 does not key off the Agent Plugins `$schema` - the string appears nowhere in its bundle. Its loader picks a manifest by probing, in order, `.plugin/plugin.json`, then `.claude-plugin/plugin.json`, then a root `plugin.json`, and defaults MCP to `.mcp.json` rather than `mcp.json`. Because this repo ships a generated `.claude-plugin/plugin.json`, VS Code loads it through that branch. Everything works -
|
|
112
|
+
> VS Code 1.125.1 does not key off the Agent Plugins `$schema` - the string appears nowhere in its bundle. Its loader picks a manifest by probing, in order, `.plugin/plugin.json`, then `.claude-plugin/plugin.json`, then a root `plugin.json`, and defaults MCP to `.mcp.json` rather than `mcp.json`. Because this repo ships a generated `.claude-plugin/plugin.json`, VS Code loads it through that branch. Everything works - all skills and both MCP servers - via the compatibility manifests rather than the spec ones.
|
|
98
113
|
|
|
99
114
|
### OpenCode
|
|
100
115
|
|
|
@@ -107,7 +122,7 @@ OpenCode distributes via npm. Add the plugin to your `opencode.json`:
|
|
|
107
122
|
}
|
|
108
123
|
```
|
|
109
124
|
|
|
110
|
-
Restart OpenCode. Both MCP servers (`dodopayments-api`, `dodo-knowledge`) are registered automatically via the plugin's `config` hook. No manual `mcp` block required.
|
|
125
|
+
Restart OpenCode. Both MCP servers (`dodopayments-api`, `dodo-knowledge`) are registered automatically via the plugin's `config` hook as native remote servers. No manual `mcp` block required. Run `opencode mcp auth dodopayments-api` to sign in to the API server.
|
|
111
126
|
|
|
112
127
|
**Skills need the package installed locally plus one extra line.** OpenCode does not scan installed packages for skills, so point it at the package's `skills/` directory yourself. `skills.paths` entries resolve against the project directory, so the package must be present in the project's `node_modules` - OpenCode's own plugin cache is not the same location:
|
|
113
128
|
|
|
@@ -127,7 +142,7 @@ npm install --save-dev @dodopayments/opencode-plugin
|
|
|
127
142
|
|
|
128
143
|
An absolute path works too, and avoids the local-install requirement.
|
|
129
144
|
|
|
130
|
-
Verify with `opencode run "List every skill available to you by name."` - you should see
|
|
145
|
+
Verify with `opencode run "List every skill available to you by name."` - you should see every skill listed under [Included Skills](#included-skills). A skills path that does not exist is ignored silently, so check rather than assume.
|
|
131
146
|
|
|
132
147
|
> Versions before 0.5.0 documented these skills as auto-discovered. They were not: nothing in OpenCode scans an installed package, so OpenCode users had MCP servers but no skills. Setting `config.skills` from the plugin's `config` hook does not fix this either - the skill index is built before `config` hooks run, so it never registers anything.
|
|
133
148
|
|
|
@@ -209,7 +224,7 @@ Skills source: [`dodopayments/skills`](https://github.com/dodopayments/skills),
|
|
|
209
224
|
| `dodopayments-api` | Live API access (payments, subscriptions, customers, products, refunds, licenses, usage) | OAuth (browser) |
|
|
210
225
|
| `dodo-knowledge` | Semantic search over the Dodo Payments documentation | None |
|
|
211
226
|
|
|
212
|
-
Both servers speak Streamable HTTP
|
|
227
|
+
Both servers speak Streamable HTTP over HTTPS, and every manifest dials them natively - no `npx mcp-remote` bridge and no Node dependency. The canonical `mcp.json` uses the spec's `type: "streamable-http"`; the generated `.mcp.json` (Claude Code, Cursor, VS Code, Grok Build, Devin, Goose, Droid) uses the same endpoints spelled `type: "http"`, the name that dialect uses; Muse, Antigravity, Junie and Gemini get their own spellings from the generator.
|
|
213
228
|
|
|
214
229
|
## Configure (optional, Claude Code)
|
|
215
230
|
|
|
@@ -269,9 +284,8 @@ These clients load MCPs from the static `.mcp.json` shipped with the plugin. To
|
|
|
269
284
|
{
|
|
270
285
|
"mcpServers": {
|
|
271
286
|
"dodopayments-api": {
|
|
272
|
-
"type": "
|
|
273
|
-
"
|
|
274
|
-
"args": ["-y", "mcp-remote@latest", "https://mcp.dodopayments.com/mcp"],
|
|
287
|
+
"type": "http",
|
|
288
|
+
"url": "https://mcp.dodopayments.com/mcp",
|
|
275
289
|
"enabled": false
|
|
276
290
|
}
|
|
277
291
|
}
|
|
@@ -327,9 +341,9 @@ npm run verify # generated artifacts in sync + Agent Plugins conformance
|
|
|
327
341
|
|---|---|
|
|
328
342
|
| `plugin.json` | **Canonical.** Agent Plugins v1.0.0 manifest and the version source of truth |
|
|
329
343
|
| `mcp.json` | **Canonical.** Agent Plugins v1.0.0 MCP config |
|
|
330
|
-
| `skills/` | **Canonical.**
|
|
344
|
+
| `skills/` | **Canonical.** Skills, vendored as real files; the declared set lives in `.skills-source.json` |
|
|
331
345
|
| `overlays/*.json` | Hand-authored provider extras the closed spec schema cannot express |
|
|
332
|
-
| `.claude-plugin/`, `.cursor-plugin/`, `.agents/`, `.mcp.json`, `plugins/dodopayments/` | **Generated.** Do not hand-edit - run `npm run build` |
|
|
346
|
+
| `.claude-plugin/`, `.cursor-plugin/`, `.codex-plugin/`, `.muse-plugin/`, `.agents/`, `.mcp.json`, `gemini-extension.json`, `plugins/dodopayments/`, `providers/` | **Generated.** Do not hand-edit - run `npm run build` |
|
|
333
347
|
| `scripts/build.mjs` | The single generator (`--check` for drift) |
|
|
334
348
|
| `scripts/conformance.mjs` | Agent Plugins conformance validator |
|
|
335
349
|
| `.skills-source.json` | Upstream provenance for the vendored skills |
|
|
@@ -343,7 +357,7 @@ The repo is configured to publish the OpenCode npm package on every GitHub Relea
|
|
|
343
357
|
**One-time setup (already done for this repo):**
|
|
344
358
|
|
|
345
359
|
- npm scope `@dodopayments` exists and is owned by Dodo Payments.
|
|
346
|
-
-
|
|
360
|
+
- npm Trusted Publishing (OIDC) is configured for `@dodopayments/opencode-plugin` against `publish-opencode.yml`. No npm token is stored in the repo.
|
|
347
361
|
|
|
348
362
|
**Release workflow:**
|
|
349
363
|
|
|
@@ -358,7 +372,7 @@ The repo is configured to publish the OpenCode npm package on every GitHub Relea
|
|
|
358
372
|
|
|
359
373
|
**CI checks:**
|
|
360
374
|
|
|
361
|
-
- `Verify` runs on every pull request and push to `main`: artifact drift, Agent Plugins conformance, live JSON Schema validation,
|
|
375
|
+
- `Verify` runs on every pull request and push to `main`: artifact drift, Agent Plugins conformance, live JSON Schema validation, an "every declared skill, zero symlinks" assertion, per-client manifest checks (Muse, Antigravity, Junie, Gemini), and an npm payload check.
|
|
362
376
|
- The release workflow re-runs the same gates before publishing.
|
|
363
377
|
|
|
364
378
|
## Resources
|
package/mcp.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
|
|
3
|
+
"mcpServers": {
|
|
4
|
+
"dodopayments-api": {
|
|
5
|
+
"type": "streamable-http",
|
|
6
|
+
"url": "https://mcp.dodopayments.com/mcp"
|
|
7
|
+
},
|
|
8
|
+
"dodo-knowledge": {
|
|
9
|
+
"type": "streamable-http",
|
|
10
|
+
"url": "https://knowledge.dodopayments.com/mcp"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @dodopayments/opencode-plugin
|
|
2
2
|
|
|
3
|
-
Official OpenCode plugin for Dodo Payments. Ships
|
|
3
|
+
Official OpenCode plugin for Dodo Payments. Ships the Dodo Payments integration skills and auto-registers two MCP servers.
|
|
4
4
|
|
|
5
5
|
This package is part of [`dodopayments/dodo-agent-plugin`](https://github.com/dodopayments/dodo-agent-plugin) - the universal Dodo Payments plugin that also installs into Claude Code, Codex, and Cursor.
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ npm install --save-dev @dodopayments/opencode-plugin
|
|
|
25
25
|
Restart OpenCode.
|
|
26
26
|
|
|
27
27
|
- Both MCP servers are registered automatically via the plugin's `config` hook.
|
|
28
|
-
- The `skills.paths` entry is what makes the
|
|
28
|
+
- The `skills.paths` entry is what makes the skills visible - OpenCode does not scan installed packages for skills. The path resolves against the **project** directory, not OpenCode's plugin cache, which is why the local install above is required. An absolute path works too and avoids that requirement.
|
|
29
29
|
- The plugin module exports only its default function. OpenCode's loader throws `Plugin export is not a function` on any non-function named export, skips the plugin, and swallows the error - leaving you with no MCP servers. Verified on OpenCode 1.18.15.
|
|
30
30
|
- The first call to `dodopayments-api` opens a browser for OAuth. `dodo-knowledge` needs no auth.
|
|
31
31
|
|
|
@@ -37,7 +37,7 @@ opencode run "List every skill available to you by name."
|
|
|
37
37
|
|
|
38
38
|
## What you get
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
Agent skills (auto-loaded when relevant): `dodo-best-practices`, `framework-adapters`, `testing-and-go-live`, `checkout-integration`, `subscription-integration`, `mobile-checkout`, `webhook-integration`, `credit-based-billing`, `usage-based-billing`, `license-keys`, `product-catalog-management`, `discounts-and-promotions`, `localized-pricing`, `customer-management`, `refunds-and-disputes`, `billing-sdk`, `better-auth-integration`.
|
|
41
41
|
|
|
42
42
|
Two MCP servers (registered automatically):
|
|
43
43
|
|
package/opencode-plugin/index.js
CHANGED
|
@@ -30,19 +30,21 @@
|
|
|
30
30
|
//
|
|
31
31
|
// The endpoint URLs below MUST match the canonical mcp.json. This file is
|
|
32
32
|
// hand-written rather than generated - OpenCode's config shape is its own
|
|
33
|
-
// (`type: "
|
|
33
|
+
// (`type: "remote"`, `url`) - so `build.mjs --check` cannot cover
|
|
34
34
|
// it. `scripts/conformance.mjs` asserts the URL sets are identical instead.
|
|
35
|
-
//
|
|
36
|
-
//
|
|
35
|
+
// `type: "remote"` is OpenCode's native Streamable HTTP transport; OpenCode
|
|
36
|
+
// runs OAuth discovery itself. Verified on 1.18.34 from a project-level
|
|
37
|
+
// opencode.json with these exact entries: dodo-knowledge connects, and
|
|
38
|
+
// dodopayments-api reports "needs authentication" (`opencode mcp auth`).
|
|
37
39
|
const DODO_MCP_SERVERS = {
|
|
38
40
|
"dodopayments-api": {
|
|
39
|
-
type: "
|
|
40
|
-
|
|
41
|
+
type: "remote",
|
|
42
|
+
url: "https://mcp.dodopayments.com/mcp",
|
|
41
43
|
enabled: true,
|
|
42
44
|
},
|
|
43
45
|
"dodo-knowledge": {
|
|
44
|
-
type: "
|
|
45
|
-
|
|
46
|
+
type: "remote",
|
|
47
|
+
url: "https://knowledge.dodopayments.com/mcp",
|
|
46
48
|
enabled: true,
|
|
47
49
|
},
|
|
48
50
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dodopayments/opencode-plugin",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Dodo Payments skills and MCP
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "Dodo Payments agent skills and MCP servers for OpenCode.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "opencode-plugin/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"opencode-plugin/",
|
|
12
12
|
"skills/",
|
|
13
|
+
"mcp.json",
|
|
13
14
|
".mcp.json",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|