@topolo/mcp 0.7.0 → 0.7.1
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/README.md +27 -4
- package/dist/dispatch.js +3 -2
- package/dist/http.js +10 -9
- package/dist/index.js +37 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -201,10 +201,33 @@ npx @modelcontextprotocol/inspector node dist/index.js
|
|
|
201
201
|
|
|
202
202
|
## Release Flow
|
|
203
203
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
204
|
+
Agent packages are released locally from the `staging` branch after its package
|
|
205
|
+
gates pass. Publish in dependency order (`@topolo/sdk`, `@topolo/cli`, then
|
|
206
|
+
`@topolo/mcp`) so every public dependency already exists in the registry.
|
|
207
|
+
|
|
208
|
+
For each package, run its tests, typecheck, build, and tarball verification:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
pnpm --dir packages/topolo-mcp test
|
|
212
|
+
pnpm --dir packages/topolo-mcp typecheck
|
|
213
|
+
pnpm --dir packages/topolo-mcp build
|
|
214
|
+
node tooling/verify-npm-package.mjs packages/topolo-mcp
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
The npm token is stored in the macOS Keychain under `registry.npmjs.org`. Use a
|
|
218
|
+
temporary npm config so the token is never written into the repository or
|
|
219
|
+
printed:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
printf '//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}\n' > /tmp/topolo-release.npmrc
|
|
223
|
+
NODE_AUTH_TOKEN="$(security find-generic-password -s registry.npmjs.org -w)" \
|
|
224
|
+
NPM_CONFIG_USERCONFIG=/tmp/topolo-release.npmrc \
|
|
225
|
+
sh -c 'cd packages/topolo-mcp && npm publish --access public'
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
After publishing, install exact versions into an empty temporary directory and
|
|
229
|
+
exercise the SDK exports, CLI version command, MCP exports, and `topolo-mcp`
|
|
230
|
+
executable before updating `topoloPublishedVersion`.
|
|
208
231
|
|
|
209
232
|
## Phase 2 (planned)
|
|
210
233
|
|
package/dist/dispatch.js
CHANGED
|
@@ -79,7 +79,7 @@ var TOOLS = [
|
|
|
79
79
|
{
|
|
80
80
|
name: "topolo_search_applications",
|
|
81
81
|
title: "Search Topolo applications the agent can reach",
|
|
82
|
-
description: "Searches the credential-scoped application registry with a bounded page and continuation cursor. Returns granted permissions, API URL, and launch URL without loading the global platform catalog.",
|
|
82
|
+
description: "Searches the credential-scoped application registry with a bounded page and continuation cursor. Returns actionService as the canonical selector for topolo_search_actions, plus granted permissions, API URL, and launch URL without loading the global platform catalog.",
|
|
83
83
|
requiredScopes: [],
|
|
84
84
|
destructive: false,
|
|
85
85
|
inputSchema: {
|
|
@@ -102,6 +102,7 @@ var TOOLS = [
|
|
|
102
102
|
return {
|
|
103
103
|
id,
|
|
104
104
|
appId: entry.appId,
|
|
105
|
+
actionService: entry.appId,
|
|
105
106
|
slug: entry.slug,
|
|
106
107
|
name: entry.name,
|
|
107
108
|
apiBaseUrl: entry.apiBaseUrl,
|
|
@@ -128,7 +129,7 @@ var TOOLS = [
|
|
|
128
129
|
properties: {
|
|
129
130
|
service: {
|
|
130
131
|
type: "string",
|
|
131
|
-
description: "Required app id, slug,
|
|
132
|
+
description: "Required application selector. Prefer actionService from topolo_search_applications; canonical app id, slug, and name are also accepted."
|
|
132
133
|
},
|
|
133
134
|
query: { type: "string" },
|
|
134
135
|
cursor: { type: "string" },
|
package/dist/http.js
CHANGED
|
@@ -3098,9 +3098,9 @@ var require_data = __commonJS({
|
|
|
3098
3098
|
}
|
|
3099
3099
|
});
|
|
3100
3100
|
|
|
3101
|
-
// ../../node_modules/.pnpm/fast-uri@3.1.
|
|
3101
|
+
// ../../node_modules/.pnpm/fast-uri@3.1.3/node_modules/fast-uri/lib/utils.js
|
|
3102
3102
|
var require_utils = __commonJS({
|
|
3103
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
3103
|
+
"../../node_modules/.pnpm/fast-uri@3.1.3/node_modules/fast-uri/lib/utils.js"(exports, module) {
|
|
3104
3104
|
"use strict";
|
|
3105
3105
|
var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
|
|
3106
3106
|
var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
|
|
@@ -3411,9 +3411,9 @@ var require_utils = __commonJS({
|
|
|
3411
3411
|
}
|
|
3412
3412
|
});
|
|
3413
3413
|
|
|
3414
|
-
// ../../node_modules/.pnpm/fast-uri@3.1.
|
|
3414
|
+
// ../../node_modules/.pnpm/fast-uri@3.1.3/node_modules/fast-uri/lib/schemes.js
|
|
3415
3415
|
var require_schemes = __commonJS({
|
|
3416
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
3416
|
+
"../../node_modules/.pnpm/fast-uri@3.1.3/node_modules/fast-uri/lib/schemes.js"(exports, module) {
|
|
3417
3417
|
"use strict";
|
|
3418
3418
|
var { isUUID } = require_utils();
|
|
3419
3419
|
var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
|
|
@@ -3621,9 +3621,9 @@ var require_schemes = __commonJS({
|
|
|
3621
3621
|
}
|
|
3622
3622
|
});
|
|
3623
3623
|
|
|
3624
|
-
// ../../node_modules/.pnpm/fast-uri@3.1.
|
|
3624
|
+
// ../../node_modules/.pnpm/fast-uri@3.1.3/node_modules/fast-uri/index.js
|
|
3625
3625
|
var require_fast_uri = __commonJS({
|
|
3626
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
3626
|
+
"../../node_modules/.pnpm/fast-uri@3.1.3/node_modules/fast-uri/index.js"(exports, module) {
|
|
3627
3627
|
"use strict";
|
|
3628
3628
|
var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, escapePreservingEscapes, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
3629
3629
|
var { SCHEMES, getSchemeHandler } = require_schemes();
|
|
@@ -3836,7 +3836,7 @@ var require_fast_uri = __commonJS({
|
|
|
3836
3836
|
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
|
|
3837
3837
|
if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
|
|
3838
3838
|
try {
|
|
3839
|
-
parsed.host = URL
|
|
3839
|
+
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
3840
3840
|
} catch (e) {
|
|
3841
3841
|
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
3842
3842
|
}
|
|
@@ -15887,7 +15887,7 @@ var TOOLS = [
|
|
|
15887
15887
|
{
|
|
15888
15888
|
name: "topolo_search_applications",
|
|
15889
15889
|
title: "Search Topolo applications the agent can reach",
|
|
15890
|
-
description: "Searches the credential-scoped application registry with a bounded page and continuation cursor. Returns granted permissions, API URL, and launch URL without loading the global platform catalog.",
|
|
15890
|
+
description: "Searches the credential-scoped application registry with a bounded page and continuation cursor. Returns actionService as the canonical selector for topolo_search_actions, plus granted permissions, API URL, and launch URL without loading the global platform catalog.",
|
|
15891
15891
|
requiredScopes: [],
|
|
15892
15892
|
destructive: false,
|
|
15893
15893
|
inputSchema: {
|
|
@@ -15910,6 +15910,7 @@ var TOOLS = [
|
|
|
15910
15910
|
return {
|
|
15911
15911
|
id,
|
|
15912
15912
|
appId: entry.appId,
|
|
15913
|
+
actionService: entry.appId,
|
|
15913
15914
|
slug: entry.slug,
|
|
15914
15915
|
name: entry.name,
|
|
15915
15916
|
apiBaseUrl: entry.apiBaseUrl,
|
|
@@ -15936,7 +15937,7 @@ var TOOLS = [
|
|
|
15936
15937
|
properties: {
|
|
15937
15938
|
service: {
|
|
15938
15939
|
type: "string",
|
|
15939
|
-
description: "Required app id, slug,
|
|
15940
|
+
description: "Required application selector. Prefer actionService from topolo_search_applications; canonical app id, slug, and name are also accepted."
|
|
15940
15941
|
},
|
|
15941
15942
|
query: { type: "string" },
|
|
15942
15943
|
cursor: { type: "string" },
|
package/dist/index.js
CHANGED
|
@@ -72,6 +72,7 @@ var APP_API_URLS = {
|
|
|
72
72
|
bugfix: "https://bugfix.topolo.app",
|
|
73
73
|
bytes: "https://bytes.topolo.app",
|
|
74
74
|
calendar: "https://calendar.topolo.app",
|
|
75
|
+
campaigns: "https://campaigns.topolo.app",
|
|
75
76
|
capacity: "https://capacity.topolo.app",
|
|
76
77
|
chat: "https://chat.topolo.app",
|
|
77
78
|
commerce: "https://commerce.topolo.app",
|
|
@@ -330,6 +331,38 @@ var APPLICATIONS = {
|
|
|
330
331
|
}
|
|
331
332
|
]
|
|
332
333
|
},
|
|
334
|
+
"campaigns": {
|
|
335
|
+
"id": "campaigns",
|
|
336
|
+
"appDir": "TopoloCampaigns",
|
|
337
|
+
"name": "topolo-campaigns",
|
|
338
|
+
"packageName": "topolo-campaigns",
|
|
339
|
+
"productionUrl": "https://campaigns.topolo.app",
|
|
340
|
+
"services": [
|
|
341
|
+
"campaigns"
|
|
342
|
+
],
|
|
343
|
+
"deployTargets": [
|
|
344
|
+
{
|
|
345
|
+
"name": "topolo-campaigns",
|
|
346
|
+
"kind": "worker",
|
|
347
|
+
"apiUrl": "https://campaigns.topolo.app",
|
|
348
|
+
"domains": [
|
|
349
|
+
"campaigns.topolo.app"
|
|
350
|
+
],
|
|
351
|
+
"routes": [
|
|
352
|
+
"campaigns.topolo.app"
|
|
353
|
+
],
|
|
354
|
+
"appId": "campaigns"
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"name": "topolo-campaigns-api",
|
|
358
|
+
"kind": "worker",
|
|
359
|
+
"apiUrl": null,
|
|
360
|
+
"domains": [],
|
|
361
|
+
"routes": [],
|
|
362
|
+
"appId": null
|
|
363
|
+
}
|
|
364
|
+
]
|
|
365
|
+
},
|
|
333
366
|
"capacity": {
|
|
334
367
|
"id": "capacity",
|
|
335
368
|
"appDir": "TopoloCapacity",
|
|
@@ -2980,6 +3013,7 @@ var APP_API_URLS2 = {
|
|
|
2980
3013
|
bugfix: "https://bugfix.topolo.app",
|
|
2981
3014
|
bytes: "https://bytes.topolo.app",
|
|
2982
3015
|
calendar: "https://calendar.topolo.app",
|
|
3016
|
+
campaigns: "https://campaigns.topolo.app",
|
|
2983
3017
|
capacity: "https://capacity.topolo.app",
|
|
2984
3018
|
chat: "https://chat.topolo.app",
|
|
2985
3019
|
commerce: "https://commerce.topolo.app",
|
|
@@ -3372,7 +3406,7 @@ var TOOLS = [
|
|
|
3372
3406
|
{
|
|
3373
3407
|
name: "topolo_search_applications",
|
|
3374
3408
|
title: "Search Topolo applications the agent can reach",
|
|
3375
|
-
description: "Searches the credential-scoped application registry with a bounded page and continuation cursor. Returns granted permissions, API URL, and launch URL without loading the global platform catalog.",
|
|
3409
|
+
description: "Searches the credential-scoped application registry with a bounded page and continuation cursor. Returns actionService as the canonical selector for topolo_search_actions, plus granted permissions, API URL, and launch URL without loading the global platform catalog.",
|
|
3376
3410
|
requiredScopes: [],
|
|
3377
3411
|
destructive: false,
|
|
3378
3412
|
inputSchema: {
|
|
@@ -3395,6 +3429,7 @@ var TOOLS = [
|
|
|
3395
3429
|
return {
|
|
3396
3430
|
id,
|
|
3397
3431
|
appId: entry.appId,
|
|
3432
|
+
actionService: entry.appId,
|
|
3398
3433
|
slug: entry.slug,
|
|
3399
3434
|
name: entry.name,
|
|
3400
3435
|
apiBaseUrl: entry.apiBaseUrl,
|
|
@@ -3421,7 +3456,7 @@ var TOOLS = [
|
|
|
3421
3456
|
properties: {
|
|
3422
3457
|
service: {
|
|
3423
3458
|
type: "string",
|
|
3424
|
-
description: "Required app id, slug,
|
|
3459
|
+
description: "Required application selector. Prefer actionService from topolo_search_applications; canonical app id, slug, and name are also accepted."
|
|
3425
3460
|
},
|
|
3426
3461
|
query: { type: "string" },
|
|
3427
3462
|
cursor: { type: "string" },
|
package/package.json
CHANGED