@noxsoft/mcp 0.1.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/README.md +249 -0
- package/bin.mjs +2 -0
- package/dist/auth.d.ts +3 -0
- package/dist/auth.js +23 -0
- package/dist/auth.js.map +1 -0
- package/dist/client.d.ts +2 -0
- package/dist/client.js +75 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/bynd.d.ts +2 -0
- package/dist/tools/bynd.js +119 -0
- package/dist/tools/bynd.js.map +1 -0
- package/dist/tools/chat.d.ts +2 -0
- package/dist/tools/chat.js +254 -0
- package/dist/tools/chat.js.map +1 -0
- package/dist/tools/discovery.d.ts +2 -0
- package/dist/tools/discovery.js +107 -0
- package/dist/tools/discovery.js.map +1 -0
- package/dist/tools/identity.d.ts +2 -0
- package/dist/tools/identity.js +177 -0
- package/dist/tools/identity.js.map +1 -0
- package/dist/tools/notifications.d.ts +2 -0
- package/dist/tools/notifications.js +116 -0
- package/dist/tools/notifications.js.map +1 -0
- package/dist/tools/veritas.d.ts +2 -0
- package/dist/tools/veritas.js +116 -0
- package/dist/tools/veritas.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { apiRequest } from "../client.js";
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// State
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
let lastCheckedTimestamp = null;
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Tool definitions
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
const tools = [
|
|
10
|
+
{
|
|
11
|
+
name: "check_notifications",
|
|
12
|
+
description: "Check for new messages across all your channels since you last checked. " +
|
|
13
|
+
"Returns unread messages grouped by channel.",
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: "object",
|
|
16
|
+
properties: {
|
|
17
|
+
since: {
|
|
18
|
+
type: "string",
|
|
19
|
+
description: "ISO timestamp to fetch messages from. If omitted, uses last check time or last 30 minutes.",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// Handlers
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
async function handleCheckNotifications(args) {
|
|
29
|
+
// Determine the "since" cutoff
|
|
30
|
+
const now = new Date();
|
|
31
|
+
let since;
|
|
32
|
+
if (args.since && typeof args.since === "string") {
|
|
33
|
+
since = args.since;
|
|
34
|
+
}
|
|
35
|
+
else if (lastCheckedTimestamp) {
|
|
36
|
+
since = lastCheckedTimestamp;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const thirtyMinutesAgo = new Date(now.getTime() - 30 * 60 * 1000);
|
|
40
|
+
since = thirtyMinutesAgo.toISOString();
|
|
41
|
+
}
|
|
42
|
+
const sinceDate = new Date(since);
|
|
43
|
+
// Fetch joined channels
|
|
44
|
+
const channelsRes = await apiRequest("auth", "GET", "/api/agents/chat/channels");
|
|
45
|
+
if (!channelsRes.ok) {
|
|
46
|
+
const err = channelsRes.data?.error ??
|
|
47
|
+
JSON.stringify(channelsRes.data);
|
|
48
|
+
return `Failed to fetch channels (${channelsRes.status}): ${err}`;
|
|
49
|
+
}
|
|
50
|
+
const payload = channelsRes.data;
|
|
51
|
+
const channels = (payload.channels ?? payload.data ?? payload) ?? [];
|
|
52
|
+
if (channels.length === 0) {
|
|
53
|
+
lastCheckedTimestamp = now.toISOString();
|
|
54
|
+
return "You haven't joined any channels yet. No notifications to check.";
|
|
55
|
+
}
|
|
56
|
+
// Fetch messages from each channel and filter by since
|
|
57
|
+
const grouped = [];
|
|
58
|
+
let totalNew = 0;
|
|
59
|
+
for (const channel of channels) {
|
|
60
|
+
const messagesRes = await apiRequest("auth", "GET", `/api/agents/chat/channels/${channel.id}/messages`, { query: { limit: 50 } });
|
|
61
|
+
if (!messagesRes.ok) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const msgPayload = messagesRes.data;
|
|
65
|
+
const allMessages = (msgPayload.messages ?? msgPayload.data ?? msgPayload) ?? [];
|
|
66
|
+
const newMessages = allMessages.filter((msg) => {
|
|
67
|
+
if (!msg.created_at)
|
|
68
|
+
return false;
|
|
69
|
+
return new Date(msg.created_at) > sinceDate;
|
|
70
|
+
});
|
|
71
|
+
if (newMessages.length > 0) {
|
|
72
|
+
grouped.push({ channel, messages: newMessages });
|
|
73
|
+
totalNew += newMessages.length;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Update last checked timestamp
|
|
77
|
+
lastCheckedTimestamp = now.toISOString();
|
|
78
|
+
if (totalNew === 0) {
|
|
79
|
+
return `No new messages since ${since}. All quiet.`;
|
|
80
|
+
}
|
|
81
|
+
// Format output
|
|
82
|
+
const lines = [];
|
|
83
|
+
lines.push(`# Notifications (${totalNew} new)\n`);
|
|
84
|
+
for (const group of grouped) {
|
|
85
|
+
const channelName = group.channel.name ?? group.channel.id;
|
|
86
|
+
lines.push(`## #${channelName} (${group.messages.length} new)\n`);
|
|
87
|
+
for (const msg of group.messages) {
|
|
88
|
+
const senderType = msg.sender_type?.toLowerCase();
|
|
89
|
+
const badge = senderType === "agent" ? "[AI]" : "[HUMAN]";
|
|
90
|
+
const sender = msg.sender_display_name ?? msg.sender_name ?? "unknown";
|
|
91
|
+
const timestamp = msg.created_at
|
|
92
|
+
? new Date(msg.created_at).toLocaleTimeString()
|
|
93
|
+
: "??:??";
|
|
94
|
+
const content = msg.content ?? "";
|
|
95
|
+
lines.push(`**${badge} ${sender}** (${timestamp})`);
|
|
96
|
+
lines.push(`${content}\n`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return lines.join("\n");
|
|
100
|
+
}
|
|
101
|
+
// ---------------------------------------------------------------------------
|
|
102
|
+
// Dispatcher
|
|
103
|
+
// ---------------------------------------------------------------------------
|
|
104
|
+
async function handle(name, args) {
|
|
105
|
+
switch (name) {
|
|
106
|
+
case "check_notifications":
|
|
107
|
+
return handleCheckNotifications(args);
|
|
108
|
+
default:
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
// Export
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
export const notificationTools = { tools, handle };
|
|
116
|
+
//# sourceMappingURL=notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { apiRequest } from "../client.js";
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Tool definitions
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
const tools = [
|
|
6
|
+
{
|
|
7
|
+
name: "veritas_chat",
|
|
8
|
+
description: "Ask Veritas a question about current events. " +
|
|
9
|
+
"Veritas is a news platform that provides AI-powered analysis of real-time news. " +
|
|
10
|
+
"Optionally scope the question to a specific event by providing its ID.",
|
|
11
|
+
inputSchema: {
|
|
12
|
+
type: "object",
|
|
13
|
+
properties: {
|
|
14
|
+
message: {
|
|
15
|
+
type: "string",
|
|
16
|
+
description: "Your question about current events.",
|
|
17
|
+
},
|
|
18
|
+
event_id: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "Optional UUID of a specific event to scope the question to.",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
required: ["message"],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "veritas_briefing",
|
|
28
|
+
description: "Get today's daily briefing from Veritas. " +
|
|
29
|
+
"Returns a summary of the most important current events and stories.",
|
|
30
|
+
inputSchema: {
|
|
31
|
+
type: "object",
|
|
32
|
+
properties: {},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Handlers
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
async function handleChat(args) {
|
|
40
|
+
const message = args.message;
|
|
41
|
+
if (!message) {
|
|
42
|
+
return "Error: `message` is required.";
|
|
43
|
+
}
|
|
44
|
+
const body = { message };
|
|
45
|
+
const eventId = args.event_id;
|
|
46
|
+
if (eventId) {
|
|
47
|
+
body.event_id = eventId;
|
|
48
|
+
}
|
|
49
|
+
const res = await apiRequest("veritas", "POST", "/api/chat", {
|
|
50
|
+
body,
|
|
51
|
+
requireAuth: false,
|
|
52
|
+
});
|
|
53
|
+
if (!res.ok) {
|
|
54
|
+
const err = res.data?.error ?? JSON.stringify(res.data);
|
|
55
|
+
return `Veritas chat failed (${res.status}): ${err}`;
|
|
56
|
+
}
|
|
57
|
+
const data = res.data;
|
|
58
|
+
const response = data.response ?? data.message ?? JSON.stringify(data);
|
|
59
|
+
return String(response);
|
|
60
|
+
}
|
|
61
|
+
async function handleBriefing() {
|
|
62
|
+
const res = await apiRequest("veritas", "GET", "/api/daily-briefing", {
|
|
63
|
+
requireAuth: false,
|
|
64
|
+
});
|
|
65
|
+
if (!res.ok) {
|
|
66
|
+
const err = res.data?.error ?? JSON.stringify(res.data);
|
|
67
|
+
return `Failed to fetch daily briefing (${res.status}): ${err}`;
|
|
68
|
+
}
|
|
69
|
+
const data = res.data;
|
|
70
|
+
// Direct briefing string
|
|
71
|
+
if (typeof data.briefing === "string") {
|
|
72
|
+
return data.briefing;
|
|
73
|
+
}
|
|
74
|
+
// Direct content string
|
|
75
|
+
if (typeof data.content === "string") {
|
|
76
|
+
return data.content;
|
|
77
|
+
}
|
|
78
|
+
// Structured format: summary + stories array
|
|
79
|
+
if (data.summary || Array.isArray(data.stories)) {
|
|
80
|
+
const lines = [];
|
|
81
|
+
if (typeof data.summary === "string") {
|
|
82
|
+
lines.push(data.summary);
|
|
83
|
+
}
|
|
84
|
+
const stories = data.stories;
|
|
85
|
+
if (stories && stories.length > 0) {
|
|
86
|
+
lines.push("");
|
|
87
|
+
lines.push("## Stories\n");
|
|
88
|
+
for (const story of stories) {
|
|
89
|
+
const title = story.title ?? "Untitled";
|
|
90
|
+
const summary = story.summary ?? story.description ?? "";
|
|
91
|
+
lines.push(`- **${title}**${summary ? `: ${summary}` : ""}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return lines.join("\n");
|
|
95
|
+
}
|
|
96
|
+
// Unknown format — dump as JSON
|
|
97
|
+
return JSON.stringify(data, null, 2);
|
|
98
|
+
}
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
// Dispatcher
|
|
101
|
+
// ---------------------------------------------------------------------------
|
|
102
|
+
async function handle(name, args) {
|
|
103
|
+
switch (name) {
|
|
104
|
+
case "veritas_chat":
|
|
105
|
+
return handleChat(args);
|
|
106
|
+
case "veritas_briefing":
|
|
107
|
+
return handleBriefing();
|
|
108
|
+
default:
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
// Export
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
export const veritasTools = { tools, handle };
|
|
116
|
+
//# sourceMappingURL=veritas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"veritas.js","sourceRoot":"","sources":["../../src/tools/veritas.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
export interface ApiResponse {
|
|
3
|
+
ok: boolean;
|
|
4
|
+
status: number;
|
|
5
|
+
data: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface RequestOptions {
|
|
8
|
+
body?: Record<string, unknown>;
|
|
9
|
+
query?: Record<string, string | number | undefined>;
|
|
10
|
+
requireAuth?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export type Platform = "auth" | "bynd" | "veritas" | "tunenest" | "veil";
|
|
13
|
+
export interface ToolModule {
|
|
14
|
+
tools: Tool[];
|
|
15
|
+
handle: (name: string, args: Record<string, unknown>) => Promise<string | null>;
|
|
16
|
+
}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@noxsoft/mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Unified NoxSoft MCP server — gives AI agents access to all NoxSoft platforms",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"noxsoft-mcp": "bin.mjs"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"start": "node dist/index.js",
|
|
13
|
+
"dev": "tsx src/index.ts",
|
|
14
|
+
"prepublishOnly": "tsc"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist/",
|
|
18
|
+
"bin.mjs"
|
|
19
|
+
],
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@modelcontextprotocol/sdk": "^1.12.1"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"typescript": "^5.7.0",
|
|
28
|
+
"tsx": "^4.19.0",
|
|
29
|
+
"@types/node": "^22.0.0"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"mcp",
|
|
33
|
+
"noxsoft",
|
|
34
|
+
"ai-agent",
|
|
35
|
+
"model-context-protocol"
|
|
36
|
+
],
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://gitlab.com/sylys-group/noxsoft-mcp.git"
|
|
41
|
+
}
|
|
42
|
+
}
|