portkey-admin-mcp 0.12.2 → 0.14.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/ENDPOINTS.md +53 -15
- package/README.md +14 -12
- package/build/index.js +1454 -961
- package/build/server.js +1454 -961
- package/docs/DISTRIBUTION.md +8 -7
- package/docs/PRISMA_AIRS_INTEROPERABILITY.md +34 -9
- package/package.json +14 -14
package/docs/DISTRIBUTION.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Distribution and directory inventory
|
|
2
2
|
|
|
3
|
-
> Last audited: 2026-10-
|
|
4
|
-
>
|
|
5
|
-
>
|
|
3
|
+
> Last audited: 2026-10-16. npm, MCP Registry, LobeHub ownership, the Awesome
|
|
4
|
+
> MCP Servers entry, the Docker submission, and Glama were rechecked. Versions
|
|
5
|
+
> in dated observations describe that check, not a release requirement.
|
|
6
6
|
|
|
7
7
|
The generated catalog in this repository is the source of truth for tool names,
|
|
8
8
|
counts, and descriptions. Public directory pages can lag a release or retain a
|
|
@@ -16,7 +16,7 @@ legacy repository owner, so they should not be used to validate the runtime.
|
|
|
16
16
|
| [npm](https://www.npmjs.com/package/portkey-admin-mcp) | Canonical package distribution | Automated from a protected release tag using `package.json` |
|
|
17
17
|
| [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.CodesWhat/portkey-admin-mcp) | Canonical MCP metadata under `io.github.CodesWhat/portkey-admin-mcp` | Automated after npm publication using `server.json` |
|
|
18
18
|
| [LobeHub](https://lobehub.com/mcp/codeswhat-portkey-admin-mcp) | Claimed marketplace listing | Run `npm run update:lobehub` after release; `lhm.plugin.json` is owner-declared metadata |
|
|
19
|
-
| [Glama](https://glama.ai/mcp/servers/CodesWhat/portkey-admin-mcp) | Claimed directory and quality listing. On 2026-10-
|
|
19
|
+
| [Glama](https://glama.ai/mcp/servers/CodesWhat/portkey-admin-mcp) | Claimed directory and quality listing. On 2026-10-16 the page showed release 0.13.0 and current 184-tool README metadata. Its generated description and FAQ still said 150 and 151 tools; the public inventory API returned 401 | Indexes GitHub; after each release, use **Repository > Sync Server**, then **Dockerfile > Build & Release**, and verify the version and tool count it shows. The generated description and FAQ text are Glama's and refresh on their own schedule |
|
|
20
20
|
| [Awesome MCP Servers](https://github.com/punkpeye/awesome-mcp-servers/pull/13074) | Community list entry; the CodesWhat correction (PR #13074) merged on 2026-09-13 | Update the entry through a new PR when the repository owner, Glama badge, or released catalog count changes |
|
|
21
21
|
|
|
22
22
|
The canonical description for owner-controlled records is:
|
|
@@ -32,7 +32,7 @@ runtime catalog before release.
|
|
|
32
32
|
|
|
33
33
|
| Surface | State on 2026-09-08 | Maintenance decision |
|
|
34
34
|
|---|---|---|
|
|
35
|
-
| [LobeHub legacy listing](https://lobehub.com/mcp/scttbnsn-portkey-admin-mcp) | Unpublished on 2026-09-08. On 2026-10-
|
|
35
|
+
| [LobeHub legacy listing](https://lobehub.com/mcp/scttbnsn-portkey-admin-mcp) | Unpublished on 2026-09-08. On 2026-10-16 the authenticated market CLI listed it as `unpublished` at version 0.3.5, while the canonical `codeswhat-portkey-admin-mcp` listing was claimed and `published` at 0.13.0 | Nothing to do; only the canonical listing is published |
|
|
36
36
|
| [PulseMCP](https://www.pulsemcp.com/servers) | A legacy record uses `io.github.s-b-e-n-s-o-n/portkey-admin-mcp` and an old count; listing changes are paused | Recheck when its submission and correction flow reopens; prefer MCP Registry ingestion |
|
|
37
37
|
| [mcp.so](https://mcp.so/servers/portkey-admin-mcp) | Live but stale under the previous owner, with a visible claim control and conflicting counts | Claim and refresh only through its owner workflow; do not automate an undocumented interface |
|
|
38
38
|
| [mcpservers.org](https://mcpservers.org/servers/s-b-e-n-s-o-n/portkey-admin-mcp) | Scrapes the current README but retains the previous owner slug and a 151-tool headline | Use its **Request update** flow, then treat the result as downstream indexing rather than a release gate |
|
|
@@ -48,8 +48,9 @@ The [Docker MCP Catalog](https://hub.docker.com/mcp) is curated, has a documente
|
|
|
48
48
|
pull-request submission path, and matches the repository's existing non-root
|
|
49
49
|
Docker image and stdio support. The submission is
|
|
50
50
|
[docker/mcp-registry#5026](https://github.com/docker/mcp-registry/pull/5026),
|
|
51
|
-
open and awaiting maintainer review as of 2026-10-
|
|
52
|
-
release
|
|
51
|
+
open and awaiting maintainer review as of 2026-10-16. Its `source.commit` is the
|
|
52
|
+
release pin; refresh that pin, the PR release description, and discovery evidence
|
|
53
|
+
after publication. It is not listed until Docker merges it and the catalog is live.
|
|
53
54
|
|
|
54
55
|
[Smithery](https://smithery.ai/docs/build/publish) is deferred. Its current
|
|
55
56
|
publishing paths expect a public Streamable HTTP endpoint or an MCPB bundle for a
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Prisma AIRS interoperability
|
|
2
2
|
|
|
3
|
-
Last verified: 2026-
|
|
3
|
+
Last verified: 2026-10-16
|
|
4
4
|
|
|
5
5
|
## Short answer
|
|
6
6
|
|
|
@@ -12,16 +12,35 @@ Changing `PORTKEY_BASE_URL` to a Prisma AIRS or Strata Cloud Manager URL will no
|
|
|
12
12
|
|
|
13
13
|
| Surface | Management interface | Authentication | What this project supports |
|
|
14
14
|
|---|---|---|---|
|
|
15
|
-
| Portkey Admin API | `https://api.portkey.ai/v1` or a compatible self-hosted control plane | `x-portkey-api-key` |
|
|
15
|
+
| Portkey Admin API | `https://api.portkey.ai/v1` or a compatible self-hosted control plane | `x-portkey-api-key` | Support through 22 tool domains |
|
|
16
16
|
| Portkey public model catalog | `https://api.portkey.ai/model-configs/...` | None | `get_model_pricing` |
|
|
17
|
-
| Prisma AIRS AI Gateway |
|
|
17
|
+
| Prisma AIRS AI Gateway | Published control-plane and admin APIs under `https://api.apps.paloaltonetworks.com/ai_gw` | `Authorization: Bearer` using Prisma AIRS / SCM credentials | Published management contract available; no direct adapter yet |
|
|
18
18
|
| Prisma AIRS security MCP server | Regional Palo Alto Networks `/mcp` endpoint | `x-pan-token`, OAuth, and optional `x-pan-profile` | Works as a separate MCP server; it scans and secures AI interactions rather than managing Portkey resources |
|
|
19
19
|
|
|
20
|
-
Palo Alto Networks
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
Palo Alto Networks now publishes a Prisma AIRS AI Gateway management OpenAPI,
|
|
21
|
+
linked from Portkey's documentation index alongside the Portkey OpenAPI. It
|
|
22
|
+
includes configs, integrations, API keys, guardrails, MCP servers, rate/usage
|
|
23
|
+
policies, analytics, secret references, and deployments. The earlier August
|
|
24
|
+
assessment that no equivalent public management contract existed is superseded.
|
|
25
|
+
|
|
26
|
+
The two APIs still differ:
|
|
27
|
+
|
|
28
|
+
- Prisma AIRS uses Bearer authentication. This server sends `x-portkey-api-key`.
|
|
29
|
+
- Management routes have separate `/ai_gw/v2` and `/ai_gw/admin/v2` bases, with
|
|
30
|
+
organisation guardrails also published under `/ai_gw/admin/v2/guardrails`.
|
|
31
|
+
- API-key creation is `/api-keys/{sub-type}`, without Portkey's scope segment.
|
|
32
|
+
- The published Prisma specification omits the top-level prompts, prompt
|
|
33
|
+
partials, collections, labels, users, workspaces, virtual keys, audit logs,
|
|
34
|
+
and log-export management domains. Some user/workspace subresources remain.
|
|
35
|
+
- The Prisma specification's README says nothing has been verified against the
|
|
36
|
+
running API; inherited schemas remain unverified and descriptions are mostly
|
|
37
|
+
empty. Its published version is evidence for adapter design, not verified
|
|
38
|
+
production parity.
|
|
39
|
+
|
|
40
|
+
These differences preserve the recommendation to use separate servers today.
|
|
41
|
+
A future adapter must select the right plane per capability, authenticate for
|
|
42
|
+
Prisma AIRS, and omit unsupported tools. Replacing only `PORTKEY_BASE_URL`
|
|
43
|
+
would send the wrong authentication and some requests to the wrong routes.
|
|
25
44
|
|
|
26
45
|
## Recommended coexistence
|
|
27
46
|
|
|
@@ -53,7 +72,9 @@ Use `portkey-admin` for control-plane changes. Use `prisma-airs-security` for th
|
|
|
53
72
|
|
|
54
73
|
## When a direct adapter becomes possible
|
|
55
74
|
|
|
56
|
-
A
|
|
75
|
+
A public management specification is now available. Before shipping a native
|
|
76
|
+
Prisma AIRS mode, verify its published contracts against a credentialed tenant.
|
|
77
|
+
The adapter will need its own:
|
|
57
78
|
|
|
58
79
|
- base URL and authentication strategy;
|
|
59
80
|
- mapping for tenants, workspaces, guardrails, integrations, and logs;
|
|
@@ -67,4 +88,8 @@ That should be a distinct adapter or tool domain, not a silent reinterpretation
|
|
|
67
88
|
- [Palo Alto Networks completes the Portkey acquisition](https://investors.paloaltonetworks.com/news-releases/news-release-details/palo-alto-networks-completes-acquisition-portkey-secure-ai)
|
|
68
89
|
- [Configure Prisma AIRS AI Gateway](https://docs.paloaltonetworks.com/ai-runtime-security/administration/configure-ai-gateway)
|
|
69
90
|
- [Configure the Prisma AIRS security MCP server](https://docs.paloaltonetworks.com/ai-runtime-security/activation-and-onboarding/prisma-airs-mcp-server-for-centralized-ai-agent-security/configure-mcp-server-security-using-prisma-airs)
|
|
91
|
+
- [Portkey documentation index, linking both specifications](https://portkey.ai/docs/llms.txt)
|
|
92
|
+
- [Prisma AIRS management specification and verification limits](https://github.com/PaloAltoNetworks/openapi)
|
|
93
|
+
- [Prisma AIRS management server declarations](https://github.com/PaloAltoNetworks/openapi/blob/main/_project/servers.yaml)
|
|
94
|
+
- [Prisma AIRS API-key path change](https://github.com/PaloAltoNetworks/openapi/commit/be8e1dc1e893d7034faf2d250973e9f0df1a2784)
|
|
70
95
|
- [Portkey OpenAPI](https://github.com/Portkey-AI/openapi)
|
package/package.json
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"lint": "biome lint .",
|
|
12
12
|
"format": "biome format --write .",
|
|
13
13
|
"check": "biome check --write .",
|
|
14
|
-
"test": "tsx --test tests/config.test.ts tests/security-worker-layout.test.ts tests/security-edge-runtime.test.ts tests/contract.test.ts tests/contract-extended.test.ts tests/unit.test.ts tests/services.test.ts tests/base-services.test.ts tests/fetch.test.ts tests/http-server.test.ts tests/http-edge-runtime.test.ts tests/http-edge-runtime-final.test.ts tests/tools-observability.test.ts tests/tools-catalog.test.ts tests/tools-prompts-configs.test.ts tests/tools-remaining.test.ts tests/tools-edge-workflows.test.ts tests/tools-platform.test.ts tests/tools-keys.test.ts tests/tools-users.test.ts tests/tools-analytics.test.ts tests/current-api.test.ts tests/release-readiness.test.ts tests/lobehub-generator.test.ts tests/auth-clerk.test.ts tests/lib-event-store.test.ts tests/lib-session-mcp.test.ts tests/smoke-outcomes.test.ts",
|
|
15
|
-
"test:coverage": "tsx --test --experimental-test-coverage --test-coverage-include='src/**/*.ts' --test-coverage-lines=80 $TEST_COVERAGE_REPORTERS tests/config.test.ts tests/security-worker-layout.test.ts tests/security-edge-runtime.test.ts tests/contract.test.ts tests/contract-extended.test.ts tests/unit.test.ts tests/services.test.ts tests/base-services.test.ts tests/fetch.test.ts tests/http-server.test.ts tests/http-edge-runtime.test.ts tests/http-edge-runtime-final.test.ts tests/tools-observability.test.ts tests/tools-catalog.test.ts tests/tools-prompts-configs.test.ts tests/tools-remaining.test.ts tests/tools-edge-workflows.test.ts tests/tools-platform.test.ts tests/tools-keys.test.ts tests/tools-users.test.ts tests/tools-analytics.test.ts tests/current-api.test.ts tests/release-readiness.test.ts tests/lobehub-generator.test.ts tests/auth-clerk.test.ts tests/lib-event-store.test.ts tests/lib-session-mcp.test.ts tests/smoke-outcomes.test.ts",
|
|
14
|
+
"test": "tsx --test tests/config.test.ts tests/security-worker-layout.test.ts tests/security-edge-runtime.test.ts tests/contract.test.ts tests/contract-extended.test.ts tests/unit.test.ts tests/services.test.ts tests/base-services.test.ts tests/fetch.test.ts tests/http-server.test.ts tests/http-edge-runtime.test.ts tests/http-edge-runtime-final.test.ts tests/tools-observability.test.ts tests/tools-catalog.test.ts tests/tools-prompts-configs.test.ts tests/tools-remaining.test.ts tests/tools-edge-workflows.test.ts tests/tools-platform.test.ts tests/tools-keys.test.ts tests/tools-users.test.ts tests/tools-analytics.test.ts tests/current-api.test.ts tests/tools-governance.test.ts tests/release-readiness.test.ts tests/lobehub-generator.test.ts tests/auth-clerk.test.ts tests/lib-event-store.test.ts tests/lib-session-mcp.test.ts tests/smoke-outcomes.test.ts tests/request-path.test.ts",
|
|
15
|
+
"test:coverage": "tsx --test --experimental-test-coverage --test-coverage-include='src/**/*.ts' --test-coverage-lines=80 $TEST_COVERAGE_REPORTERS tests/config.test.ts tests/security-worker-layout.test.ts tests/security-edge-runtime.test.ts tests/contract.test.ts tests/contract-extended.test.ts tests/unit.test.ts tests/services.test.ts tests/base-services.test.ts tests/fetch.test.ts tests/http-server.test.ts tests/http-edge-runtime.test.ts tests/http-edge-runtime-final.test.ts tests/tools-observability.test.ts tests/tools-catalog.test.ts tests/tools-prompts-configs.test.ts tests/tools-remaining.test.ts tests/tools-edge-workflows.test.ts tests/tools-platform.test.ts tests/tools-keys.test.ts tests/tools-users.test.ts tests/tools-analytics.test.ts tests/current-api.test.ts tests/tools-governance.test.ts tests/release-readiness.test.ts tests/lobehub-generator.test.ts tests/auth-clerk.test.ts tests/lib-event-store.test.ts tests/lib-session-mcp.test.ts tests/smoke-outcomes.test.ts tests/request-path.test.ts",
|
|
16
16
|
"test:lobehub-generator": "tsx --test tests/lobehub-generator.test.ts",
|
|
17
17
|
"test:coverage:qlty": "mkdir -p coverage && TEST_COVERAGE_REPORTERS=\"--test-reporter=lcov --test-reporter-destination=$PWD/coverage/lcov.info --test-reporter=spec --test-reporter-destination=stdout\" npm run test:coverage",
|
|
18
18
|
"dev": "tsx --watch src/index.ts",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"engines": {
|
|
40
40
|
"node": ">=24"
|
|
41
41
|
},
|
|
42
|
-
"packageManager": "npm@12.
|
|
42
|
+
"packageManager": "npm@12.2.0",
|
|
43
43
|
"files": [
|
|
44
44
|
"build",
|
|
45
45
|
"ENDPOINTS.md",
|
|
@@ -48,18 +48,18 @@
|
|
|
48
48
|
"docs/VERCEL_DEPLOYMENT.md"
|
|
49
49
|
],
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
51
|
+
"@modelcontextprotocol/sdk": "^1.32.1",
|
|
52
52
|
"cors": "^2.8.6",
|
|
53
|
-
"express": "^5.
|
|
54
|
-
"express-rate-limit": "^8.
|
|
53
|
+
"express": "^5.3.0",
|
|
54
|
+
"express-rate-limit": "^8.7.1",
|
|
55
55
|
"helmet": "^8.3.0",
|
|
56
56
|
"jose": "^6.2.2",
|
|
57
|
-
"redis": "^6.
|
|
58
|
-
"zod": "^4.6.
|
|
57
|
+
"redis": "^6.3.0",
|
|
58
|
+
"zod": "^4.6.7"
|
|
59
59
|
},
|
|
60
60
|
"name": "portkey-admin-mcp",
|
|
61
61
|
"mcpName": "io.github.CodesWhat/portkey-admin-mcp",
|
|
62
|
-
"version": "0.
|
|
62
|
+
"version": "0.14.0",
|
|
63
63
|
"main": "build/index.js",
|
|
64
64
|
"keywords": [
|
|
65
65
|
"mcp",
|
|
@@ -88,14 +88,14 @@
|
|
|
88
88
|
"url": "https://github.com/CodesWhat/portkey-admin-mcp/issues"
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
|
-
"@biomejs/biome": "2.5.
|
|
91
|
+
"@biomejs/biome": "2.5.15",
|
|
92
92
|
"@types/cors": "2.8.19",
|
|
93
93
|
"@types/express": "5.0.6",
|
|
94
|
-
"@types/node": "24.
|
|
95
|
-
"dotenv": "18.0.
|
|
94
|
+
"@types/node": "24.19.2",
|
|
95
|
+
"dotenv": "18.0.8",
|
|
96
96
|
"esbuild": "0.28.2",
|
|
97
|
-
"knip": "6.
|
|
98
|
-
"lefthook": "2.
|
|
97
|
+
"knip": "6.41.0",
|
|
98
|
+
"lefthook": "2.2.2",
|
|
99
99
|
"tsx": "4.23.15",
|
|
100
100
|
"typescript": "7.0.2"
|
|
101
101
|
}
|