@lukoweb/apitogo 0.1.67 → 0.1.69
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/dist/cli/cli.js +552 -380
- package/dist/declarations/lib/plugins/openapi/processors/injectApitogoGatewayServer.d.ts +6 -0
- package/docs/components/playground.mdx +6 -8
- package/docs/components/slot.mdx +2 -2
- package/docs/concepts/auth-provider-api-identities.md +8 -12
- package/docs/configuration/ai-assistants.md +3 -3
- package/docs/configuration/api-catalog.md +4 -4
- package/docs/configuration/api-reference.md +11 -11
- package/docs/configuration/authentication-auth0.md +8 -1
- package/docs/configuration/authentication-azure-ad.md +8 -1
- package/docs/configuration/authentication-clerk.md +8 -1
- package/docs/configuration/authentication-firebase.md +8 -1
- package/docs/configuration/authentication-pingfederate.md +8 -1
- package/docs/configuration/authentication-supabase.md +10 -3
- package/docs/configuration/authentication.md +96 -195
- package/docs/configuration/build-configuration.mdx +2 -2
- package/docs/configuration/docs.md +10 -10
- package/docs/configuration/footer.mdx +84 -180
- package/docs/configuration/llms.md +1 -1
- package/docs/configuration/make-config.mdx +12 -5
- package/docs/configuration/manifest.md +4 -14
- package/docs/configuration/navigation.mdx +2 -2
- package/docs/configuration/overview.md +95 -310
- package/docs/configuration/protected-routes.md +3 -3
- package/docs/configuration/search.md +4 -3
- package/docs/configuration/site.md +5 -5
- package/docs/configuration/slots.mdx +1 -1
- package/docs/custom-plugins.md +1 -1
- package/docs/customization/colors-theme.mdx +8 -8
- package/docs/customization/fonts.md +4 -4
- package/docs/deploy/apitogo.md +18 -12
- package/docs/deploy/cloudflare-pages.md +0 -1
- package/docs/deploy/direct-upload.md +0 -1
- package/docs/deploy/github-pages.md +1 -2
- package/docs/deploy/vercel.md +2 -3
- package/docs/deployment.md +11 -10
- package/docs/extending/events.md +1 -1
- package/docs/guides/custom-pages.md +4 -8
- package/docs/guides/environment-variables.md +41 -49
- package/docs/guides/managing-api-keys-and-identities.md +40 -115
- package/docs/guides/navigation-rules.mdx +1 -1
- package/docs/guides/processors.mdx +2 -2
- package/docs/guides/transforming-examples.md +1 -1
- package/docs/markdown/code-blocks.md +2 -2
- package/docs/markdown/mdx.md +1 -1
- package/docs/mcp/go-live.md +100 -0
- package/docs/mcp/overview.md +76 -0
- package/docs/mcp/setup.md +173 -0
- package/docs/mcp/shape.md +76 -0
- package/docs/mcp/tools.md +102 -0
- package/docs/plugins.md +20 -1
- package/docs/quickstart.md +49 -54
- package/docs/writing.mdx +1 -1
- package/package.json +1 -1
- package/src/lib/authentication/components/ProductionUnlockPage.tsx +4 -5
- package/src/lib/plugins/openapi/processors/injectApitogoGatewayServer.ts +30 -0
- package/src/vite/plugin-api.ts +6 -1
- package/src/vite/plugin-config.ts +3 -0
- package/docs/guides/navigation-migration.md +0 -87
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Go live with MCP
|
|
3
|
+
description:
|
|
4
|
+
Publish an APIToGo developer portal — platform plans, secrets, publish_dev_portal, and verify.
|
|
5
|
+
sidebar_icon: rocket
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**Go live** publishes your shaped portal to APItoGo hosting, optionally deploys the backend, upserts
|
|
9
|
+
gateway plans, and verifies the live site.
|
|
10
|
+
|
|
11
|
+
## Before you publish
|
|
12
|
+
|
|
13
|
+
1. Confirm **gateway / API plans** in the manifest (or pass them in `apply_product_intent`). Do not
|
|
14
|
+
invent Free + Pro.
|
|
15
|
+
2. Save secrets in the site **`.env`** (never in chat):
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
APITOGO_CONFIG_AUTHENTICATION__OIDC__AUTHORITY=https://login.example.com
|
|
19
|
+
APITOGO_CONFIG_AUTHENTICATION__OIDC__CLIENT_ID=your-client-id
|
|
20
|
+
APITOGO_CONFIG_AUTHENTICATION__OIDC__CLIENT_SECRET=your-client-secret
|
|
21
|
+
# Only when you have paid project plans:
|
|
22
|
+
APITOGO_CONFIG_AUTHENTICATION__STRIPE__SECRET_KEY=sk_test_...
|
|
23
|
+
APITOGO_CONFIG_AUTHENTICATION__STRIPE__WEBHOOK_SECRET=whsec_...
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
3. Choose a **platform hosting** plan: **Free**, **Starter**, or **Professional**. Agents should
|
|
27
|
+
call `list_platform_plans` / explain `freeProjectsQuota` before you pick. Starter and Professional
|
|
28
|
+
use Stripe checkout (`checkoutUrl`).
|
|
29
|
+
|
|
30
|
+
## Happy path
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
apply_product_intent({ mode: "goLive", siteDirectory, platformPlan?, ... })
|
|
34
|
+
→ check_dev_portal_publish_readiness
|
|
35
|
+
→ ensure_platform_plan (if needed)
|
|
36
|
+
→ publish_dev_portal
|
|
37
|
+
→ verify_dev_portal_live
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
If status is `blocked`, fix the readiness checklist (missing secrets, plan, OpenAPI). Do not invent
|
|
41
|
+
credentials.
|
|
42
|
+
|
|
43
|
+
After success, register **`manualSteps.oidcRedirectUri`** in your IdP. When `stripeRequired` is true,
|
|
44
|
+
create a Stripe webhook at `manualSteps.stripeWebhookUrl` for the listed events.
|
|
45
|
+
|
|
46
|
+
Do not treat warm-pool URLs as live until publish / deploy / verify succeed.
|
|
47
|
+
|
|
48
|
+
## Granular go-live paths
|
|
49
|
+
|
|
50
|
+
### Portal-first
|
|
51
|
+
|
|
52
|
+
Docs and billing before the API backend:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
shape → publish_dev_portal → deploy_backend → sync_gateway_plans_from_manifest(syncActionsOnly: true)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Full-stack
|
|
59
|
+
|
|
60
|
+
Backend already healthy:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
shape → deploy_backend → publish_dev_portal(skipBackendRedeploy: true)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### CI one-shot
|
|
67
|
+
|
|
68
|
+
`bootstrap_dev_portal` provisions and deploys in one call (advanced).
|
|
69
|
+
|
|
70
|
+
## Platform plan vs API plans
|
|
71
|
+
|
|
72
|
+
| Kind | Meaning | How |
|
|
73
|
+
| ----------------- | -------------------------------------------- | ---------------------------- |
|
|
74
|
+
| Platform hosting | Free / Starter / Professional on APItoGo | `ensure_platform_plan` |
|
|
75
|
+
| Gateway / API | End-user SKUs and rate limits on `/pricing` | Manifest / intent `plans` |
|
|
76
|
+
|
|
77
|
+
## Publish behavior
|
|
78
|
+
|
|
79
|
+
- Unchanged healthy backend/site artifacts are reused unless you force redeploy.
|
|
80
|
+
- `publish_dev_portal` upserts gateway plans from the manifest; do **not** call
|
|
81
|
+
`sync_gateway_plans_from_manifest` before publish.
|
|
82
|
+
- After a post-publish `deploy_backend`, sync actions with
|
|
83
|
+
`sync_gateway_plans_from_manifest({ syncActionsOnly: true })`.
|
|
84
|
+
- Resume from `.apitogo/publish-state.json` or `resumeFromStep` if a previous publish stopped early.
|
|
85
|
+
|
|
86
|
+
## CLI deploy vs MCP publish
|
|
87
|
+
|
|
88
|
+
| Path | Use when |
|
|
89
|
+
| ---------------------------- | ----------------------------------------------------- |
|
|
90
|
+
| MCP `publish_dev_portal` | Full product go-live (plans, auth, hosting, verify) |
|
|
91
|
+
| CLI `apitogo deploy` | Build + deploy a site with a deployment token only |
|
|
92
|
+
|
|
93
|
+
See [Deploy with APIToGo CLI](../deploy/apitogo.md).
|
|
94
|
+
|
|
95
|
+
## Related
|
|
96
|
+
|
|
97
|
+
- [Shape](./shape.md)
|
|
98
|
+
- [Tools](./tools.md)
|
|
99
|
+
- [Authentication](../configuration/authentication.md)
|
|
100
|
+
- [Manifest](../configuration/manifest.md)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: MCP overview
|
|
3
|
+
description:
|
|
4
|
+
Use the APItoGo MCP server to scaffold, shape, and publish API products from an AI agent.
|
|
5
|
+
sidebar_icon: bot
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The **APItoGo MCP** server lets AI agents manage projects, developer portals, gateway plans, backend
|
|
9
|
+
deploy, and go-live. You can use MCP tools, edit site files yourself, or mix both.
|
|
10
|
+
|
|
11
|
+
**First time?** Install and wire the server in your agent →
|
|
12
|
+
**[Configure MCP in your agent](./setup.md)**. Then follow the [Quickstart](../quickstart.md).
|
|
13
|
+
|
|
14
|
+
## What you get
|
|
15
|
+
|
|
16
|
+
- Scaffold a local portal site (`create_dev_portal` / `apply_product_intent`)
|
|
17
|
+
- Shape OpenAPI, plans, branding, theme, and docs pages
|
|
18
|
+
- Publish to APItoGo hosting (`publish_dev_portal`) with platform plans **Free**, **Starter**, or
|
|
19
|
+
**Professional**
|
|
20
|
+
- Deploy backends and sync gateway actions after publish
|
|
21
|
+
|
|
22
|
+
Prefer **`apply_product_intent`** for “create / shape / go live” prompts. See [Shape](./shape.md) and
|
|
23
|
+
[Go live](./go-live.md).
|
|
24
|
+
|
|
25
|
+
## Prerequisites
|
|
26
|
+
|
|
27
|
+
### MCP host environment
|
|
28
|
+
|
|
29
|
+
| Variable | Required | Purpose |
|
|
30
|
+
| ----------------------- | -------- | ----------------- |
|
|
31
|
+
| `APITOGO_API_KEY_ID` | Yes | Platform API auth |
|
|
32
|
+
| `APITOGO_API_SECRET` | Yes | Platform API auth |
|
|
33
|
+
|
|
34
|
+
### Agent host
|
|
35
|
+
|
|
36
|
+
- Node.js 20+ (scaffold, build, preview)
|
|
37
|
+
- Network access to the npm registry during install/build
|
|
38
|
+
- OIDC credentials at publish time (site `.env` only — never in chat)
|
|
39
|
+
- Stripe secrets at publish only when you have **paid** project plans
|
|
40
|
+
|
|
41
|
+
## Changing your site
|
|
42
|
+
|
|
43
|
+
You choose how to edit the portal:
|
|
44
|
+
|
|
45
|
+
| Approach | When it helps |
|
|
46
|
+
| -------- | ------------- |
|
|
47
|
+
| **MCP tools** | Agent-driven changes; tools can wire navigation/config and run validation. See [Tools](./tools.md). |
|
|
48
|
+
| **Edit files directly** | Full control in your editor — `apitogo.config.json`, `pages/**`, `landing/LandingPage.tsx`, etc. |
|
|
49
|
+
|
|
50
|
+
Useful MCP tools (optional — not required):
|
|
51
|
+
|
|
52
|
+
| Change | Tool |
|
|
53
|
+
| ----------------------------------- | ------------------------------------------------ |
|
|
54
|
+
| Add / edit a docs page | `add_dev_portal_page` / `update_dev_portal_page` |
|
|
55
|
+
| OpenAPI | `set_dev_portal_openapi` |
|
|
56
|
+
| Plans, branding, backend, projectId | `update_dev_portal_manifest` |
|
|
57
|
+
| Theme | `set_dev_portal_theme` |
|
|
58
|
+
|
|
59
|
+
Home page content often lives in `landing/LandingPage.tsx`. Site footer can live under
|
|
60
|
+
`modules.landing.content.footer` in `apitogo.config.json`.
|
|
61
|
+
|
|
62
|
+
## Config model (local site)
|
|
63
|
+
|
|
64
|
+
| File | Role |
|
|
65
|
+
| --------------------- | ------------------------------------- |
|
|
66
|
+
| `apitogo.config.json` | Site, modules, plans, auth type, apis |
|
|
67
|
+
| `.env` | `VITE_*` + `APITOGO_CONFIG_*` secrets |
|
|
68
|
+
|
|
69
|
+
Details: [Manifest](../configuration/manifest.md).
|
|
70
|
+
|
|
71
|
+
## Next
|
|
72
|
+
|
|
73
|
+
- [Configure MCP](./setup.md)
|
|
74
|
+
- [Quickstart](../quickstart.md)
|
|
75
|
+
- [Shape](./shape.md) · [Go live](./go-live.md) · [Tools](./tools.md)
|
|
76
|
+
- CLI without an agent: see the footnote on [Quickstart](../quickstart.md#without-an-agent-cli)
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Configure MCP in your agent
|
|
3
|
+
description:
|
|
4
|
+
Install and wire the APItoGo MCP server in Cursor, Claude Desktop, Claude Code, Codex, and other
|
|
5
|
+
MCP hosts.
|
|
6
|
+
sidebar_icon: plug
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Connect **`@lukoweb/apitogo-mcp`** to your AI agent so it can shape and publish API products. The
|
|
10
|
+
server is the same everywhere; only the host config file changes.
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
- **Node.js 20+** on the machine that runs the agent (scaffold, build, preview)
|
|
15
|
+
- Platform API credentials from [apitogo.com](https://apitogo.com) (API key id + secret)
|
|
16
|
+
|
|
17
|
+
## Shared server definition
|
|
18
|
+
|
|
19
|
+
Every host launches the same stdio process:
|
|
20
|
+
|
|
21
|
+
| Field | Value |
|
|
22
|
+
| --------- | ------------------------------------------ |
|
|
23
|
+
| Command | `npx` |
|
|
24
|
+
| Args | `-y`, `@lukoweb/apitogo-mcp` |
|
|
25
|
+
| Env | `APITOGO_API_KEY_ID`, `APITOGO_API_SECRET` |
|
|
26
|
+
|
|
27
|
+
Optional env: `APITOGO_API_URL`, `APITOGO_DOC_TOOL_PATH` (local doc-tool for scaffold).
|
|
28
|
+
|
|
29
|
+
Never commit secrets. Prefer host env blocks or `${VAR}` expansion where the client supports it.
|
|
30
|
+
|
|
31
|
+
## Cursor
|
|
32
|
+
|
|
33
|
+
Add to `~/.cursor/mcp.json` (user) or `.cursor/mcp.json` (project):
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"mcpServers": {
|
|
38
|
+
"apitogo": {
|
|
39
|
+
"command": "npx",
|
|
40
|
+
"args": ["-y", "@lukoweb/apitogo-mcp"],
|
|
41
|
+
"env": {
|
|
42
|
+
"APITOGO_API_KEY_ID": "apk_...",
|
|
43
|
+
"APITOGO_API_SECRET": "..."
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Restart Cursor (or reload MCP). Confirm the **apitogo** server is connected in MCP settings.
|
|
51
|
+
|
|
52
|
+
### Optional: `apitogo-product` skill
|
|
53
|
+
|
|
54
|
+
So agents prefer `apply_product_intent` for create / go-live:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# From the apitogo-local-mcp repo (or after npm pack of the package that ships skills/)
|
|
58
|
+
mkdir -p ~/.cursor/skills
|
|
59
|
+
cp -R skills/apitogo-product ~/.cursor/skills/apitogo-product
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Or project-scoped under `.cursor/skills/apitogo-product`.
|
|
63
|
+
|
|
64
|
+
## Claude Desktop
|
|
65
|
+
|
|
66
|
+
Edit the Claude Desktop MCP config (same `mcpServers` shape as Cursor):
|
|
67
|
+
|
|
68
|
+
| OS | Path |
|
|
69
|
+
| ------- | ------------------------------------------------------------------------- |
|
|
70
|
+
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
|
|
71
|
+
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"mcpServers": {
|
|
76
|
+
"apitogo": {
|
|
77
|
+
"command": "npx",
|
|
78
|
+
"args": ["-y", "@lukoweb/apitogo-mcp"],
|
|
79
|
+
"env": {
|
|
80
|
+
"APITOGO_API_KEY_ID": "apk_...",
|
|
81
|
+
"APITOGO_API_SECRET": "..."
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Fully quit and reopen Claude Desktop after saving.
|
|
89
|
+
|
|
90
|
+
## Claude Code
|
|
91
|
+
|
|
92
|
+
**CLI (user scope — all projects):**
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
claude mcp add --scope user --env APITOGO_API_KEY_ID=apk_... --env APITOGO_API_SECRET=... \
|
|
96
|
+
apitogo -- npx -y @lukoweb/apitogo-mcp
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Project scope** (committed `.mcp.json` — use `${VAR}` for secrets):
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
claude mcp add --scope project --env APITOGO_API_KEY_ID=${APITOGO_API_KEY_ID} \
|
|
103
|
+
--env APITOGO_API_SECRET=${APITOGO_API_SECRET} \
|
|
104
|
+
apitogo -- npx -y @lukoweb/apitogo-mcp
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Or hand-edit `.mcp.json` in the project root:
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"mcpServers": {
|
|
112
|
+
"apitogo": {
|
|
113
|
+
"type": "stdio",
|
|
114
|
+
"command": "npx",
|
|
115
|
+
"args": ["-y", "@lukoweb/apitogo-mcp"],
|
|
116
|
+
"env": {
|
|
117
|
+
"APITOGO_API_KEY_ID": "${APITOGO_API_KEY_ID}",
|
|
118
|
+
"APITOGO_API_SECRET": "${APITOGO_API_SECRET}"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
User/local scope without a project file lives in `~/.claude.json`. Start a new Claude Code session
|
|
126
|
+
after changing config. Approve project-scoped servers when prompted.
|
|
127
|
+
|
|
128
|
+
## OpenAI Codex
|
|
129
|
+
|
|
130
|
+
Edit `~/.codex/config.toml` (or project `.codex/config.toml` in a trusted project). The key must be
|
|
131
|
+
`mcp_servers` (not `mcpServers`):
|
|
132
|
+
|
|
133
|
+
```toml
|
|
134
|
+
[mcp_servers.apitogo]
|
|
135
|
+
command = "npx"
|
|
136
|
+
args = ["-y", "@lukoweb/apitogo-mcp"]
|
|
137
|
+
|
|
138
|
+
[mcp_servers.apitogo.env]
|
|
139
|
+
APITOGO_API_KEY_ID = "apk_..."
|
|
140
|
+
APITOGO_API_SECRET = "..."
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
You can also use `codex mcp add` if your Codex version supports it, then confirm the TOML entry.
|
|
144
|
+
Restart Codex / open a new session. See [Codex MCP docs](https://developers.openai.com/codex/mcp).
|
|
145
|
+
|
|
146
|
+
## Other MCP hosts
|
|
147
|
+
|
|
148
|
+
Any client that supports **stdio** MCP can run APItoGo:
|
|
149
|
+
|
|
150
|
+
1. Set command `npx`, args `["-y", "@lukoweb/apitogo-mcp"]`
|
|
151
|
+
2. Pass `APITOGO_API_KEY_ID` and `APITOGO_API_SECRET` in the server env
|
|
152
|
+
3. Restart the host and confirm tools load
|
|
153
|
+
|
|
154
|
+
Examples: Windsurf, VS Code Copilot Chat MCP, custom MCP clients — follow that product’s “add stdio
|
|
155
|
+
server” UI and paste the same command/args/env.
|
|
156
|
+
|
|
157
|
+
## Verify
|
|
158
|
+
|
|
159
|
+
In a new agent chat:
|
|
160
|
+
|
|
161
|
+
1. Ask the agent to list APItoGo tools, or call **`whoami`**.
|
|
162
|
+
2. You should see platform tools such as `apply_product_intent`, `create_dev_portal`,
|
|
163
|
+
`publish_dev_portal`.
|
|
164
|
+
|
|
165
|
+
If the server fails to start: confirm Node 20+, that `npx -y @lukoweb/apitogo-mcp` works in a
|
|
166
|
+
terminal, and that the API key id/secret are correct.
|
|
167
|
+
|
|
168
|
+
## Next
|
|
169
|
+
|
|
170
|
+
- [Quickstart](../quickstart.md) — first shape prompt
|
|
171
|
+
- [Shape](./shape.md) — local portal iteration
|
|
172
|
+
- [Go live](./go-live.md) — publish
|
|
173
|
+
- [Tools](./tools.md) — catalog
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Shape with MCP
|
|
3
|
+
description:
|
|
4
|
+
Scaffold and customize a developer portal locally with apply_product_intent (mode shape).
|
|
5
|
+
sidebar_icon: pencil-ruler
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**Shape** means: create or update a local portal site (OpenAPI, plans, auth flags, public routes)
|
|
9
|
+
without publishing. You preview with `npm run dev`.
|
|
10
|
+
|
|
11
|
+
## Happy path
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
apply_product_intent({ mode: "shape", siteDirectory, backend?, openApi?, plans?, auth?, gatewayPolicies?, branding? })
|
|
15
|
+
→ scaffold if needed
|
|
16
|
+
→ wire OpenAPI / plans / auth / gateway.publicRoutes
|
|
17
|
+
→ you run npm run dev
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Example prompt:
|
|
21
|
+
|
|
22
|
+
> Create a portal in `./dev-portal` for my API in `./api` with Free (100/min) and Pro (1000/min);
|
|
23
|
+
> make `/health` public.
|
|
24
|
+
|
|
25
|
+
Never invent Free + Pro gateway plans unless you ask for them. Never put OIDC or Stripe secrets in
|
|
26
|
+
chat.
|
|
27
|
+
|
|
28
|
+
## Scaffold only
|
|
29
|
+
|
|
30
|
+
If you only want an empty site:
|
|
31
|
+
|
|
32
|
+
> Create a dev portal in `./dev-portal-site`.
|
|
33
|
+
|
|
34
|
+
The agent should call **`create_dev_portal`** (or `apply_product_intent` with shape when you also
|
|
35
|
+
pass plans/backend). Then run:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
cd ./dev-portal-site
|
|
39
|
+
npm run dev
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
`create_dev_portal` does **not** start the preview server. Use `npm run dev` or
|
|
43
|
+
`preview_dev_portal_site`.
|
|
44
|
+
|
|
45
|
+
Optional: `bootstrapProject: true` on create (or `bootstrap_project`) to create the platform project
|
|
46
|
+
without selecting a hosting plan yet.
|
|
47
|
+
|
|
48
|
+
## What to collect
|
|
49
|
+
|
|
50
|
+
Ask only for what is missing:
|
|
51
|
+
|
|
52
|
+
1. **siteDirectory** — where to scaffold (e.g. `./dev-portal`)
|
|
53
|
+
2. **backend** / **openApi** — source directory and/or OpenAPI path or URL
|
|
54
|
+
3. **plans** — SKUs, prices, rate limits (your choice; not invented)
|
|
55
|
+
4. **auth.mode** — `native` | `oidc` | `nativeAndOidc`
|
|
56
|
+
5. **gatewayPolicies.publicRoutes** — e.g. `/health` (other routes stay subscription-key protected by
|
|
57
|
+
default)
|
|
58
|
+
|
|
59
|
+
## Customize after shape
|
|
60
|
+
|
|
61
|
+
Use MCP tools (see [Tools](./tools.md)):
|
|
62
|
+
|
|
63
|
+
- Pages → `add_dev_portal_page` / `update_dev_portal_page` (TSX under Documentation nav by default)
|
|
64
|
+
- OpenAPI → `set_dev_portal_openapi`
|
|
65
|
+
- Plans / branding → `update_dev_portal_manifest`
|
|
66
|
+
- Theme → `set_dev_portal_theme`
|
|
67
|
+
|
|
68
|
+
Home page content: hand-edit `landing/LandingPage.tsx` after asking for real copy. Footer:
|
|
69
|
+
`modules.landing.content.footer` in `apitogo.config.json`.
|
|
70
|
+
|
|
71
|
+
Shape-phase edits hot-reload when the local preview is running. Pass `restartPreview: true` on
|
|
72
|
+
manifest updates only when you need mock pricing refreshed.
|
|
73
|
+
|
|
74
|
+
## Next
|
|
75
|
+
|
|
76
|
+
When the site looks right, [go live](./go-live.md).
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: MCP tools
|
|
3
|
+
description: APItoGo MCP tool catalog by category and hand-edit exceptions.
|
|
4
|
+
sidebar_icon: wrench
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Tools are exposed by the APItoGo MCP server. Prefer **`apply_product_intent`** for create / shape /
|
|
8
|
+
go-live. Use granular tools for advanced edits, debugging, or CI.
|
|
9
|
+
|
|
10
|
+
## Lifecycle (prefer these)
|
|
11
|
+
|
|
12
|
+
| Tool | Role |
|
|
13
|
+
| ---------------------------- | --------------------------------------------------- |
|
|
14
|
+
| `apply_product_intent` | Shape or goLive from a product intent |
|
|
15
|
+
| `create_dev_portal` | Scaffold site (+ optional project bootstrap) |
|
|
16
|
+
| `check_dev_portal_publish_readiness` | Pre-publish checklist |
|
|
17
|
+
| `publish_dev_portal` | Publish portal + plans (+ optional backend) |
|
|
18
|
+
| `verify_dev_portal_live` | Post-publish verification |
|
|
19
|
+
| `bootstrap_dev_portal` | CI one-shot provision + deploy |
|
|
20
|
+
| `bootstrap_project` | Create platform project only (plan unselected) |
|
|
21
|
+
| `teardown_project` | Tear down a project |
|
|
22
|
+
|
|
23
|
+
## Site shaping
|
|
24
|
+
|
|
25
|
+
| Tool | Role |
|
|
26
|
+
| --------------------------------- | ----------------------------------------- |
|
|
27
|
+
| `update_dev_portal_manifest` | Plans, branding, backend, projectId |
|
|
28
|
+
| `set_dev_portal_openapi` | OpenAPI / API reference |
|
|
29
|
+
| `set_dev_portal_theme` | Colors and fonts |
|
|
30
|
+
| `add_dev_portal_page` | Add a docs page (TSX under Documentation nav) |
|
|
31
|
+
| `update_dev_portal_page` | Edit a docs page |
|
|
32
|
+
| `scaffold_dev_portal_landing_page`| Scaffold missing landing file |
|
|
33
|
+
| `get_dev_portal_landing_guide` | Landing component catalog |
|
|
34
|
+
| `preview_dev_portal_site` | Start / restart local preview |
|
|
35
|
+
| `build_dev_portal_site` | Production build |
|
|
36
|
+
|
|
37
|
+
Hosted page CRUD also exists (`list/create/delete/rename/reorder_dev_portal_pages`) for the platform
|
|
38
|
+
API surface.
|
|
39
|
+
|
|
40
|
+
## Projects and platform billing
|
|
41
|
+
|
|
42
|
+
| Tool | Role |
|
|
43
|
+
| ---------------------------- | ----------------------------------------- |
|
|
44
|
+
| `whoami`, `list_projects`, `get_project`, … | Tenant / project CRUD |
|
|
45
|
+
| `list_platform_plans` | Free / Starter / Professional + quota |
|
|
46
|
+
| `ensure_platform_plan` | Select or checkout platform plan |
|
|
47
|
+
| `wait_for_platform_plan` | Poll until active |
|
|
48
|
+
| `get_subscription` | Current subscription |
|
|
49
|
+
| `select_free_plan` | Free hosting |
|
|
50
|
+
| `create_checkout_session` | Stripe checkout for paid hosting |
|
|
51
|
+
|
|
52
|
+
## Backend and OpenAPI
|
|
53
|
+
|
|
54
|
+
| Tool | Role |
|
|
55
|
+
| ----------------------- | ------------------------------- |
|
|
56
|
+
| `validate_openapi` | Validate OpenAPI |
|
|
57
|
+
| `update_openapi` | Update stored OpenAPI |
|
|
58
|
+
| `package_backend` | Package backend artifact |
|
|
59
|
+
| `deploy_backend` | Deploy API hub |
|
|
60
|
+
| `get_backend_summary` | Backend status |
|
|
61
|
+
| `get_deployment_status` | Deployment job status |
|
|
62
|
+
| `get_gateway_readiness` | Gateway readiness |
|
|
63
|
+
|
|
64
|
+
## Gateway
|
|
65
|
+
|
|
66
|
+
| Tool | Role |
|
|
67
|
+
| -------------------------------------- | ----------------------------- |
|
|
68
|
+
| `list/get/create/update/patch_gateway_plan` | Plan CRUD |
|
|
69
|
+
| `add_actions_to_gateway_plan` / `remove_actions_from_gateway_plan` | Attach ops |
|
|
70
|
+
| `set_action_public` | Public routes |
|
|
71
|
+
| `upsert_entitlement` | Entitlements |
|
|
72
|
+
| `configure_gateway_baseline` | Baseline policies |
|
|
73
|
+
| `get/update_gateway_settings` | Settings |
|
|
74
|
+
| `get/update_gateway_auth` | Gateway auth |
|
|
75
|
+
| `sync_gateway_plans_from_manifest` | Post-publish action sync |
|
|
76
|
+
| `reorder_gateway_plans_from_manifest` | Plan order |
|
|
77
|
+
|
|
78
|
+
## Infrastructure and deploy
|
|
79
|
+
|
|
80
|
+
| Tool | Role |
|
|
81
|
+
| --------------------------------- | ---------------------------- |
|
|
82
|
+
| `activate_module` | Activate modules |
|
|
83
|
+
| `get_infrastructure_status` / Azure variants | Infra status |
|
|
84
|
+
| `list_provisioning_jobs`, `wait_for_job` | Jobs |
|
|
85
|
+
| `get_deployment_token` | CLI deploy token |
|
|
86
|
+
| `get/set/delete_custom_domain` | Custom domain |
|
|
87
|
+
| `get_dev_portal_deploy_config`, `deploy_dev_portal`, … | SWA deploy |
|
|
88
|
+
|
|
89
|
+
## Hand-edit exceptions
|
|
90
|
+
|
|
91
|
+
| Change | Where |
|
|
92
|
+
| ----------------- | -------------------------------------------------- |
|
|
93
|
+
| Home page content | `landing/LandingPage.tsx` |
|
|
94
|
+
| Site footer | `apitogo.config.json` → `modules.landing.content.footer` |
|
|
95
|
+
|
|
96
|
+
There is **no** `update_dev_portal_landing` tool for arbitrary home content.
|
|
97
|
+
|
|
98
|
+
## Related
|
|
99
|
+
|
|
100
|
+
- [Overview](./overview.md)
|
|
101
|
+
- [Shape](./shape.md)
|
|
102
|
+
- [Go live](./go-live.md)
|
package/docs/plugins.md
CHANGED
|
@@ -2,4 +2,23 @@
|
|
|
2
2
|
title: APIToGo Plugins
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
APIToGo
|
|
5
|
+
APIToGo is extended with **plugins** registered in your site config. JSON cannot
|
|
6
|
+
hold React or functions.
|
|
7
|
+
|
|
8
|
+
Common uses:
|
|
9
|
+
|
|
10
|
+
- Search (Pagefind built-in; Algolia / Inkeep plugins) — [Search](./configuration/search.md)
|
|
11
|
+
- Billing UI — `@lukoweb/apitogo-plugin-dev-portal-billing` with `buildApitogoConfig`
|
|
12
|
+
- Custom behavior — [Custom plugins](./custom-plugins.md)
|
|
13
|
+
- Config transforms — `transformConfig` on a plugin (slots, syntax highlighting, etc.)
|
|
14
|
+
|
|
15
|
+
```tsx title=config
|
|
16
|
+
import { buildApitogoConfig } from "@lukoweb/apitogo";
|
|
17
|
+
import { devPortalBillingPlugin } from "@lukoweb/apitogo-plugin-dev-portal-billing";
|
|
18
|
+
|
|
19
|
+
export default buildApitogoConfig({
|
|
20
|
+
plugins: [devPortalBillingPlugin()],
|
|
21
|
+
});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
See also [Extending / events](./extending/events.md) and [Slots](./configuration/slots.mdx).
|