queue-pilot 0.2.0 → 0.5.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/LICENSE +1 -1
- package/README.md +209 -31
- package/dist/broker/factory.d.ts +25 -0
- package/dist/broker/factory.js +35 -0
- package/dist/broker/factory.js.map +1 -0
- package/dist/broker/registry.d.ts +8 -0
- package/dist/broker/registry.js +95 -0
- package/dist/broker/registry.js.map +1 -0
- package/dist/broker/tool-definition.d.ts +7 -0
- package/dist/broker/tool-definition.js +2 -0
- package/dist/broker/tool-definition.js.map +1 -0
- package/dist/broker/types.d.ts +71 -0
- package/dist/broker/types.js +10 -0
- package/dist/broker/types.js.map +1 -0
- package/dist/brokers/kafka/adapter.d.ts +18 -0
- package/dist/brokers/kafka/adapter.js +83 -0
- package/dist/brokers/kafka/adapter.js.map +1 -0
- package/dist/brokers/kafka/tools.d.ts +3 -0
- package/dist/brokers/kafka/tools.js +51 -0
- package/dist/brokers/kafka/tools.js.map +1 -0
- package/dist/brokers/rabbitmq/adapter.d.ts +19 -0
- package/dist/brokers/rabbitmq/adapter.js +114 -0
- package/dist/brokers/rabbitmq/adapter.js.map +1 -0
- package/dist/brokers/rabbitmq/tools.d.ts +3 -0
- package/dist/brokers/rabbitmq/tools.js +124 -0
- package/dist/brokers/rabbitmq/tools.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.js +208 -30
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +24 -0
- package/dist/init.js +269 -0
- package/dist/init.js.map +1 -0
- package/dist/kafka/client.d.ts +63 -0
- package/dist/kafka/client.js +256 -0
- package/dist/kafka/client.js.map +1 -0
- package/dist/kafka/types.d.ts +48 -0
- package/dist/kafka/types.js +2 -0
- package/dist/kafka/types.js.map +1 -0
- package/dist/rabbitmq/client.d.ts +14 -2
- package/dist/rabbitmq/client.js +44 -7
- package/dist/rabbitmq/client.js.map +1 -1
- package/dist/rabbitmq/types.d.ts +64 -4
- package/dist/schemas/loader.d.ts +0 -1
- package/dist/schemas/loader.js +23 -7
- package/dist/schemas/loader.js.map +1 -1
- package/dist/schemas/types.d.ts +5 -6
- package/dist/schemas/validator.d.ts +0 -1
- package/dist/schemas/validator.js +11 -64
- package/dist/schemas/validator.js.map +1 -1
- package/dist/server.d.ts +5 -4
- package/dist/server.js +92 -194
- package/dist/server.js.map +1 -1
- package/dist/startup.d.ts +18 -0
- package/dist/startup.js +36 -0
- package/dist/startup.js.map +1 -0
- package/dist/tools/check-health.d.ts +6 -0
- package/dist/tools/check-health.js +9 -0
- package/dist/tools/check-health.js.map +1 -0
- package/dist/tools/create-queue.d.ts +2 -3
- package/dist/tools/create-queue.js +4 -2
- package/dist/tools/create-queue.js.map +1 -1
- package/dist/tools/delete-queue.d.ts +11 -0
- package/dist/tools/delete-queue.js +9 -0
- package/dist/tools/delete-queue.js.map +1 -0
- package/dist/tools/get-overview.d.ts +23 -0
- package/dist/tools/get-overview.js +13 -0
- package/dist/tools/get-overview.js.map +1 -0
- package/dist/tools/get-queue.d.ts +19 -0
- package/dist/tools/get-queue.js +18 -0
- package/dist/tools/get-queue.js.map +1 -0
- package/dist/tools/get-schema.d.ts +8 -6
- package/dist/tools/get-schema.js.map +1 -1
- package/dist/tools/inspect-queue.d.ts +5 -3
- package/dist/tools/inspect-queue.js +45 -27
- package/dist/tools/inspect-queue.js.map +1 -1
- package/dist/tools/list-connections.d.ts +14 -0
- package/dist/tools/list-connections.js +16 -0
- package/dist/tools/list-connections.js.map +1 -0
- package/dist/tools/list-consumers.d.ts +11 -0
- package/dist/tools/list-consumers.js +13 -0
- package/dist/tools/list-consumers.js.map +1 -0
- package/dist/tools/list-queues.d.ts +2 -3
- package/dist/tools/list-queues.js +4 -4
- package/dist/tools/list-queues.js.map +1 -1
- package/dist/tools/list-schemas.d.ts +0 -1
- package/dist/tools/list-schemas.js +6 -2
- package/dist/tools/list-schemas.js.map +1 -1
- package/dist/tools/peek-messages.d.ts +3 -3
- package/dist/tools/peek-messages.js +5 -4
- package/dist/tools/peek-messages.js.map +1 -1
- package/dist/tools/publish-message.d.ts +3 -4
- package/dist/tools/publish-message.js +12 -6
- package/dist/tools/publish-message.js.map +1 -1
- package/dist/tools/purge-queue.d.ts +2 -3
- package/dist/tools/purge-queue.js +3 -3
- package/dist/tools/purge-queue.js.map +1 -1
- package/dist/tools/validate-message.d.ts +0 -1
- package/dist/tools/validate-message.js.map +1 -1
- package/dist/version.d.ts +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +21 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/rabbitmq/client.d.ts.map +0 -1
- package/dist/rabbitmq/types.d.ts.map +0 -1
- package/dist/schemas/loader.d.ts.map +0 -1
- package/dist/schemas/types.d.ts.map +0 -1
- package/dist/schemas/validator.d.ts.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/tools/create-binding.d.ts +0 -15
- package/dist/tools/create-binding.d.ts.map +0 -1
- package/dist/tools/create-binding.js +0 -10
- package/dist/tools/create-binding.js.map +0 -1
- package/dist/tools/create-queue.d.ts.map +0 -1
- package/dist/tools/get-schema.d.ts.map +0 -1
- package/dist/tools/inspect-queue.d.ts.map +0 -1
- package/dist/tools/list-bindings.d.ts +0 -11
- package/dist/tools/list-bindings.d.ts.map +0 -1
- package/dist/tools/list-bindings.js +0 -12
- package/dist/tools/list-bindings.js.map +0 -1
- package/dist/tools/list-exchanges.d.ts +0 -10
- package/dist/tools/list-exchanges.d.ts.map +0 -1
- package/dist/tools/list-exchanges.js +0 -11
- package/dist/tools/list-exchanges.js.map +0 -1
- package/dist/tools/list-queues.d.ts.map +0 -1
- package/dist/tools/list-schemas.d.ts.map +0 -1
- package/dist/tools/peek-messages.d.ts.map +0 -1
- package/dist/tools/publish-message.d.ts.map +0 -1
- package/dist/tools/purge-queue.d.ts.map +0 -1
- package/dist/tools/validate-message.d.ts.map +0 -1
package/dist/schemas/types.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export interface SchemaDefinition {
|
|
2
2
|
$id: string;
|
|
3
|
-
$schema
|
|
4
|
-
title
|
|
5
|
-
description
|
|
6
|
-
version
|
|
7
|
-
type
|
|
3
|
+
$schema?: string;
|
|
4
|
+
title?: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
type?: string;
|
|
8
8
|
required?: string[];
|
|
9
9
|
properties?: Record<string, unknown>;
|
|
10
10
|
[key: string]: unknown;
|
|
@@ -24,4 +24,3 @@ export interface ValidationResult {
|
|
|
24
24
|
valid: boolean;
|
|
25
25
|
errors: ValidationError[];
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1,76 +1,23 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
2
1
|
import { createRequire } from "module";
|
|
3
2
|
const require = createRequire(import.meta.url);
|
|
4
|
-
const
|
|
5
|
-
const addFormats = require("ajv-formats").default ?? require("ajv-formats");
|
|
6
|
-
const JSON_SCHEMA_DRAFT07_KEYWORDS = new Set([
|
|
7
|
-
"$id",
|
|
8
|
-
"$schema",
|
|
9
|
-
"$ref",
|
|
10
|
-
"$comment",
|
|
11
|
-
"title",
|
|
12
|
-
"description",
|
|
13
|
-
"default",
|
|
14
|
-
"readOnly",
|
|
15
|
-
"writeOnly",
|
|
16
|
-
"examples",
|
|
17
|
-
"type",
|
|
18
|
-
"enum",
|
|
19
|
-
"const",
|
|
20
|
-
"properties",
|
|
21
|
-
"required",
|
|
22
|
-
"additionalProperties",
|
|
23
|
-
"patternProperties",
|
|
24
|
-
"propertyNames",
|
|
25
|
-
"minProperties",
|
|
26
|
-
"maxProperties",
|
|
27
|
-
"dependencies",
|
|
28
|
-
"items",
|
|
29
|
-
"additionalItems",
|
|
30
|
-
"contains",
|
|
31
|
-
"minItems",
|
|
32
|
-
"maxItems",
|
|
33
|
-
"uniqueItems",
|
|
34
|
-
"allOf",
|
|
35
|
-
"anyOf",
|
|
36
|
-
"oneOf",
|
|
37
|
-
"not",
|
|
38
|
-
"if",
|
|
39
|
-
"then",
|
|
40
|
-
"else",
|
|
41
|
-
"format",
|
|
42
|
-
"minLength",
|
|
43
|
-
"maxLength",
|
|
44
|
-
"pattern",
|
|
45
|
-
"minimum",
|
|
46
|
-
"maximum",
|
|
47
|
-
"exclusiveMinimum",
|
|
48
|
-
"exclusiveMaximum",
|
|
49
|
-
"multipleOf",
|
|
50
|
-
"contentMediaType",
|
|
51
|
-
"contentEncoding",
|
|
52
|
-
"definitions",
|
|
53
|
-
]);
|
|
54
|
-
function stripNonStandardKeywords(schema) {
|
|
55
|
-
const cleaned = {};
|
|
56
|
-
for (const [key, value] of Object.entries(schema)) {
|
|
57
|
-
if (JSON_SCHEMA_DRAFT07_KEYWORDS.has(key)) {
|
|
58
|
-
cleaned[key] = value;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return cleaned;
|
|
62
|
-
}
|
|
3
|
+
const AjvConstructor = (require("ajv").default ?? require("ajv"));
|
|
4
|
+
const addFormats = (require("ajv-formats").default ?? require("ajv-formats"));
|
|
63
5
|
export class SchemaValidator {
|
|
64
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
6
|
ajv;
|
|
66
7
|
schemas;
|
|
67
8
|
constructor(schemas) {
|
|
68
|
-
this.ajv = new
|
|
9
|
+
this.ajv = new AjvConstructor({ allErrors: true, strict: false });
|
|
69
10
|
addFormats(this.ajv);
|
|
70
11
|
this.schemas = new Map();
|
|
71
12
|
for (const entry of schemas) {
|
|
72
|
-
|
|
73
|
-
|
|
13
|
+
try {
|
|
14
|
+
this.ajv.addSchema(entry.schema, entry.name);
|
|
15
|
+
this.schemas.set(entry.name, entry);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
19
|
+
process.stderr.write(`Warning: skipping schema "${entry.name}": ${msg}\n`);
|
|
20
|
+
}
|
|
74
21
|
}
|
|
75
22
|
}
|
|
76
23
|
validate(schemaName, message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/schemas/validator.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/schemas/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AASvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAuE,CAAC;AACxI,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAA+B,CAAC;AAE5G,MAAM,OAAO,eAAe;IACT,GAAG,CAAc;IACjB,OAAO,CAA2B;IAEnD,YAAY,OAAsB;QAChC,IAAI,CAAC,GAAG,GAAG,IAAI,cAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAEzB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAiC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,OAAgB;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,EAAE;wBACR,OAAO,EAAE,WAAW,UAAU,aAAa;qBAC5C;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAErD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG;YAC7B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,0BAA0B;SACnD,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { SchemaEntry } from "./schemas/types.js";
|
|
3
|
+
import type { BrokerAdapter } from "./broker/types.js";
|
|
4
|
+
import type { ToolDefinition } from "./broker/tool-definition.js";
|
|
3
5
|
export interface ServerConfig {
|
|
4
6
|
schemas: SchemaEntry[];
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
adapter: BrokerAdapter;
|
|
8
|
+
brokerTools?: ToolDefinition[];
|
|
9
|
+
version?: string;
|
|
8
10
|
}
|
|
9
11
|
export declare function createServer(config: ServerConfig): McpServer;
|
|
10
|
-
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.js
CHANGED
|
@@ -1,208 +1,106 @@
|
|
|
1
|
-
import { createRequire } from "module";
|
|
2
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
2
|
import { z } from "zod";
|
|
4
|
-
import { RabbitMQClient } from "./rabbitmq/client.js";
|
|
5
3
|
import { SchemaValidator } from "./schemas/validator.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import { listSchemas } from "./tools/list-schemas.js";
|
|
9
|
-
import { getSchema } from "./tools/get-schema.js";
|
|
10
|
-
import { validateMessage } from "./tools/validate-message.js";
|
|
11
|
-
import { listQueues } from "./tools/list-queues.js";
|
|
12
|
-
import { peekMessages } from "./tools/peek-messages.js";
|
|
13
|
-
import { inspectQueue } from "./tools/inspect-queue.js";
|
|
14
|
-
import { listExchanges } from "./tools/list-exchanges.js";
|
|
15
|
-
import { listBindings } from "./tools/list-bindings.js";
|
|
16
|
-
import { publishMessage } from "./tools/publish-message.js";
|
|
17
|
-
import { purgeQueue } from "./tools/purge-queue.js";
|
|
18
|
-
import { createQueue } from "./tools/create-queue.js";
|
|
19
|
-
import { createBinding } from "./tools/create-binding.js";
|
|
4
|
+
import { registerSchemaTools, registerUniversalTools, registerCapabilityTools, registerBrokerTools, } from "./broker/registry.js";
|
|
5
|
+
import { VERSION } from "./version.js";
|
|
20
6
|
export function createServer(config) {
|
|
21
7
|
const validator = new SchemaValidator(config.schemas);
|
|
22
|
-
const client = new RabbitMQClient({
|
|
23
|
-
url: config.rabbitmqUrl,
|
|
24
|
-
username: config.rabbitmqUser,
|
|
25
|
-
password: config.rabbitmqPass,
|
|
26
|
-
});
|
|
27
8
|
const server = new McpServer({
|
|
28
9
|
name: "queue-pilot",
|
|
29
|
-
version:
|
|
30
|
-
});
|
|
31
|
-
server.tool("list_schemas", "List all loaded message schemas", {}, async () => {
|
|
32
|
-
const result = listSchemas(validator);
|
|
33
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
34
|
-
});
|
|
35
|
-
server.tool("get_schema", "Get the full definition of a specific schema", { name: z.string().describe("Schema name (e.g. 'order.created')") }, async ({ name }) => {
|
|
36
|
-
const result = getSchema(validator, name);
|
|
37
|
-
return {
|
|
38
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
39
|
-
};
|
|
40
|
-
});
|
|
41
|
-
server.tool("validate_message", "Validate a JSON message against a schema", {
|
|
42
|
-
schemaName: z.string().describe("Schema name to validate against"),
|
|
43
|
-
message: z.string().describe("JSON message payload to validate"),
|
|
44
|
-
}, async ({ schemaName, message }) => {
|
|
45
|
-
const result = validateMessage(validator, schemaName, message);
|
|
46
|
-
return {
|
|
47
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
server.tool("list_queues", "List all RabbitMQ queues with message counts", {
|
|
51
|
-
vhost: z
|
|
52
|
-
.string()
|
|
53
|
-
.default("/")
|
|
54
|
-
.describe("RabbitMQ vhost (default: '/')"),
|
|
55
|
-
}, async ({ vhost }) => {
|
|
56
|
-
const result = await listQueues(client, vhost);
|
|
57
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
58
|
-
});
|
|
59
|
-
server.tool("peek_messages", "View messages in a queue without consuming them", {
|
|
60
|
-
queue: z.string().describe("Queue name"),
|
|
61
|
-
count: z
|
|
62
|
-
.number()
|
|
63
|
-
.int()
|
|
64
|
-
.min(1)
|
|
65
|
-
.max(50)
|
|
66
|
-
.default(5)
|
|
67
|
-
.describe("Number of messages to peek (default 5, max 50)"),
|
|
68
|
-
vhost: z
|
|
69
|
-
.string()
|
|
70
|
-
.default("/")
|
|
71
|
-
.describe("RabbitMQ vhost (default: '/')"),
|
|
72
|
-
}, async ({ queue, count, vhost }) => {
|
|
73
|
-
const result = await peekMessages(client, vhost, queue, count);
|
|
74
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
75
|
-
});
|
|
76
|
-
server.tool("inspect_queue", "View messages in a queue and validate each against its schema", {
|
|
77
|
-
queue: z.string().describe("Queue name"),
|
|
78
|
-
count: z
|
|
79
|
-
.number()
|
|
80
|
-
.int()
|
|
81
|
-
.min(1)
|
|
82
|
-
.max(50)
|
|
83
|
-
.default(5)
|
|
84
|
-
.describe("Number of messages to inspect (default 5, max 50)"),
|
|
85
|
-
vhost: z
|
|
86
|
-
.string()
|
|
87
|
-
.default("/")
|
|
88
|
-
.describe("RabbitMQ vhost (default: '/')"),
|
|
89
|
-
}, async ({ queue, count, vhost }) => {
|
|
90
|
-
const result = await inspectQueue(client, validator, vhost, queue, count);
|
|
91
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
92
|
-
});
|
|
93
|
-
server.tool("list_exchanges", "List all RabbitMQ exchanges", {
|
|
94
|
-
vhost: z
|
|
95
|
-
.string()
|
|
96
|
-
.default("/")
|
|
97
|
-
.describe("RabbitMQ vhost (default: '/')"),
|
|
98
|
-
}, async ({ vhost }) => {
|
|
99
|
-
const result = await listExchanges(client, vhost);
|
|
100
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
101
|
-
});
|
|
102
|
-
server.tool("list_bindings", "List bindings between exchanges and queues", {
|
|
103
|
-
vhost: z
|
|
104
|
-
.string()
|
|
105
|
-
.default("/")
|
|
106
|
-
.describe("RabbitMQ vhost (default: '/')"),
|
|
107
|
-
}, async ({ vhost }) => {
|
|
108
|
-
const result = await listBindings(client, vhost);
|
|
109
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
10
|
+
version: config.version ?? VERSION,
|
|
110
11
|
});
|
|
111
|
-
server
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
.default("/")
|
|
132
|
-
.describe("RabbitMQ vhost (default: '/')"),
|
|
133
|
-
}, async ({ exchange, routing_key, payload, message_type, headers, validate, vhost }) => {
|
|
134
|
-
const result = await publishMessage(client, validator, {
|
|
135
|
-
exchange,
|
|
136
|
-
routing_key,
|
|
137
|
-
payload,
|
|
138
|
-
message_type,
|
|
139
|
-
headers,
|
|
140
|
-
validate,
|
|
141
|
-
vhost,
|
|
142
|
-
});
|
|
143
|
-
return {
|
|
144
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
145
|
-
};
|
|
146
|
-
});
|
|
147
|
-
server.tool("purge_queue", "Remove all messages from a RabbitMQ queue. Returns the number of messages purged.", {
|
|
148
|
-
queue: z.string().describe("Queue name"),
|
|
149
|
-
vhost: z
|
|
150
|
-
.string()
|
|
151
|
-
.default("/")
|
|
152
|
-
.describe("RabbitMQ vhost (default: '/')"),
|
|
153
|
-
}, async ({ queue, vhost }) => {
|
|
154
|
-
const result = await purgeQueue(client, vhost, queue);
|
|
155
|
-
return {
|
|
156
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
157
|
-
};
|
|
158
|
-
});
|
|
159
|
-
server.tool("create_queue", "Create a new RabbitMQ queue. Idempotent if settings match; errors if the queue exists with different settings.", {
|
|
160
|
-
queue: z.string().describe("Queue name"),
|
|
161
|
-
durable: z
|
|
162
|
-
.boolean()
|
|
163
|
-
.default(false)
|
|
164
|
-
.describe("Survive broker restart (default: false)"),
|
|
165
|
-
auto_delete: z
|
|
166
|
-
.boolean()
|
|
167
|
-
.default(false)
|
|
168
|
-
.describe("Delete when last consumer disconnects (default: false)"),
|
|
169
|
-
vhost: z
|
|
170
|
-
.string()
|
|
171
|
-
.default("/")
|
|
172
|
-
.describe("RabbitMQ vhost (default: '/')"),
|
|
173
|
-
}, async ({ queue, durable, auto_delete, vhost }) => {
|
|
174
|
-
const result = await createQueue(client, {
|
|
175
|
-
queue,
|
|
176
|
-
durable,
|
|
177
|
-
auto_delete,
|
|
178
|
-
vhost,
|
|
179
|
-
});
|
|
180
|
-
return {
|
|
181
|
-
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
182
|
-
};
|
|
183
|
-
});
|
|
184
|
-
server.tool("create_binding", "Create a binding from an exchange to a queue with a routing key.", {
|
|
12
|
+
registerSchemaTools(server, validator);
|
|
13
|
+
registerUniversalTools(server, config.adapter, validator);
|
|
14
|
+
registerCapabilityTools(server, config.adapter);
|
|
15
|
+
if (config.brokerTools) {
|
|
16
|
+
registerBrokerTools(server, config.brokerTools);
|
|
17
|
+
}
|
|
18
|
+
// MCP Resources — expose loaded schemas as readable context
|
|
19
|
+
for (const schema of config.schemas) {
|
|
20
|
+
server.resource(schema.name, `schema:///${schema.name}`, { description: schema.description, mimeType: "application/schema+json" }, async () => ({
|
|
21
|
+
contents: [
|
|
22
|
+
{
|
|
23
|
+
uri: `schema:///${schema.name}`,
|
|
24
|
+
text: JSON.stringify(schema.schema, null, 2),
|
|
25
|
+
mimeType: "application/schema+json",
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
// MCP Prompts — predefined workflows
|
|
31
|
+
server.prompt("debug-flow", "Trace bindings from exchange to queue, peek messages, validate against schemas", {
|
|
185
32
|
exchange: z.string().describe("Source exchange name"),
|
|
186
33
|
queue: z.string().describe("Destination queue name"),
|
|
187
|
-
|
|
34
|
+
}, async ({ exchange, queue }) => ({
|
|
35
|
+
messages: [
|
|
36
|
+
{
|
|
37
|
+
role: "user",
|
|
38
|
+
content: {
|
|
39
|
+
type: "text",
|
|
40
|
+
text: [
|
|
41
|
+
`Debug the message flow from exchange "${exchange}" to queue "${queue}":`,
|
|
42
|
+
"",
|
|
43
|
+
"1. Use list_bindings to find routing configuration between the exchange and queue",
|
|
44
|
+
"2. Use peek_messages to view messages currently in the queue",
|
|
45
|
+
"3. Use validate_message to check each message against its schema",
|
|
46
|
+
"",
|
|
47
|
+
"Report any misrouted messages, schema violations, or missing bindings.",
|
|
48
|
+
].join("\n"),
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
}));
|
|
53
|
+
server.prompt("health-report", "Check broker health, list queues, flag queues with backed-up messages", async () => ({
|
|
54
|
+
messages: [
|
|
55
|
+
{
|
|
56
|
+
role: "user",
|
|
57
|
+
content: {
|
|
58
|
+
type: "text",
|
|
59
|
+
text: [
|
|
60
|
+
"Generate a broker health report:",
|
|
61
|
+
"",
|
|
62
|
+
"1. Use check_health to verify broker status",
|
|
63
|
+
"2. Use get_overview for cluster-wide statistics",
|
|
64
|
+
"3. Use list_queues to enumerate all queues",
|
|
65
|
+
"4. Flag any queues where messages_ready > 0 or messages_unacknowledged > 0",
|
|
66
|
+
"",
|
|
67
|
+
"Provide a summary of the broker's health and any queues that need attention.",
|
|
68
|
+
].join("\n"),
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
}));
|
|
73
|
+
server.prompt("schema-compliance", "Peek messages in queues and validate each against its schema", {
|
|
74
|
+
queue: z
|
|
188
75
|
.string()
|
|
189
|
-
.
|
|
190
|
-
.describe("
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
76
|
+
.optional()
|
|
77
|
+
.describe("Specific queue to check (omit for all queues)"),
|
|
78
|
+
}, async ({ queue }) => ({
|
|
79
|
+
messages: [
|
|
80
|
+
{
|
|
81
|
+
role: "user",
|
|
82
|
+
content: {
|
|
83
|
+
type: "text",
|
|
84
|
+
text: queue
|
|
85
|
+
? [
|
|
86
|
+
`Check schema compliance for queue "${queue}":`,
|
|
87
|
+
"",
|
|
88
|
+
"1. Use peek_messages to view messages in the queue",
|
|
89
|
+
"2. For each message with a type property, use validate_message to check it",
|
|
90
|
+
"3. Report which messages pass and which fail validation",
|
|
91
|
+
].join("\n")
|
|
92
|
+
: [
|
|
93
|
+
"Check schema compliance across all queues:",
|
|
94
|
+
"",
|
|
95
|
+
"1. Use list_queues to find all queues with messages",
|
|
96
|
+
"2. For each queue, use peek_messages to view its messages",
|
|
97
|
+
"3. For each message with a type property, use validate_message to check it",
|
|
98
|
+
"4. Report compliance status per queue",
|
|
99
|
+
].join("\n"),
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
}));
|
|
206
104
|
return server;
|
|
207
105
|
}
|
|
208
106
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { BrokerHealthResult } from "./broker/types.js";
|
|
2
|
+
export interface NodeVersionCheck {
|
|
3
|
+
ok: boolean;
|
|
4
|
+
current: number;
|
|
5
|
+
required: number;
|
|
6
|
+
}
|
|
7
|
+
export interface SchemaLoadResult {
|
|
8
|
+
count: number;
|
|
9
|
+
warning: string | null;
|
|
10
|
+
}
|
|
11
|
+
export interface BrokerConnectivityResult {
|
|
12
|
+
reachable: boolean;
|
|
13
|
+
status: string | null;
|
|
14
|
+
message: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function checkNodeVersion(currentVersion: string, requiredMajor?: number): NodeVersionCheck;
|
|
17
|
+
export declare function checkSchemaCount(count: number): SchemaLoadResult;
|
|
18
|
+
export declare function checkBrokerConnectivity(healthCheckFn: () => Promise<BrokerHealthResult>, timeoutMs?: number): Promise<BrokerConnectivityResult>;
|
package/dist/startup.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function checkNodeVersion(currentVersion, requiredMajor = 22) {
|
|
2
|
+
const version = currentVersion.startsWith("v")
|
|
3
|
+
? currentVersion.slice(1)
|
|
4
|
+
: currentVersion;
|
|
5
|
+
const current = parseInt(version.split(".")[0] ?? "0", 10);
|
|
6
|
+
return { ok: current >= requiredMajor, current, required: requiredMajor };
|
|
7
|
+
}
|
|
8
|
+
export function checkSchemaCount(count) {
|
|
9
|
+
return {
|
|
10
|
+
count,
|
|
11
|
+
warning: count === 0
|
|
12
|
+
? "No schemas loaded — schema validation tools will have no schemas to validate against"
|
|
13
|
+
: null,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export async function checkBrokerConnectivity(healthCheckFn, timeoutMs = 3000) {
|
|
17
|
+
try {
|
|
18
|
+
const timeout = new Promise((_, reject) => {
|
|
19
|
+
setTimeout(() => reject(new Error("Health check timed out")), timeoutMs);
|
|
20
|
+
});
|
|
21
|
+
const result = await Promise.race([healthCheckFn(), timeout]);
|
|
22
|
+
if (result.status === "ok") {
|
|
23
|
+
return { reachable: true, status: "ok", message: "Broker is healthy" };
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
reachable: true,
|
|
27
|
+
status: result.status,
|
|
28
|
+
message: `Broker is unhealthy: ${result.reason ?? result.status}`,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
33
|
+
return { reachable: false, status: null, message };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=startup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,gBAAgB,CAC9B,cAAsB,EACtB,gBAAwB,EAAE;IAE1B,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;QAC5C,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,cAAc,CAAC;IACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3D,OAAO,EAAE,EAAE,EAAE,OAAO,IAAI,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO;QACL,KAAK;QACL,OAAO,EACL,KAAK,KAAK,CAAC;YACT,CAAC,CAAC,sFAAsF;YACxF,CAAC,CAAC,IAAI;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAgD,EAChD,YAAoB,IAAI;IAExB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/C,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAE9D,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;QACzE,CAAC;QACD,OAAO;YACL,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,wBAAwB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;SAClE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-health.js","sourceRoot":"","sources":["../../src/tools/check-health.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3C,MAAM,MAAM,GAAsB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BrokerAdapter } from "../broker/types.js";
|
|
2
2
|
export interface CreateQueueParams {
|
|
3
3
|
queue: string;
|
|
4
4
|
durable: boolean;
|
|
@@ -11,5 +11,4 @@ export interface CreateQueueResult {
|
|
|
11
11
|
auto_delete: boolean;
|
|
12
12
|
vhost: string;
|
|
13
13
|
}
|
|
14
|
-
export declare function createQueue(
|
|
15
|
-
//# sourceMappingURL=create-queue.d.ts.map
|
|
14
|
+
export declare function createQueue(adapter: BrokerAdapter, params: CreateQueueParams): Promise<CreateQueueResult>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
export async function createQueue(
|
|
2
|
-
await
|
|
1
|
+
export async function createQueue(adapter, params) {
|
|
2
|
+
await adapter.createQueue({
|
|
3
|
+
name: params.queue,
|
|
3
4
|
durable: params.durable,
|
|
4
5
|
auto_delete: params.auto_delete,
|
|
6
|
+
scope: params.vhost,
|
|
5
7
|
});
|
|
6
8
|
return {
|
|
7
9
|
queue: params.queue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-queue.js","sourceRoot":"","sources":["../../src/tools/create-queue.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,
|
|
1
|
+
{"version":3,"file":"create-queue.js","sourceRoot":"","sources":["../../src/tools/create-queue.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAsB,EACtB,MAAyB;IAEzB,MAAM,OAAO,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC,KAAK;QAClB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BrokerAdapter } from "../broker/types.js";
|
|
2
|
+
export interface DeleteQueueParams {
|
|
3
|
+
queue: string;
|
|
4
|
+
vhost: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DeleteQueueResult {
|
|
7
|
+
queue: string;
|
|
8
|
+
vhost: string;
|
|
9
|
+
deleted: true;
|
|
10
|
+
}
|
|
11
|
+
export declare function deleteQueue(adapter: BrokerAdapter, params: DeleteQueueParams): Promise<DeleteQueueResult>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-queue.js","sourceRoot":"","sources":["../../src/tools/delete-queue.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAsB,EACtB,MAAyB;IAEzB,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|