substrate-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 (46) hide show
  1. package/README.md +249 -0
  2. package/dist/config.d.ts +16 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +44 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +38 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/prompts.d.ts +7 -0
  11. package/dist/prompts.d.ts.map +1 -0
  12. package/dist/prompts.js +172 -0
  13. package/dist/prompts.js.map +1 -0
  14. package/dist/resources.d.ts +8 -0
  15. package/dist/resources.d.ts.map +1 -0
  16. package/dist/resources.js +82 -0
  17. package/dist/resources.js.map +1 -0
  18. package/dist/substrate-client.d.ts +39 -0
  19. package/dist/substrate-client.d.ts.map +1 -0
  20. package/dist/substrate-client.js +122 -0
  21. package/dist/substrate-client.js.map +1 -0
  22. package/dist/tools/backlog.d.ts +4 -0
  23. package/dist/tools/backlog.d.ts.map +1 -0
  24. package/dist/tools/backlog.js +146 -0
  25. package/dist/tools/backlog.js.map +1 -0
  26. package/dist/tools/get-context.d.ts +11 -0
  27. package/dist/tools/get-context.d.ts.map +1 -0
  28. package/dist/tools/get-context.js +35 -0
  29. package/dist/tools/get-context.js.map +1 -0
  30. package/dist/tools/investigations.d.ts +4 -0
  31. package/dist/tools/investigations.d.ts.map +1 -0
  32. package/dist/tools/investigations.js +148 -0
  33. package/dist/tools/investigations.js.map +1 -0
  34. package/dist/tools/nanopubs.d.ts +12 -0
  35. package/dist/tools/nanopubs.d.ts.map +1 -0
  36. package/dist/tools/nanopubs.js +56 -0
  37. package/dist/tools/nanopubs.js.map +1 -0
  38. package/dist/tools/sync.d.ts +10 -0
  39. package/dist/tools/sync.d.ts.map +1 -0
  40. package/dist/tools/sync.js +34 -0
  41. package/dist/tools/sync.js.map +1 -0
  42. package/dist/types.d.ts +278 -0
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +6 -0
  45. package/dist/types.js.map +1 -0
  46. package/package.json +29 -0
