@actwith-ai/mcp-server 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/ACTWITH.md +152 -0
- package/README.md +290 -0
- package/dist/client.d.ts +866 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +959 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +247 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +10 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +222 -0
- package/dist/init.js.map +1 -0
- package/dist/resources/index.d.ts +35 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +292 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/tools/artifacts.d.ts +12 -0
- package/dist/tools/artifacts.d.ts.map +1 -0
- package/dist/tools/artifacts.js +462 -0
- package/dist/tools/artifacts.js.map +1 -0
- package/dist/tools/contexts.d.ts +15 -0
- package/dist/tools/contexts.d.ts.map +1 -0
- package/dist/tools/contexts.js +188 -0
- package/dist/tools/contexts.js.map +1 -0
- package/dist/tools/discovery.d.ts +11 -0
- package/dist/tools/discovery.d.ts.map +1 -0
- package/dist/tools/discovery.js +249 -0
- package/dist/tools/discovery.js.map +1 -0
- package/dist/tools/identity.d.ts +15 -0
- package/dist/tools/identity.d.ts.map +1 -0
- package/dist/tools/identity.js +237 -0
- package/dist/tools/identity.js.map +1 -0
- package/dist/tools/index.d.ts +29 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +228 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/memory.d.ts +11 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +349 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/patterns.d.ts +17 -0
- package/dist/tools/patterns.d.ts.map +1 -0
- package/dist/tools/patterns.js +874 -0
- package/dist/tools/patterns.js.map +1 -0
- package/dist/tools/reputation.d.ts +11 -0
- package/dist/tools/reputation.d.ts.map +1 -0
- package/dist/tools/reputation.js +175 -0
- package/dist/tools/reputation.js.map +1 -0
- package/dist/tools/tasks.d.ts +11 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +549 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/topics.d.ts +13 -0
- package/dist/tools/topics.d.ts.map +1 -0
- package/dist/tools/topics.js +561 -0
- package/dist/tools/topics.js.map +1 -0
- package/dist/tools/workspace.d.ts +10 -0
- package/dist/tools/workspace.d.ts.map +1 -0
- package/dist/tools/workspace.js +183 -0
- package/dist/tools/workspace.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Resources
|
|
3
|
+
*
|
|
4
|
+
* Resources are automatically visible to Claude and can be read on startup.
|
|
5
|
+
* The session context resource enables automatic session continuity.
|
|
6
|
+
*/
|
|
7
|
+
// Session context key - where we store session state
|
|
8
|
+
export const SESSION_CONTEXT_KEY = "mcp/session/context";
|
|
9
|
+
// Memory prefixes for organized recall
|
|
10
|
+
const IMPORTANT_PREFIXES = ["decision/", "context/", "user/"];
|
|
11
|
+
/**
|
|
12
|
+
* Get list of available resources
|
|
13
|
+
*/
|
|
14
|
+
export function getResources(contextId) {
|
|
15
|
+
return [
|
|
16
|
+
{
|
|
17
|
+
uri: `actwith://workspace`,
|
|
18
|
+
name: "Workspace Overview",
|
|
19
|
+
description: "Current workspace context: space info, your reputation, open tasks, and any saved session state. " +
|
|
20
|
+
"Read this on startup to understand the current context.",
|
|
21
|
+
mimeType: "application/json",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
uri: `actwith://session/context`,
|
|
25
|
+
name: "Session Context",
|
|
26
|
+
description: "Last saved session state only. For full context, use actwith://workspace instead.",
|
|
27
|
+
mimeType: "application/json",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
uri: `actwith://context/${contextId}`,
|
|
31
|
+
name: "Context Info",
|
|
32
|
+
description: "Information about the current Actwith context",
|
|
33
|
+
mimeType: "application/json",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
uri: `actwith://memories`,
|
|
37
|
+
name: "Memory List",
|
|
38
|
+
description: "List of all your saved memories",
|
|
39
|
+
mimeType: "application/json",
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Read a resource by URI
|
|
45
|
+
*/
|
|
46
|
+
export async function readResource(client, uri) {
|
|
47
|
+
// Workspace overview - the primary resource for understanding context
|
|
48
|
+
if (uri === "actwith://workspace") {
|
|
49
|
+
try {
|
|
50
|
+
// Gather all context in parallel
|
|
51
|
+
const [spaceInfo, reputation, memberships, openTasks, sessionContext, sharedMemories,] = await Promise.all([
|
|
52
|
+
client.getSpaceInfo().catch(() => null),
|
|
53
|
+
client.getReputation().catch(() => null),
|
|
54
|
+
client.getMemberships().catch(() => []),
|
|
55
|
+
client.taskList("open").catch(() => []),
|
|
56
|
+
client.memoryGet(SESSION_CONTEXT_KEY).catch(() => null),
|
|
57
|
+
client.memoryList("context").catch(() => []),
|
|
58
|
+
]);
|
|
59
|
+
// Build the workspace overview
|
|
60
|
+
const workspace = {};
|
|
61
|
+
// Space info
|
|
62
|
+
if (spaceInfo) {
|
|
63
|
+
workspace.space = {
|
|
64
|
+
name: spaceInfo.name,
|
|
65
|
+
description: spaceInfo.description,
|
|
66
|
+
category: spaceInfo.category,
|
|
67
|
+
members: spaceInfo.memberCount,
|
|
68
|
+
agents: spaceInfo.agentCount,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// Your standing
|
|
72
|
+
if (reputation) {
|
|
73
|
+
workspace.yourReputation = {
|
|
74
|
+
trustScore: Math.round(reputation.trustScore * 10) / 10,
|
|
75
|
+
tier: reputation.trustTier,
|
|
76
|
+
tasksCompleted: reputation.totalTasksCompleted,
|
|
77
|
+
successRate: `${Math.round(reputation.successRate * 100)}%`,
|
|
78
|
+
topSkills: reputation.provenSkills.slice(0, 3).map((s) => s.skill),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// Space memberships summary
|
|
82
|
+
if (memberships.length > 0) {
|
|
83
|
+
workspace.yourSpaces = {
|
|
84
|
+
count: memberships.length,
|
|
85
|
+
spaces: memberships.slice(0, 5).map((m) => ({
|
|
86
|
+
name: m.space.name,
|
|
87
|
+
tier: m.tier,
|
|
88
|
+
isHome: m.isHomeSpace,
|
|
89
|
+
})),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// Open tasks in this space
|
|
93
|
+
if (openTasks.length > 0) {
|
|
94
|
+
workspace.openTasks = {
|
|
95
|
+
count: openTasks.length,
|
|
96
|
+
totalRewards: openTasks.reduce((sum, t) => sum + t.bounty, 0),
|
|
97
|
+
preview: openTasks.slice(0, 3).map((t) => ({
|
|
98
|
+
id: t.id,
|
|
99
|
+
description: t.description.length > 60
|
|
100
|
+
? t.description.substring(0, 60) + "..."
|
|
101
|
+
: t.description,
|
|
102
|
+
reward: t.bounty,
|
|
103
|
+
})),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
workspace.openTasks = {
|
|
108
|
+
count: 0,
|
|
109
|
+
message: "No open tasks in this space",
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// Shared memories (decisions, context)
|
|
113
|
+
if (sharedMemories.length > 0) {
|
|
114
|
+
const decisions = sharedMemories.filter((m) => m.key.toLowerCase().includes("decision"));
|
|
115
|
+
workspace.sharedContext = {
|
|
116
|
+
totalMemories: sharedMemories.length,
|
|
117
|
+
recentDecisions: decisions.length > 0
|
|
118
|
+
? decisions.slice(0, 3).map((m) => m.key)
|
|
119
|
+
: null,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// Previous session (if any)
|
|
123
|
+
if (sessionContext) {
|
|
124
|
+
const ctx = sessionContext.value;
|
|
125
|
+
workspace.previousSession = {
|
|
126
|
+
savedAt: ctx.savedAt,
|
|
127
|
+
summary: ctx.summary,
|
|
128
|
+
currentWork: ctx.currentWork,
|
|
129
|
+
nextSteps: ctx.nextSteps,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
workspace.previousSession = null;
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
content: JSON.stringify(workspace, null, 2),
|
|
137
|
+
mimeType: "application/json",
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
142
|
+
return {
|
|
143
|
+
content: JSON.stringify({
|
|
144
|
+
status: "error",
|
|
145
|
+
message: `Failed to load workspace context: ${message}`,
|
|
146
|
+
}, null, 2),
|
|
147
|
+
mimeType: "application/json",
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Session context only (legacy/focused view)
|
|
152
|
+
if (uri === "actwith://session/context") {
|
|
153
|
+
try {
|
|
154
|
+
const result = await client.memoryGet(SESSION_CONTEXT_KEY);
|
|
155
|
+
if (!result) {
|
|
156
|
+
return {
|
|
157
|
+
content: JSON.stringify({
|
|
158
|
+
status: "no_previous_session",
|
|
159
|
+
message: "No session context saved yet. This is a fresh start.",
|
|
160
|
+
}, null, 2),
|
|
161
|
+
mimeType: "application/json",
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const context = result.value;
|
|
165
|
+
return {
|
|
166
|
+
content: JSON.stringify({
|
|
167
|
+
status: "session_restored",
|
|
168
|
+
...context,
|
|
169
|
+
}, null, 2),
|
|
170
|
+
mimeType: "application/json",
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
175
|
+
return {
|
|
176
|
+
content: JSON.stringify({
|
|
177
|
+
status: "error",
|
|
178
|
+
message: `Failed to retrieve session context: ${message}`,
|
|
179
|
+
}, null, 2),
|
|
180
|
+
mimeType: "application/json",
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Context info
|
|
185
|
+
if (uri.startsWith("actwith://context/")) {
|
|
186
|
+
const agents = await client.agentsList();
|
|
187
|
+
return {
|
|
188
|
+
content: JSON.stringify({
|
|
189
|
+
agentCount: agents.length,
|
|
190
|
+
agents: agents.map((a) => ({ name: a.name, status: a.status })),
|
|
191
|
+
}, null, 2),
|
|
192
|
+
mimeType: "application/json",
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// Memory list
|
|
196
|
+
if (uri === "actwith://memories") {
|
|
197
|
+
const memories = await client.memoryList("self");
|
|
198
|
+
return {
|
|
199
|
+
content: JSON.stringify({
|
|
200
|
+
count: memories.length,
|
|
201
|
+
memories: memories.map((m) => ({
|
|
202
|
+
key: m.key,
|
|
203
|
+
visibility: m.visibility,
|
|
204
|
+
})),
|
|
205
|
+
}, null, 2),
|
|
206
|
+
mimeType: "application/json",
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
throw new Error(`Unknown resource: ${uri}`);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Get startup context to inject on first tool call.
|
|
213
|
+
* Returns a formatted string with session context and important memories.
|
|
214
|
+
*/
|
|
215
|
+
export async function getStartupContext(client) {
|
|
216
|
+
const sections = [];
|
|
217
|
+
// Get previous session context
|
|
218
|
+
const sessionContext = await client
|
|
219
|
+
.memoryGet(SESSION_CONTEXT_KEY)
|
|
220
|
+
.catch(() => null);
|
|
221
|
+
if (sessionContext) {
|
|
222
|
+
const ctx = sessionContext.value;
|
|
223
|
+
sections.push("## Previous Session");
|
|
224
|
+
sections.push(`**Saved:** ${ctx.savedAt}`);
|
|
225
|
+
if (ctx.summary) {
|
|
226
|
+
sections.push(`**Summary:** ${ctx.summary}`);
|
|
227
|
+
}
|
|
228
|
+
if (ctx.currentWork) {
|
|
229
|
+
sections.push(`**Was working on:** ${ctx.currentWork}`);
|
|
230
|
+
}
|
|
231
|
+
if (ctx.nextSteps && ctx.nextSteps.length > 0) {
|
|
232
|
+
sections.push(`**Next steps:**`);
|
|
233
|
+
ctx.nextSteps.forEach((step) => sections.push(`- ${step}`));
|
|
234
|
+
}
|
|
235
|
+
if (ctx.notes) {
|
|
236
|
+
sections.push(`**Notes:** ${ctx.notes}`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// Get important memories (decisions, context, user preferences)
|
|
240
|
+
const memories = await client.memoryList("self").catch(() => []);
|
|
241
|
+
const importantMemories = memories.filter((m) => IMPORTANT_PREFIXES.some((prefix) => m.key.startsWith(prefix)));
|
|
242
|
+
if (importantMemories.length > 0) {
|
|
243
|
+
sections.push("");
|
|
244
|
+
sections.push("## Remembered Context");
|
|
245
|
+
// Group by prefix
|
|
246
|
+
const decisions = importantMemories.filter((m) => m.key.startsWith("decision/"));
|
|
247
|
+
const context = importantMemories.filter((m) => m.key.startsWith("context/"));
|
|
248
|
+
const userPrefs = importantMemories.filter((m) => m.key.startsWith("user/"));
|
|
249
|
+
if (decisions.length > 0) {
|
|
250
|
+
sections.push(`**Decisions:** ${decisions.map((m) => m.key.replace("decision/", "")).join(", ")}`);
|
|
251
|
+
}
|
|
252
|
+
if (context.length > 0) {
|
|
253
|
+
sections.push(`**Context:** ${context.map((m) => m.key.replace("context/", "")).join(", ")}`);
|
|
254
|
+
}
|
|
255
|
+
if (userPrefs.length > 0) {
|
|
256
|
+
sections.push(`**User preferences:** ${userPrefs.map((m) => m.key.replace("user/", "")).join(", ")}`);
|
|
257
|
+
}
|
|
258
|
+
sections.push("");
|
|
259
|
+
sections.push("*Use `recall` to read any of these memories.*");
|
|
260
|
+
}
|
|
261
|
+
// Get open tasks
|
|
262
|
+
const openTasks = await client.taskList("open").catch(() => []);
|
|
263
|
+
if (openTasks.length > 0) {
|
|
264
|
+
sections.push("");
|
|
265
|
+
sections.push("## Open Tasks");
|
|
266
|
+
sections.push(`${openTasks.length} task(s) available in this workspace.`);
|
|
267
|
+
openTasks.slice(0, 3).forEach((t) => {
|
|
268
|
+
const desc = t.description.length > 50
|
|
269
|
+
? t.description.substring(0, 50) + "..."
|
|
270
|
+
: t.description;
|
|
271
|
+
sections.push(`- ${desc} (${t.bounty} tokens)`);
|
|
272
|
+
});
|
|
273
|
+
if (openTasks.length > 3) {
|
|
274
|
+
sections.push(`- ...and ${openTasks.length - 3} more`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
if (sections.length === 0) {
|
|
278
|
+
return null; // No context to inject
|
|
279
|
+
}
|
|
280
|
+
// Format as a system note
|
|
281
|
+
return [
|
|
282
|
+
"---",
|
|
283
|
+
"**Actwith Workspace Context** (auto-loaded on session start)",
|
|
284
|
+
"",
|
|
285
|
+
...sections,
|
|
286
|
+
"",
|
|
287
|
+
"*Remember to use `session_save` before ending this session.*",
|
|
288
|
+
"---",
|
|
289
|
+
"",
|
|
290
|
+
].join("\n");
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Artifact Tools for MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Tools for managing work products: documents, data, code, etc.
|
|
5
|
+
* Artifacts have stages (input → draft → review → final → approved).
|
|
6
|
+
*/
|
|
7
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
8
|
+
import { ActwithClient } from "../client.js";
|
|
9
|
+
export declare const artifactTools: Tool[];
|
|
10
|
+
export declare function normalizeArtifactToolName(name: string): string;
|
|
11
|
+
export declare function handleArtifactTool(client: ActwithClient, name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
12
|
+
//# sourceMappingURL=artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/tools/artifacts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,aAAa,EAAE,IAAI,EAyQ/B,CAAC;AAaF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CA0QlB"}
|