zuplo 6.69.10 → 6.70.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/docs/ai-gateway/apps.mdx +5 -5
- package/docs/ai-gateway/custom-providers.mdx +6 -5
- package/docs/ai-gateway/getting-started.mdx +2 -1
- package/docs/ai-gateway/guardrails.mdx +2 -2
- package/docs/ai-gateway/managing-apps.mdx +10 -8
- package/docs/ai-gateway/managing-providers.mdx +9 -7
- package/docs/ai-gateway/managing-teams.mdx +4 -4
- package/docs/ai-gateway/usage-limits.mdx +8 -5
- package/docs/articles/accounts/audit-logs.mdx +3 -5
- package/docs/articles/accounts/billing.mdx +9 -5
- package/docs/articles/accounts/default-api-key.mdx +4 -5
- package/docs/articles/accounts/delete-account.mdx +11 -11
- package/docs/articles/accounts/enterprise-sso.mdx +5 -3
- package/docs/articles/accounts/managing-account-members.mdx +3 -3
- package/docs/articles/accounts/zuplo-api-keys.mdx +8 -6
- package/docs/articles/api-key-administration.mdx +8 -5
- package/docs/articles/api-key-end-users.mdx +4 -3
- package/docs/articles/api-key-self-serve-integration.mdx +8 -4
- package/docs/articles/branch-based-deployments.mdx +7 -4
- package/docs/articles/custom-ci-cd-azure.mdx +3 -2
- package/docs/articles/custom-ci-cd-bitbucket.mdx +3 -2
- package/docs/articles/custom-ci-cd-circleci.mdx +4 -2
- package/docs/articles/custom-ci-cd-github.mdx +5 -3
- package/docs/articles/custom-ci-cd-gitlab.mdx +3 -2
- package/docs/articles/custom-ci-cd.mdx +6 -8
- package/docs/articles/custom-domains.mdx +8 -6
- package/docs/articles/environments.mdx +5 -2
- package/docs/articles/mcp-quickstart.mdx +2 -2
- package/docs/articles/migrate-from-kong.md +2 -2
- package/docs/articles/monetization/api-access.mdx +3 -2
- package/docs/articles/monetization/billing-models.md +137 -31
- package/docs/articles/monetization/developer-portal.md +7 -3
- package/docs/articles/monetization/features.mdx +0 -28
- package/docs/articles/monetization/plans.mdx +0 -1
- package/docs/articles/monetization/pricing-models.mdx +21 -7
- package/docs/articles/monetization/private-plans.md +0 -1
- package/docs/articles/monetization/quickstart.md +4 -2
- package/docs/articles/monetization/rate-cards.mdx +4 -4
- package/docs/articles/monetization/stripe-integration.md +16 -12
- package/docs/articles/monetization/subscription-lifecycle.md +4 -4
- package/docs/articles/monorepo-deployment.mdx +2 -3
- package/docs/articles/source-control-setup-github.mdx +6 -4
- package/docs/articles/step-1-setup-basic-gateway.mdx +3 -3
- package/docs/articles/step-3-add-api-key-auth-local.mdx +4 -3
- package/docs/articles/step-3-add-api-key-auth.mdx +3 -2
- package/docs/articles/step-4-deploying-to-the-edge.mdx +6 -4
- package/docs/articles/testing.mdx +4 -3
- package/docs/articles/troubleshooting.md +7 -4
- package/docs/cli/authentication.mdx +4 -2
- package/docs/cli/deploy.mdx +2 -1
- package/docs/cli/deploy.partial.mdx +2 -1
- package/docs/concepts/api-keys.md +9 -8
- package/docs/concepts/authentication.mdx +3 -2
- package/docs/concepts/source-control-and-deployment.mdx +3 -1
- package/docs/dev-portal/documenting-mcp-servers.mdx +223 -0
- package/docs/dev-portal/zudoku/openapi-extensions/x-mcp-server.md +1 -1
- package/docs/guides/canary-routing-for-employees.mdx +3 -1
- package/docs/guides/user-based-backend-routing.mdx +3 -2
- package/docs/programmable-api/environment.mdx +6 -5
- package/docs/programmable-api/zuplo-context.mdx +3 -3
- package/package.json +4 -4
|
@@ -69,8 +69,9 @@ Let's get started.
|
|
|
69
69
|
|
|
70
70
|
2. Set up an API Key
|
|
71
71
|
|
|
72
|
-
In order to call your API, you need to configure an API consumer.
|
|
73
|
-
**Services
|
|
72
|
+
In order to call your API, you need to configure an API consumer. Open the
|
|
73
|
+
[**Services**](https://portal.zuplo.com/+/account/project/services) tab in
|
|
74
|
+
your project, then click **Configure** on the "API Key Service".
|
|
74
75
|
|
|
75
76
|

|
|
76
77
|
|
|
@@ -30,10 +30,12 @@ Let's get started:
|
|
|
30
30
|
|
|
31
31
|
1. Authorize to GitHub
|
|
32
32
|
|
|
33
|
-
Next,
|
|
34
|
-
|
|
35
|
-
the
|
|
36
|
-
|
|
33
|
+
Next, open your
|
|
34
|
+
[project settings](https://portal.zuplo.com/+/account/project/settings/general)
|
|
35
|
+
in the Zuplo Portal, then select **Source Control**. If your project isn't
|
|
36
|
+
already connected to GitHub click the **Connect to GitHub** button and follow
|
|
37
|
+
the auth flow. You'll need to grant permissions for any GitHub organizations
|
|
38
|
+
you want to work with.
|
|
37
39
|
|
|
38
40
|

|
|
39
41
|
|
|
@@ -78,9 +78,10 @@ The `.env.zuplo` file can contain sensitive information. Add it to your
|
|
|
78
78
|
:::
|
|
79
79
|
|
|
80
80
|
Once linked, services like the API Key Authentication policy work locally using
|
|
81
|
-
the same API key bucket as the linked environment.
|
|
82
|
-
|
|
83
|
-
Key Service
|
|
81
|
+
the same API key bucket as the linked environment. In the Zuplo Portal, open the
|
|
82
|
+
[**Services**](https://portal.zuplo.com/+/account/project/services) tab in your
|
|
83
|
+
project and select **API Key Service** to create API key consumers, then call
|
|
84
|
+
your local gateway with the generated key:
|
|
84
85
|
|
|
85
86
|
```bash
|
|
86
87
|
curl http://localhost:9000/your-route \
|
|
@@ -79,7 +79,9 @@ arrays.
|
|
|
79
79
|
The gateway returns this error when the project has a critical configuration
|
|
80
80
|
issue that prevents it from starting.
|
|
81
81
|
|
|
82
|
-
**Fix:** Check the deployment logs in the Zuplo Portal
|
|
82
|
+
**Fix:** Check the deployment logs in the Zuplo Portal — open the
|
|
83
|
+
[**Environments**](https://portal.zuplo.com/+/account/project/environments) tab
|
|
84
|
+
in your project and select the failing environment to see the specific error
|
|
83
85
|
message. Common causes include invalid `zuplo.runtime.ts` configuration or
|
|
84
86
|
broken runtime extensions.
|
|
85
87
|
|
|
@@ -174,9 +176,10 @@ const response = await fetch("https://api.example.com/data", {
|
|
|
174
176
|
|
|
175
177
|
### Portal live logs
|
|
176
178
|
|
|
177
|
-
The Zuplo Portal provides real-time log viewing for deployed environments.
|
|
178
|
-
|
|
179
|
-
|
|
179
|
+
The Zuplo Portal provides real-time log viewing for deployed environments. Open
|
|
180
|
+
the [**Environments**](https://portal.zuplo.com/+/account/project/environments)
|
|
181
|
+
tab in your project, select the deployed environment, and open the logs tab to
|
|
182
|
+
see live request logs and any messages logged with `context.log`.
|
|
180
183
|
|
|
181
184
|
### Using context.log
|
|
182
185
|
|
|
@@ -37,8 +37,10 @@ following these steps:
|
|
|
37
37
|
|
|
38
38
|
1. Navigate to [portal.zuplo.com](https://portal.zuplo.com) and log in.
|
|
39
39
|
2. Select the account that you want to work on.
|
|
40
|
-
3.
|
|
41
|
-
|
|
40
|
+
3. Navigate to
|
|
41
|
+
[**Settings → API Keys**](https://portal.zuplo.com/+/account/settings/api-keys)
|
|
42
|
+
in your account. Select an existing API Key or create a new one to use with
|
|
43
|
+
the CLI.
|
|
42
44
|
|
|
43
45
|
Most commands take an `--api-key` argument. For example, to list your available
|
|
44
46
|
Zuplo API Gateways, run:
|
package/docs/cli/deploy.mdx
CHANGED
|
@@ -140,7 +140,8 @@ POLL_INTERVAL=5000 MAX_POLL_RETRIES=300 zuplo deploy
|
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
Note, that even if the CLI times out, the deployment will continue. You can
|
|
143
|
-
check the status of the deployment in
|
|
143
|
+
check the status of the deployment in your
|
|
144
|
+
[project](https://portal.zuplo.com/+/account/project/) in the Zuplo Portal.
|
|
144
145
|
|
|
145
146
|
</CliCommand>
|
|
146
147
|
|
|
@@ -43,4 +43,5 @@ POLL_INTERVAL=5000 MAX_POLL_RETRIES=300 zuplo deploy
|
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
Note, that even if the CLI times out, the deployment will continue. You can
|
|
46
|
-
check the status of the deployment in
|
|
46
|
+
check the status of the deployment in your
|
|
47
|
+
[project](https://portal.zuplo.com/+/account/project/) in the Zuplo Portal.
|
|
@@ -23,7 +23,8 @@ The API key system has three core objects:
|
|
|
23
23
|
See [API Key Management](../articles/api-key-management.mdx) for a full
|
|
24
24
|
overview, and
|
|
25
25
|
[Manage Keys in the Portal](../articles/api-key-administration.mdx) for managing
|
|
26
|
-
consumers
|
|
26
|
+
consumers under [Services](https://portal.zuplo.com/+/account/project/services)
|
|
27
|
+
in your project.
|
|
27
28
|
|
|
28
29
|
## How validation works
|
|
29
30
|
|
|
@@ -76,8 +77,8 @@ when the consumer's key is used. Common uses:
|
|
|
76
77
|
backend
|
|
77
78
|
- **Organization**: `{"orgId": 456}` for multi-tenant routing
|
|
78
79
|
|
|
79
|
-
|
|
80
|
-
[portal](
|
|
80
|
+
Set metadata when creating a consumer via the
|
|
81
|
+
[portal](https://portal.zuplo.com/+/account/project/services),
|
|
81
82
|
[Developer API](../articles/api-key-api.mdx), or
|
|
82
83
|
[developer portal self-serve](#self-serve-key-management).
|
|
83
84
|
|
|
@@ -173,11 +174,11 @@ self-serve API key management. Your API consumers can sign in to the portal and
|
|
|
173
174
|
create, view, and delete their own keys without contacting your team.
|
|
174
175
|
|
|
175
176
|
To enable self-serve access, assign a **manager** to a consumer. Managers are
|
|
176
|
-
identified by email and identity provider subject.
|
|
177
|
-
|
|
178
|
-
when a user signs
|
|
179
|
-
[Auth0](../dev-portal/dev-portal-create-consumer-on-auth.mdx) or
|
|
180
|
-
identity provider.
|
|
177
|
+
identified by email and identity provider subject. You can assign a manager in
|
|
178
|
+
the [portal](https://portal.zuplo.com/+/account/project/services), via the
|
|
179
|
+
[Developer API](../articles/api-key-api.mdx), or automatically when a user signs
|
|
180
|
+
in using [Auth0](../dev-portal/dev-portal-create-consumer-on-auth.mdx) or
|
|
181
|
+
another identity provider.
|
|
181
182
|
|
|
182
183
|
## Buckets and environments
|
|
183
184
|
|
|
@@ -48,8 +48,9 @@ reference.
|
|
|
48
48
|
|
|
49
49
|
Zuplo's built-in [API key management](../articles/api-key-management.mdx)
|
|
50
50
|
provides a complete system for issuing, managing, and validating API keys.
|
|
51
|
-
|
|
52
|
-
portal
|
|
51
|
+
Create consumers (API key holders) under
|
|
52
|
+
[**Services**](https://portal.zuplo.com/+/account/project/services) in your
|
|
53
|
+
project, via the API, or via developer portal self-serve.
|
|
53
54
|
|
|
54
55
|
Best for: B2B APIs, developer platforms, and any API where you manage consumer
|
|
55
56
|
access.
|
|
@@ -210,7 +210,9 @@ The typical workflow from development to production looks like this:
|
|
|
210
210
|
<DiagramEdge from="merge" to="production" />
|
|
211
211
|
</Diagram>
|
|
212
212
|
|
|
213
|
-
1. **Develop** locally with `zuplo dev` or in
|
|
213
|
+
1. **Develop** locally with `zuplo dev` or in your
|
|
214
|
+
[project's working copy](https://portal.zuplo.com/+/account/project/) in the
|
|
215
|
+
Zuplo Portal.
|
|
214
216
|
2. **Push** your changes to a feature branch. If using GitHub, a Preview
|
|
215
217
|
environment deploys automatically. If using another provider, your CI/CD
|
|
216
218
|
pipeline runs `zuplo deploy`.
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Documenting MCP Servers
|
|
3
|
+
sidebar_label: Documenting MCP Servers
|
|
4
|
+
navigation_icon: bot
|
|
5
|
+
description:
|
|
6
|
+
Use the x-mcp-server OpenAPI extension to render an MCP setup card in the Dev
|
|
7
|
+
Portal for external or proxied MCP servers.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
The Dev Portal renders a dedicated
|
|
11
|
+
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) setup UI for
|
|
12
|
+
any OpenAPI operation that includes the `x-mcp-server` extension. The card
|
|
13
|
+
replaces the standard request/response view with the MCP endpoint URL, a copy
|
|
14
|
+
button, and tabbed installation instructions for Claude, ChatGPT, Cursor, VS
|
|
15
|
+
Code, and a generic config.
|
|
16
|
+
|
|
17
|
+
:::tip{title="Building an MCP server on Zuplo?"}
|
|
18
|
+
|
|
19
|
+
If your MCP server uses Zuplo's
|
|
20
|
+
[MCP Server Handler](/docs/handlers/mcp-server.mdx), the `x-mcp-server`
|
|
21
|
+
extension is added to your OpenAPI spec automatically. Skip this guide — there
|
|
22
|
+
is nothing to configure. See the
|
|
23
|
+
[MCP Server overview](/docs/mcp-server/introduction.mdx) for the build path.
|
|
24
|
+
|
|
25
|
+
:::
|
|
26
|
+
|
|
27
|
+
## When to use this guide
|
|
28
|
+
|
|
29
|
+
Use this guide when you want to surface an MCP server in your Dev Portal that
|
|
30
|
+
you are **not** building with Zuplo's MCP Server Handler. Common scenarios:
|
|
31
|
+
|
|
32
|
+
- You proxy a third-party MCP server through a Zuplo route (for example, with a
|
|
33
|
+
[URL forward](/docs/handlers/url-forward.mdx) or
|
|
34
|
+
[custom handler](/docs/handlers/custom-handler.mdx)) and want to publish setup
|
|
35
|
+
instructions for it.
|
|
36
|
+
- You hand-author an OpenAPI spec for an MCP server hosted outside Zuplo.
|
|
37
|
+
- You catalog multiple MCP servers — some yours, some external — in a single Dev
|
|
38
|
+
Portal.
|
|
39
|
+
|
|
40
|
+
In every case, this guide covers only the **documentation** side: how the Dev
|
|
41
|
+
Portal renders the MCP card. Authentication, rate limiting, and any other
|
|
42
|
+
gateway behavior is configured on the underlying route as usual.
|
|
43
|
+
|
|
44
|
+
## Adding the extension
|
|
45
|
+
|
|
46
|
+
Add `x-mcp-server` to the operation that represents the MCP endpoint. MCP
|
|
47
|
+
servers typically use `POST`, but the extension works on any HTTP method.
|
|
48
|
+
|
|
49
|
+
```json title="openapi.json"
|
|
50
|
+
{
|
|
51
|
+
"paths": {
|
|
52
|
+
"/mcp": {
|
|
53
|
+
"post": {
|
|
54
|
+
"summary": "Acme Docs MCP",
|
|
55
|
+
"description": "MCP endpoint for searching Acme's documentation.",
|
|
56
|
+
"operationId": "acmeDocsMcp",
|
|
57
|
+
"x-mcp-server": {
|
|
58
|
+
"name": "acme-docs",
|
|
59
|
+
"version": "1.0.0",
|
|
60
|
+
"tools": [
|
|
61
|
+
{
|
|
62
|
+
"name": "search_docs",
|
|
63
|
+
"description": "Search the documentation"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "get_page",
|
|
67
|
+
"description": "Retrieve a specific documentation page"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"responses": {
|
|
72
|
+
"200": {
|
|
73
|
+
"description": "MCP response"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
For a quick setup with no metadata, use the shorthand `"x-mcp-server": true`.
|
|
83
|
+
The operation `summary` is then used as the server name.
|
|
84
|
+
|
|
85
|
+
## Extension properties
|
|
86
|
+
|
|
87
|
+
| Property | Type | Required | Description |
|
|
88
|
+
| --------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
89
|
+
| `name` | `string` | No | Display name used in the generated client config snippets. Falls back to the operation `summary`, then `mcp-server`. |
|
|
90
|
+
| `version` | `string` | No | Version metadata. Included for completeness; not currently rendered in the UI. |
|
|
91
|
+
| `tools` | `array` | No | Tool metadata. Used by Zuplo enrichment; not currently rendered in the UI. |
|
|
92
|
+
|
|
93
|
+
Each entry in `tools` accepts:
|
|
94
|
+
|
|
95
|
+
| Property | Type | Required | Description |
|
|
96
|
+
| ------------- | -------- | -------- | ------------------------------- |
|
|
97
|
+
| `name` | `string` | Yes | Tool name |
|
|
98
|
+
| `description` | `string` | No | Human-readable tool description |
|
|
99
|
+
|
|
100
|
+
## MCP URL resolution
|
|
101
|
+
|
|
102
|
+
The displayed MCP URL is constructed from the **server URL** of the API plus the
|
|
103
|
+
**path** of the operation. The server URL comes from the OpenAPI `servers` array
|
|
104
|
+
(or the operation-level `servers` override, when present).
|
|
105
|
+
|
|
106
|
+
For example:
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"servers": [{ "url": "https://api.example.com" }],
|
|
111
|
+
"paths": {
|
|
112
|
+
"/mcp/docs": {
|
|
113
|
+
"post": {
|
|
114
|
+
"x-mcp-server": { "name": "docs-mcp" },
|
|
115
|
+
"responses": { "200": { "description": "OK" } }
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
The displayed MCP URL is `https://api.example.com/mcp/docs`. Make sure the
|
|
123
|
+
server URL points to wherever the MCP server actually accepts requests — for
|
|
124
|
+
proxied servers, that is typically your Zuplo gateway URL.
|
|
125
|
+
|
|
126
|
+
## Complete example
|
|
127
|
+
|
|
128
|
+
This minimal but complete OpenAPI spec produces an MCP endpoint page in the Dev
|
|
129
|
+
Portal:
|
|
130
|
+
|
|
131
|
+
```json title="mcp-api.json"
|
|
132
|
+
{
|
|
133
|
+
"openapi": "3.0.3",
|
|
134
|
+
"info": {
|
|
135
|
+
"title": "Acme Docs MCP",
|
|
136
|
+
"version": "1.0.0"
|
|
137
|
+
},
|
|
138
|
+
"servers": [
|
|
139
|
+
{
|
|
140
|
+
"url": "https://api.example.com",
|
|
141
|
+
"description": "Production"
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
"paths": {
|
|
145
|
+
"/mcp": {
|
|
146
|
+
"post": {
|
|
147
|
+
"tags": ["MCP"],
|
|
148
|
+
"summary": "Acme Docs MCP",
|
|
149
|
+
"description": "MCP endpoint for searching Acme's documentation.",
|
|
150
|
+
"operationId": "acmeDocsMcp",
|
|
151
|
+
"x-mcp-server": {
|
|
152
|
+
"name": "acme-docs",
|
|
153
|
+
"version": "1.0.0",
|
|
154
|
+
"tools": [
|
|
155
|
+
{
|
|
156
|
+
"name": "search_docs",
|
|
157
|
+
"description": "Search the documentation"
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
"responses": {
|
|
162
|
+
"200": {
|
|
163
|
+
"description": "MCP response"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Reference the spec from your Dev Portal config (see
|
|
173
|
+
[API Reference](./zudoku/configuration/api-reference.md) for the full `apis`
|
|
174
|
+
configuration):
|
|
175
|
+
|
|
176
|
+
```tsx title="zudoku.config.tsx"
|
|
177
|
+
import type { ZudokuConfig } from "zudoku";
|
|
178
|
+
|
|
179
|
+
const config: ZudokuConfig = {
|
|
180
|
+
apis: [
|
|
181
|
+
{
|
|
182
|
+
type: "file",
|
|
183
|
+
input: "./mcp-api.json",
|
|
184
|
+
path: "mcp",
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
navigation: [
|
|
188
|
+
{
|
|
189
|
+
type: "link",
|
|
190
|
+
label: "MCP Server",
|
|
191
|
+
to: "/mcp",
|
|
192
|
+
icon: "bot",
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
export default config;
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Generated UI
|
|
201
|
+
|
|
202
|
+
When the Dev Portal detects `x-mcp-server` on an operation, the page renders:
|
|
203
|
+
|
|
204
|
+
- **MCP Endpoint card** — the full URL with a copy button.
|
|
205
|
+
- **AI Tool Configuration** tabs with setup instructions for:
|
|
206
|
+
- **Claude** — add via the Connectors UI or the `claude mcp add` CLI command.
|
|
207
|
+
- **ChatGPT** — app setup via Settings → Apps → Advanced Settings.
|
|
208
|
+
- **Cursor** — `mcp.json` configuration (global or project-level).
|
|
209
|
+
- **VS Code** — `.vscode/mcp.json` with native HTTP transport for GitHub
|
|
210
|
+
Copilot.
|
|
211
|
+
- **Generic** — standard `mcp.json` format compatible with most MCP clients.
|
|
212
|
+
|
|
213
|
+
The standard method badge, request body, parameters, and sidecar panels are
|
|
214
|
+
hidden for MCP endpoints because they use a different interaction model.
|
|
215
|
+
|
|
216
|
+
## Related
|
|
217
|
+
|
|
218
|
+
- [`x-mcp-server` extension reference](./zudoku/openapi-extensions/x-mcp-server.md)
|
|
219
|
+
— the underlying OpenAPI extension.
|
|
220
|
+
- [MCP Server Handler](/docs/handlers/mcp-server.mdx) — build an MCP server on
|
|
221
|
+
Zuplo (and skip this guide entirely).
|
|
222
|
+
- [MCP Server overview](/docs/mcp-server/introduction.mdx) — concepts,
|
|
223
|
+
capabilities, and the Zuplo-native build path.
|
|
@@ -101,4 +101,4 @@ The standard method badge, request body, parameters, and sidecar panels are hidd
|
|
|
101
101
|
endpoints.
|
|
102
102
|
|
|
103
103
|
For a full walkthrough including Dev Portal configuration, see the
|
|
104
|
-
[Documenting MCP Servers guide](/dev-portal/
|
|
104
|
+
[Documenting MCP Servers guide](/docs/dev-portal/documenting-mcp-servers).
|
|
@@ -203,7 +203,9 @@ export const percentageCanaryRoutingPolicy: InboundPolicyHandler = async (
|
|
|
203
203
|
|
|
204
204
|
### Environment Variables
|
|
205
205
|
|
|
206
|
-
Configure
|
|
206
|
+
Configure environment variables under the
|
|
207
|
+
[**Environments**](https://portal.zuplo.com/+/account/project/environments) tab
|
|
208
|
+
of your project in the Zuplo Portal:
|
|
207
209
|
|
|
208
210
|
```bash
|
|
209
211
|
# List of employee emails or user IDs
|
|
@@ -77,8 +77,9 @@ export default async function policy(
|
|
|
77
77
|
}
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
When creating API keys
|
|
81
|
-
|
|
80
|
+
When creating API keys under
|
|
81
|
+
[Services](https://portal.zuplo.com/+/account/project/services) in the Zuplo
|
|
82
|
+
Portal, set the metadata to include the environment:
|
|
82
83
|
|
|
83
84
|
```json
|
|
84
85
|
{
|
|
@@ -313,12 +313,13 @@ context.log.info("Config loaded", {
|
|
|
313
313
|
|
|
314
314
|
## Setting Environment Variables
|
|
315
315
|
|
|
316
|
-
|
|
316
|
+
Set environment variables in the Zuplo Portal:
|
|
317
317
|
|
|
318
|
-
1.
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
318
|
+
1. Open the
|
|
319
|
+
[**Environments**](https://portal.zuplo.com/+/account/project/environments)
|
|
320
|
+
tab of your project.
|
|
321
|
+
2. Select an environment and add variables under **Environment Variables**.
|
|
322
|
+
3. Zuplo encrypts variables at rest and in transit.
|
|
322
323
|
|
|
323
324
|
## See Also
|
|
324
325
|
|
|
@@ -89,9 +89,9 @@ context.log.info({
|
|
|
89
89
|
### `log`
|
|
90
90
|
|
|
91
91
|
A logger instance for debugging and monitoring. Logs appear in your log tail in
|
|
92
|
-
the portal and in your
|
|
93
|
-
|
|
94
|
-
production is set to **Error**.
|
|
92
|
+
the [Zuplo Portal](https://portal.zuplo.com/+/account/project/) and in your
|
|
93
|
+
integrated log solution (for example Datadog). Pre-production environments are
|
|
94
|
+
typically set to **Info** log level, while production is set to **Error**.
|
|
95
95
|
|
|
96
96
|
:::tip
|
|
97
97
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zuplo",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.70.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "The programmable API Gateway",
|
|
6
6
|
"author": "Zuplo, Inc.",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"zuplo": "zuplo.js"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@zuplo/cli": "6.
|
|
23
|
-
"@zuplo/core": "6.
|
|
24
|
-
"@zuplo/runtime": "6.
|
|
22
|
+
"@zuplo/cli": "6.70.0",
|
|
23
|
+
"@zuplo/core": "6.70.0",
|
|
24
|
+
"@zuplo/runtime": "6.70.0",
|
|
25
25
|
"@zuplo/test": "1.4.0"
|
|
26
26
|
}
|
|
27
27
|
}
|