@agent-workspace/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.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,304 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import * as z from "zod";
5
+ import { readFile, writeFile, readdir, mkdir, access } from "node:fs/promises";
6
+ import { join } from "node:path";
7
+ import matter from "gray-matter";
8
+ import { AWP_VERSION, MEMORY_DIR } from "@agent-workspace/core";
9
+ const server = new McpServer({
10
+ name: "awp-workspace",
11
+ version: AWP_VERSION,
12
+ });
13
+ /**
14
+ * Resolve workspace root from the AWP_WORKSPACE env var or cwd
15
+ */
16
+ function getWorkspaceRoot() {
17
+ return process.env.AWP_WORKSPACE || process.cwd();
18
+ }
19
+ async function fileExists(path) {
20
+ try {
21
+ await access(path);
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ // --- Tool: awp_read_identity ---
29
+ server.registerTool("awp_read_identity", {
30
+ title: "Read Agent Identity",
31
+ description: "Read this agent's identity (name, creature, capabilities, DID) from the AWP workspace",
32
+ inputSchema: {},
33
+ }, async () => {
34
+ const root = getWorkspaceRoot();
35
+ const path = join(root, "IDENTITY.md");
36
+ try {
37
+ const raw = await readFile(path, "utf-8");
38
+ const { data, content } = matter(raw);
39
+ return {
40
+ content: [
41
+ {
42
+ type: "text",
43
+ text: JSON.stringify({ frontmatter: data, body: content.trim() }, null, 2),
44
+ },
45
+ ],
46
+ };
47
+ }
48
+ catch {
49
+ return {
50
+ content: [{ type: "text", text: "Error: IDENTITY.md not found" }],
51
+ isError: true,
52
+ };
53
+ }
54
+ });
55
+ // --- Tool: awp_read_soul ---
56
+ server.registerTool("awp_read_soul", {
57
+ title: "Read Agent Soul",
58
+ description: "Read this agent's values, boundaries, and governance rules from the AWP workspace",
59
+ inputSchema: {},
60
+ }, async () => {
61
+ const root = getWorkspaceRoot();
62
+ const path = join(root, "SOUL.md");
63
+ try {
64
+ const raw = await readFile(path, "utf-8");
65
+ const { data, content } = matter(raw);
66
+ return {
67
+ content: [
68
+ {
69
+ type: "text",
70
+ text: JSON.stringify({ frontmatter: data, body: content.trim() }, null, 2),
71
+ },
72
+ ],
73
+ };
74
+ }
75
+ catch {
76
+ return {
77
+ content: [{ type: "text", text: "Error: SOUL.md not found" }],
78
+ isError: true,
79
+ };
80
+ }
81
+ });
82
+ // --- Tool: awp_read_user ---
83
+ server.registerTool("awp_read_user", {
84
+ title: "Read Human Profile",
85
+ description: "Read the human user's profile from the AWP workspace",
86
+ inputSchema: {},
87
+ }, async () => {
88
+ const root = getWorkspaceRoot();
89
+ const path = join(root, "USER.md");
90
+ try {
91
+ const raw = await readFile(path, "utf-8");
92
+ const { data, content } = matter(raw);
93
+ return {
94
+ content: [
95
+ {
96
+ type: "text",
97
+ text: JSON.stringify({ frontmatter: data, body: content.trim() }, null, 2),
98
+ },
99
+ ],
100
+ };
101
+ }
102
+ catch {
103
+ return {
104
+ content: [{ type: "text", text: "Error: USER.md not found" }],
105
+ isError: true,
106
+ };
107
+ }
108
+ });
109
+ // --- Tool: awp_read_memory ---
110
+ server.registerTool("awp_read_memory", {
111
+ title: "Read Memory",
112
+ description: "Read memory entries. Specify a date (YYYY-MM-DD) for daily logs, or 'longterm' for MEMORY.md, or 'recent' for the last 3 days",
113
+ inputSchema: {
114
+ target: z
115
+ .string()
116
+ .describe("Which memory to read: a date like '2026-01-30', 'longterm', or 'recent'"),
117
+ },
118
+ }, async ({ target }) => {
119
+ const root = getWorkspaceRoot();
120
+ if (target === "longterm") {
121
+ const path = join(root, "MEMORY.md");
122
+ try {
123
+ const raw = await readFile(path, "utf-8");
124
+ const { data, content } = matter(raw);
125
+ return {
126
+ content: [
127
+ {
128
+ type: "text",
129
+ text: JSON.stringify({ frontmatter: data, body: content.trim() }, null, 2),
130
+ },
131
+ ],
132
+ };
133
+ }
134
+ catch {
135
+ return {
136
+ content: [
137
+ { type: "text", text: "No long-term memory file exists yet." },
138
+ ],
139
+ };
140
+ }
141
+ }
142
+ if (target === "recent") {
143
+ const memDir = join(root, MEMORY_DIR);
144
+ try {
145
+ const files = await readdir(memDir);
146
+ const mdFiles = files
147
+ .filter((f) => f.endsWith(".md"))
148
+ .sort()
149
+ .reverse()
150
+ .slice(0, 3);
151
+ const results = [];
152
+ for (const f of mdFiles) {
153
+ const raw = await readFile(join(memDir, f), "utf-8");
154
+ const { data, content } = matter(raw);
155
+ results.push(`--- ${f} ---\n${JSON.stringify(data, null, 2)}\n${content.trim()}`);
156
+ }
157
+ return {
158
+ content: [
159
+ {
160
+ type: "text",
161
+ text: results.length
162
+ ? results.join("\n\n")
163
+ : "No recent memory entries.",
164
+ },
165
+ ],
166
+ };
167
+ }
168
+ catch {
169
+ return {
170
+ content: [{ type: "text", text: "No memory directory found." }],
171
+ };
172
+ }
173
+ }
174
+ // Specific date
175
+ const path = join(root, MEMORY_DIR, `${target}.md`);
176
+ try {
177
+ const raw = await readFile(path, "utf-8");
178
+ const { data, content } = matter(raw);
179
+ return {
180
+ content: [
181
+ {
182
+ type: "text",
183
+ text: JSON.stringify({ frontmatter: data, body: content.trim() }, null, 2),
184
+ },
185
+ ],
186
+ };
187
+ }
188
+ catch {
189
+ return {
190
+ content: [
191
+ { type: "text", text: `No memory entry for ${target}.` },
192
+ ],
193
+ };
194
+ }
195
+ });
196
+ // --- Tool: awp_write_memory ---
197
+ server.registerTool("awp_write_memory", {
198
+ title: "Write Memory",
199
+ description: "Append an entry to today's memory log in the AWP workspace",
200
+ inputSchema: {
201
+ content: z.string().describe("The memory entry to log"),
202
+ tags: z
203
+ .array(z.string())
204
+ .optional()
205
+ .describe("Optional categorization tags"),
206
+ },
207
+ }, async ({ content: entryContent, tags }) => {
208
+ const root = getWorkspaceRoot();
209
+ const memDir = join(root, MEMORY_DIR);
210
+ await mkdir(memDir, { recursive: true });
211
+ const date = new Date().toISOString().split("T")[0];
212
+ const time = new Date().toTimeString().slice(0, 5);
213
+ const filePath = join(memDir, `${date}.md`);
214
+ const entry = {
215
+ time,
216
+ content: entryContent,
217
+ tags: tags?.length ? tags : undefined,
218
+ };
219
+ let fileData;
220
+ try {
221
+ const raw = await readFile(filePath, "utf-8");
222
+ fileData = matter(raw);
223
+ if (!fileData.data.entries)
224
+ fileData.data.entries = [];
225
+ fileData.data.entries.push(entry);
226
+ }
227
+ catch {
228
+ fileData = {
229
+ data: {
230
+ awp: AWP_VERSION,
231
+ type: "memory-daily",
232
+ date,
233
+ entries: [entry],
234
+ },
235
+ content: `\n# ${date}\n\n`,
236
+ };
237
+ }
238
+ const tagStr = tags?.length ? ` [${tags.join(", ")}]` : "";
239
+ fileData.content += `- **${time}** — ${entryContent}${tagStr}\n`;
240
+ const output = matter.stringify(fileData.content, fileData.data);
241
+ await writeFile(filePath, output, "utf-8");
242
+ return {
243
+ content: [
244
+ {
245
+ type: "text",
246
+ text: `Logged to memory/${date}.md at ${time}`,
247
+ },
248
+ ],
249
+ };
250
+ });
251
+ // --- Tool: awp_workspace_status ---
252
+ server.registerTool("awp_workspace_status", {
253
+ title: "Workspace Status",
254
+ description: "Get AWP workspace health status — manifest info, file presence, memory stats",
255
+ inputSchema: {},
256
+ }, async () => {
257
+ const root = getWorkspaceRoot();
258
+ const status = { root };
259
+ // Manifest
260
+ try {
261
+ const manifestRaw = await readFile(join(root, ".awp", "workspace.json"), "utf-8");
262
+ status.manifest = JSON.parse(manifestRaw);
263
+ }
264
+ catch {
265
+ status.manifest = null;
266
+ status.error = "No .awp/workspace.json found";
267
+ }
268
+ // File presence
269
+ const fileChecks = [
270
+ "IDENTITY.md",
271
+ "SOUL.md",
272
+ "AGENTS.md",
273
+ "USER.md",
274
+ "TOOLS.md",
275
+ "HEARTBEAT.md",
276
+ "MEMORY.md",
277
+ ];
278
+ status.files = {};
279
+ for (const f of fileChecks) {
280
+ status.files[f] = await fileExists(join(root, f));
281
+ }
282
+ // Memory stats
283
+ try {
284
+ const memDir = join(root, MEMORY_DIR);
285
+ const files = await readdir(memDir);
286
+ const mdFiles = files.filter((f) => f.endsWith(".md"));
287
+ status.memory = {
288
+ logCount: mdFiles.length,
289
+ latest: mdFiles.sort().reverse()[0] || null,
290
+ };
291
+ }
292
+ catch {
293
+ status.memory = { logCount: 0, latest: null };
294
+ }
295
+ return {
296
+ content: [
297
+ { type: "text", text: JSON.stringify(status, null, 2) },
298
+ ],
299
+ };
300
+ });
301
+ // Start the server
302
+ const transport = new StdioServerTransport();
303
+ await server.connect(transport);
304
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@agent-workspace/mcp-server",
3
+ "version": "0.1.0",
4
+ "description": "MCP server exposing Agent Workspace Protocol operations — plug any AWP workspace into any MCP client",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "bin": {
9
+ "awp-mcp-server": "dist/index.js"
10
+ },
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/marcoloco23/awp.git",
17
+ "directory": "packages/awp-mcp-server"
18
+ },
19
+ "homepage": "https://github.com/marcoloco23/awp#readme",
20
+ "keywords": [
21
+ "awp",
22
+ "agent",
23
+ "workspace",
24
+ "protocol",
25
+ "mcp",
26
+ "model-context-protocol",
27
+ "ai",
28
+ "llm",
29
+ "claude",
30
+ "a2a"
31
+ ],
32
+ "engines": {
33
+ "node": ">=18"
34
+ },
35
+ "scripts": {
36
+ "build": "tsc",
37
+ "dev": "tsc --watch",
38
+ "typecheck": "tsc --noEmit",
39
+ "prepublishOnly": "npm run build"
40
+ },
41
+ "dependencies": {
42
+ "@agent-workspace/core": "0.1.0",
43
+ "@modelcontextprotocol/sdk": "^1.0.0",
44
+ "gray-matter": "^4.0.3",
45
+ "zod": "^4.3.6"
46
+ },
47
+ "devDependencies": {
48
+ "@types/node": "^22.0.0",
49
+ "typescript": "^5.7.0"
50
+ }
51
+ }