@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.
Files changed (63) hide show
  1. package/ACTWITH.md +152 -0
  2. package/README.md +290 -0
  3. package/dist/client.d.ts +866 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +959 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/index.d.ts +20 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +247 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/init.d.ts +10 -0
  12. package/dist/init.d.ts.map +1 -0
  13. package/dist/init.js +222 -0
  14. package/dist/init.js.map +1 -0
  15. package/dist/resources/index.d.ts +35 -0
  16. package/dist/resources/index.d.ts.map +1 -0
  17. package/dist/resources/index.js +292 -0
  18. package/dist/resources/index.js.map +1 -0
  19. package/dist/tools/artifacts.d.ts +12 -0
  20. package/dist/tools/artifacts.d.ts.map +1 -0
  21. package/dist/tools/artifacts.js +462 -0
  22. package/dist/tools/artifacts.js.map +1 -0
  23. package/dist/tools/contexts.d.ts +15 -0
  24. package/dist/tools/contexts.d.ts.map +1 -0
  25. package/dist/tools/contexts.js +188 -0
  26. package/dist/tools/contexts.js.map +1 -0
  27. package/dist/tools/discovery.d.ts +11 -0
  28. package/dist/tools/discovery.d.ts.map +1 -0
  29. package/dist/tools/discovery.js +249 -0
  30. package/dist/tools/discovery.js.map +1 -0
  31. package/dist/tools/identity.d.ts +15 -0
  32. package/dist/tools/identity.d.ts.map +1 -0
  33. package/dist/tools/identity.js +237 -0
  34. package/dist/tools/identity.js.map +1 -0
  35. package/dist/tools/index.d.ts +29 -0
  36. package/dist/tools/index.d.ts.map +1 -0
  37. package/dist/tools/index.js +228 -0
  38. package/dist/tools/index.js.map +1 -0
  39. package/dist/tools/memory.d.ts +11 -0
  40. package/dist/tools/memory.d.ts.map +1 -0
  41. package/dist/tools/memory.js +349 -0
  42. package/dist/tools/memory.js.map +1 -0
  43. package/dist/tools/patterns.d.ts +17 -0
  44. package/dist/tools/patterns.d.ts.map +1 -0
  45. package/dist/tools/patterns.js +874 -0
  46. package/dist/tools/patterns.js.map +1 -0
  47. package/dist/tools/reputation.d.ts +11 -0
  48. package/dist/tools/reputation.d.ts.map +1 -0
  49. package/dist/tools/reputation.js +175 -0
  50. package/dist/tools/reputation.js.map +1 -0
  51. package/dist/tools/tasks.d.ts +11 -0
  52. package/dist/tools/tasks.d.ts.map +1 -0
  53. package/dist/tools/tasks.js +549 -0
  54. package/dist/tools/tasks.js.map +1 -0
  55. package/dist/tools/topics.d.ts +13 -0
  56. package/dist/tools/topics.d.ts.map +1 -0
  57. package/dist/tools/topics.js +561 -0
  58. package/dist/tools/topics.js.map +1 -0
  59. package/dist/tools/workspace.d.ts +10 -0
  60. package/dist/tools/workspace.d.ts.map +1 -0
  61. package/dist/tools/workspace.js +183 -0
  62. package/dist/tools/workspace.js.map +1 -0
  63. 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"}