@@ -0,0 +1,10 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type SubstrateClient } from "../substrate-client.js";
3
+ /**
4
+ * Registers the `request_sync` tool on the given MCP server.
5
+ *
6
+ * Triggers a GitHub sync for the room, importing new nanopubs and repo
7
+ * activity. Takes no parameters and returns the sync outcome message.
8
+ */
9
+ export declare function register(server: McpServer, client: SubstrateClient): void;
10
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/tools/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEjF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CA4BzE"}
@@ -0,0 +1,34 @@
1
+ import { SubstrateApiError } from "../substrate-client.js";
2
+ /**
3
+ * Registers the `request_sync` tool on the given MCP server.
4
+ *
5
+ * Triggers a GitHub sync for the room, importing new nanopubs and repo
6
+ * activity. Takes no parameters and returns the sync outcome message.
7
+ */
8
+ export function register(server, client) {
9
+ server.tool("request_sync", "Trigger a GitHub repository sync for the room. Imports new nanopubs " +
10
+ "and repo activity from the connected GitHub repository. Takes no " +
11
+ "parameters. Returns the sync outcome message.", async () => {
12
+ try {
13
+ const response = await client.requestSync();
14
+ return {
15
+ content: [{ type: "text", text: JSON.stringify(response, null, 2) }],
16
+ };
17
+ }
18
+ catch (error) {
19
+ if (error instanceof SubstrateApiError) {
20
+ return {
21
+ content: [
22
+ {
23
+ type: "text",
24
+ text: `Error ${error.statusCode} (${error.errorCode}): ${error.message}`,
25
+ },
26
+ ],
27
+ isError: true,
28
+ };
29
+ }
30
+ throw error;
31
+ }
32
+ });
33
+ }
34
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/tools/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAiB,EAAE,MAAuB;IACjE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,sEAAsE;QACpE,mEAAmE;QACnE,+CAA+C,EACjD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC9E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,SAAS,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,OAAO,EAAE;yBACzE;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,278 @@
1
+ export type BacklogItemPriority = "low" | "medium" | "high";
2
+ export type BacklogItemStatus = "open" | "in_progress" | "blocked" | "done" | "archived";
3
+ export type BacklogItemType = "hypothesis_test" | "replication" | "critique" | "synthesis" | "review" | "meta_analysis" | "other";
4
+ export type InvestigationStatus = "proposed" | "started" | "completed" | "abandoned";
5
+ export type InvestigationMutationAction = "heartbeat" | "complete";
6
+ export type ClaimState = "available" | "claimed" | "expired";
7
+ export type SyncStatus = "failed" | "idle" | "not_connected" | "running";
8
+ export type AgentActor = {
9
+ id: string;
10
+ kind: "agent";
11
+ label: string;
12
+ };
13
+ export type UserActor = {
14
+ id: string;
15
+ kind: "user";
16
+ label: string;
17
+ username: string | null;
18
+ };
19
+ export type Creator = AgentActor | UserActor;
20
+ export type Claimant = {
21
+ id: string;
22
+ label: string;
23
+ } | null;
24
+ export interface AuthenticatedAgent {
25
+ agentName: string;
26
+ capabilities: string[];
27
+ description: string | null;
28
+ expiresAt: string | null;
29
+ id: string;
30
+ keyType: string;
31
+ roomId: string;
32
+ status: string;
33
+ }
34
+ export interface AuthenticateResponse {
35
+ agent: AuthenticatedAgent;
36
+ }
37
+ export interface ContextRoom {
38
+ description: string | null;
39
+ id: string;
40
+ slug: string;
41
+ title: string;
42
+ }
43
+ export interface ContextRepoSync {
44
+ lastCommitSyncAt: string | null;
45
+ lastNanopubSyncAt: string | null;
46
+ lastSuccessfulAt: string | null;
47
+ startedAt: string | null;
48
+ status: SyncStatus;
49
+ }
50
+ export interface ContextRepoActivity {
51
+ branchName: string | null;
52
+ commitSha: string | null;
53
+ eventType: string;
54
+ htmlUrl: string | null;
55
+ id: string;
56
+ occurredAt: string;
57
+ summary: string;
58
+ }
59
+ export interface ContextRepo {
60
+ connected: boolean;
61
+ defaultBranch: string | null;
62
+ lastSyncedAt: string | null;
63
+ name: string | null;
64
+ owner: string | null;
65
+ recentActivity: ContextRepoActivity[];
66
+ sync: ContextRepoSync;
67
+ url: string | null;
68
+ visibility: string | null;
69
+ }
70
+ export interface ContextNanopub {
71
+ assertionKind: string;
72
+ assertionTitle: string;
73
+ branchName: string;
74
+ commitSha: string;
75
+ evidenceSummary: string | null;
76
+ externalNanopubId: string | null;
77
+ id: string;
78
+ importedAt: string;
79
+ linkedBacklogItemId: string | null;
80
+ linkedInvestigationId: string | null;
81
+ repoPath: string;
82
+ verifiedActorCount: number;
83
+ }
84
+ export interface ContextWorkItem {
85
+ branchName: string | null;
86
+ claimExpiresAt: string | null;
87
+ claimState: ClaimState;
88
+ claimedBy: Claimant;
89
+ description: string | null;
90
+ endedAt: string | null;
91
+ hypothesisStatement: string | null;
92
+ id: string;
93
+ isExecutionBacked: boolean;
94
+ isStale: boolean;
95
+ lastHeartbeatAt: string | null;
96
+ leaseExpiresAt: string | null;
97
+ objective: string | null;
98
+ owner: {
99
+ id: string;
100
+ label: string;
101
+ } | null;
102
+ priority: BacklogItemPriority;
103
+ skillTag: string | null;
104
+ startedAt: string | null;
105
+ status: string;
106
+ title: string;
107
+ type: string;
108
+ updatedAt: string;
109
+ }
110
+ export interface ContextGuidance {
111
+ branchNaming: {
112
+ note: string;
113
+ pattern: string;
114
+ referenceHref: string;
115
+ };
116
+ nanopubs: {
117
+ canonicalLocation: string;
118
+ referenceHref: string;
119
+ reviewStateNote: string;
120
+ suggestedEnvelopeVersion: string;
121
+ };
122
+ references: {
123
+ href: string;
124
+ label: string;
125
+ }[];
126
+ }
127
+ export interface ContextThread {
128
+ createdAt: string;
129
+ id: string;
130
+ lastMessageAt: string | null;
131
+ messageCount: number;
132
+ subject: Record<string, unknown>;
133
+ }
134
+ export interface ContextReviewDecision {
135
+ action: "created" | "updated";
136
+ id: string;
137
+ nanopubId: string | null;
138
+ nanopubTitle: string | null;
139
+ notes: string | null;
140
+ occurredAt: string;
141
+ previousVerdict: string | null;
142
+ reviewer: Record<string, unknown>;
143
+ verdict: string | null;
144
+ }
145
+ export interface ContextSummary {
146
+ discussions: {
147
+ threadCount: number;
148
+ };
149
+ work: {
150
+ activeCount: number;
151
+ queuedCount: number;
152
+ recentOutcomeCount: number;
153
+ staleCount: number;
154
+ totalCount: number;
155
+ };
156
+ nanopubs: {
157
+ recentCount: number;
158
+ totalCount: number;
159
+ };
160
+ repo: {
161
+ connected: boolean;
162
+ recentActivityCount: number;
163
+ syncStatus: SyncStatus;
164
+ };
165
+ reviews: {
166
+ recentDecisionCount: number;
167
+ };
168
+ }
169
+ export interface ContextPayloadMeta {
170
+ estimatedBytes: number;
171
+ maxBytes: number;
172
+ truncated: boolean;
173
+ truncatedSections: string[];
174
+ }
175
+ export interface ContextPack {
176
+ agent: AuthenticatedAgent;
177
+ discussions: {
178
+ recentThreads: ContextThread[];
179
+ };
180
+ generatedAt: string;
181
+ guidance: ContextGuidance;
182
+ nanopubs: {
183
+ recent: ContextNanopub[];
184
+ };
185
+ payloadMeta: ContextPayloadMeta;
186
+ recentActivity: Record<string, unknown>[];
187
+ repo: ContextRepo;
188
+ reviews: {
189
+ recentDecisions: ContextReviewDecision[];
190
+ };
191
+ room: ContextRoom;
192
+ summary: ContextSummary;
193
+ work: {
194
+ active: ContextWorkItem[];
195
+ queue: ContextWorkItem[];
196
+ recentOutcomes: ContextWorkItem[];
197
+ stale: ContextWorkItem[];
198
+ };
199
+ }
200
+ export interface GetContextResponse {
201
+ contextPack: ContextPack;
202
+ }
203
+ export interface BacklogItem {
204
+ claimExpiresAt: string | null;
205
+ claimState: ClaimState;
206
+ claimedAt: string | null;
207
+ claimedBy: Claimant;
208
+ createdAt: string;
209
+ createdBy: Creator;
210
+ description: string | null;
211
+ id: string;
212
+ priority: BacklogItemPriority;
213
+ roomId: string;
214
+ skillTag: string | null;
215
+ status: BacklogItemStatus;
216
+ title: string;
217
+ type: BacklogItemType;
218
+ updatedAt: string;
219
+ version: number;
220
+ }
221
+ export interface ListBacklogResponse {
222
+ backlogItems: BacklogItem[];
223
+ }
224
+ export interface CreateBacklogItemPayload {
225
+ description: string | null;
226
+ priority: BacklogItemPriority;
227
+ skillTag: string | null;
228
+ title: string;
229
+ type: BacklogItemType;
230
+ }
231
+ export interface BacklogItemResponse {
232
+ backlogItem: BacklogItem;
233
+ }
234
+ export interface Investigation {
235
+ backlogItem: {
236
+ id: string;
237
+ title: string;
238
+ } | null;
239
+ branchName: string;
240
+ createdAt: string;
241
+ createdBy: Creator;
242
+ endedAt: string | null;
243
+ hypothesisStatement: string | null;
244
+ id: string;
245
+ isStale: boolean;
246
+ lastHeartbeatAt: string | null;
247
+ leaseExpiresAt: string | null;
248
+ objective: string | null;
249
+ roomId: string;
250
+ startedAt: string | null;
251
+ status: InvestigationStatus;
252
+ title: string;
253
+ updatedAt: string;
254
+ }
255
+ export interface CreateInvestigationPayload {
256
+ backlogItemId: string | null;
257
+ branchName: string;
258
+ hypothesisStatement: string | null;
259
+ objective: string | null;
260
+ title: string;
261
+ }
262
+ export interface InvestigationResponse {
263
+ investigation: Investigation;
264
+ }
265
+ export interface InvestigationMutationPayload {
266
+ action: InvestigationMutationAction;
267
+ }
268
+ export interface RequestSyncResponse {
269
+ message: string;
270
+ outcome: string;
271
+ }
272
+ export interface SubstrateApiErrorBody {
273
+ error: {
274
+ code: string;
275
+ message: string;
276
+ };
277
+ }
278
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Substrate Agent API – standalone types for the MCP-server client.
3
+ // These are intentionally decoupled from the web workspace to avoid coupling.
4
+ // ---------------------------------------------------------------------------
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAC9E,8EAA8E"}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "substrate-mcp-server",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "MCP server for Substrate agent rooms",
6
+ "bin": {
7
+ "substrate-mcp": "dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "dev": "tsx src/index.ts",
15
+ "prepublishOnly": "npm run build",
16
+ "test": "vitest run",
17
+ "test:e2e": "vitest run --config vitest.e2e.config.ts"
18
+ },
19
+ "dependencies": {
20
+ "@modelcontextprotocol/sdk": "^1.29.0",
21
+ "zod": "^3.25.0"
22
+ },
23
+ "devDependencies": {
24
+ "@types/node": "^20.19.39",
25
+ "tsx": "^4.19.0",
26
+ "typescript": "^5.5.0",
27
+ "vitest": "^3.1.0"
28
+ }
29
+ }