@infinite-room-labs/claudesync-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/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +220 -0
- package/dist/server.js.map +1 -0
- package/package.json +36 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ClaudeSync MCP Server
|
|
4
|
+
*
|
|
5
|
+
* SECURITY NOTE: This server uses stdio transport ONLY.
|
|
6
|
+
* Network transports (SSE, HTTP) would expose the claude.ai session
|
|
7
|
+
* cookie to any network client and are explicitly unsafe. Do not add
|
|
8
|
+
* network transport support without implementing proper auth isolation.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ClaudeSync MCP Server
|
|
4
|
+
*
|
|
5
|
+
* SECURITY NOTE: This server uses stdio transport ONLY.
|
|
6
|
+
* Network transports (SSE, HTTP) would expose the claude.ai session
|
|
7
|
+
* cookie to any network client and are explicitly unsafe. Do not add
|
|
8
|
+
* network transport support without implementing proper auth isolation.
|
|
9
|
+
*/
|
|
10
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
11
|
+
import { createServer } from "./server.js";
|
|
12
|
+
const server = createServer();
|
|
13
|
+
const transport = new StdioServerTransport();
|
|
14
|
+
await server.connect(transport);
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;AAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+CpE,wBAAgB,YAAY,IAAI,SAAS,CAyRxC"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { ClaudeSyncClient, EnvAuth, AuthError, ClaudeSyncError, } from "@infinite-room-labs/claudesync-core";
|
|
4
|
+
function resolveAuth() {
|
|
5
|
+
// Phase 1: EnvAuth only
|
|
6
|
+
// FirefoxProfileAuth deferred to Phase 3
|
|
7
|
+
if (process.env.CLAUDE_AI_COOKIE) {
|
|
8
|
+
return new EnvAuth();
|
|
9
|
+
}
|
|
10
|
+
throw new AuthError("CLAUDE_AI_COOKIE environment variable is required. " +
|
|
11
|
+
"Get it from browser DevTools: Application > Cookies > claude.ai > sessionKey");
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Wraps a tool handler to catch ClaudeSyncError and return MCP error content blocks
|
|
15
|
+
* instead of crashing the server.
|
|
16
|
+
*/
|
|
17
|
+
function withErrorHandling(fn) {
|
|
18
|
+
return fn().catch((error) => {
|
|
19
|
+
const message = error instanceof ClaudeSyncError
|
|
20
|
+
? `${error.name}: ${error.message}`
|
|
21
|
+
: error instanceof AuthError
|
|
22
|
+
? `${error.name}: ${error.message}`
|
|
23
|
+
: error instanceof Error
|
|
24
|
+
? error.message
|
|
25
|
+
: String(error);
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: "text", text: message }],
|
|
28
|
+
isError: true,
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export function createServer() {
|
|
33
|
+
const auth = resolveAuth();
|
|
34
|
+
const client = new ClaudeSyncClient(auth);
|
|
35
|
+
const server = new McpServer({
|
|
36
|
+
name: "claudesync",
|
|
37
|
+
version: "0.1.0",
|
|
38
|
+
});
|
|
39
|
+
// --- list_organizations ---
|
|
40
|
+
server.tool("list_organizations", "List claude.ai organizations accessible by this session", {}, async () => {
|
|
41
|
+
return withErrorHandling(async () => {
|
|
42
|
+
const orgs = await client.listOrganizations();
|
|
43
|
+
return {
|
|
44
|
+
content: [
|
|
45
|
+
{
|
|
46
|
+
type: "text",
|
|
47
|
+
text: JSON.stringify(orgs, null, 2),
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
// --- list_conversations ---
|
|
54
|
+
server.tool("list_conversations", "List conversations in a claude.ai organization. Returns conversation metadata including names, models, and timestamps.", {
|
|
55
|
+
orgId: z
|
|
56
|
+
.string()
|
|
57
|
+
.optional()
|
|
58
|
+
.describe("Organization UUID. Omit to auto-detect from session."),
|
|
59
|
+
}, async ({ orgId }) => {
|
|
60
|
+
return withErrorHandling(async () => {
|
|
61
|
+
const resolvedOrgId = orgId ?? (await auth.getOrganizationId());
|
|
62
|
+
const conversations = await client.listConversationsAll(resolvedOrgId);
|
|
63
|
+
return {
|
|
64
|
+
content: [
|
|
65
|
+
{
|
|
66
|
+
type: "text",
|
|
67
|
+
text: JSON.stringify(conversations, null, 2),
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
// --- get_conversation ---
|
|
74
|
+
server.tool("get_conversation", "Get a full claude.ai conversation including all messages. Messages form a tree via parent_message_uuid for branching support.", {
|
|
75
|
+
conversationId: z
|
|
76
|
+
.string()
|
|
77
|
+
.describe("The conversation UUID to retrieve"),
|
|
78
|
+
orgId: z
|
|
79
|
+
.string()
|
|
80
|
+
.optional()
|
|
81
|
+
.describe("Organization UUID. Omit to auto-detect from session."),
|
|
82
|
+
}, async ({ conversationId, orgId }) => {
|
|
83
|
+
return withErrorHandling(async () => {
|
|
84
|
+
const resolvedOrgId = orgId ?? (await auth.getOrganizationId());
|
|
85
|
+
const conversation = await client.getConversation(resolvedOrgId, conversationId);
|
|
86
|
+
return {
|
|
87
|
+
content: [
|
|
88
|
+
{
|
|
89
|
+
type: "text",
|
|
90
|
+
text: JSON.stringify(conversation, null, 2),
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
// --- search_conversations ---
|
|
97
|
+
server.tool("search_conversations", "Search conversations by text query. Returns matching conversation chunks with context.", {
|
|
98
|
+
query: z
|
|
99
|
+
.string()
|
|
100
|
+
.describe("Search query string"),
|
|
101
|
+
orgId: z
|
|
102
|
+
.string()
|
|
103
|
+
.optional()
|
|
104
|
+
.describe("Organization UUID. Omit to auto-detect from session."),
|
|
105
|
+
limit: z
|
|
106
|
+
.number()
|
|
107
|
+
.optional()
|
|
108
|
+
.describe("Maximum number of results to return. Defaults to 20."),
|
|
109
|
+
}, async ({ query, orgId, limit }) => {
|
|
110
|
+
return withErrorHandling(async () => {
|
|
111
|
+
const resolvedOrgId = orgId ?? (await auth.getOrganizationId());
|
|
112
|
+
const results = await client.searchConversations(resolvedOrgId, query, limit ?? 20);
|
|
113
|
+
return {
|
|
114
|
+
content: [
|
|
115
|
+
{
|
|
116
|
+
type: "text",
|
|
117
|
+
text: JSON.stringify(results, null, 2),
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
};
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
// --- list_projects ---
|
|
124
|
+
server.tool("list_projects", "List projects in a claude.ai organization. Returns project metadata including name, description, docs_count, and files_count.", {
|
|
125
|
+
orgId: z
|
|
126
|
+
.string()
|
|
127
|
+
.optional()
|
|
128
|
+
.describe("Organization UUID. Omit to auto-detect from session."),
|
|
129
|
+
}, async ({ orgId }) => {
|
|
130
|
+
return withErrorHandling(async () => {
|
|
131
|
+
const resolvedOrgId = orgId ?? (await auth.getOrganizationId());
|
|
132
|
+
const projects = await client.listProjects(resolvedOrgId);
|
|
133
|
+
return {
|
|
134
|
+
content: [
|
|
135
|
+
{
|
|
136
|
+
type: "text",
|
|
137
|
+
text: JSON.stringify(projects, null, 2),
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
};
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
// --- get_project_docs ---
|
|
144
|
+
server.tool("get_project_docs", "Get knowledge file contents for a claude.ai project. Returns the list of project documents with their content.", {
|
|
145
|
+
projectId: z
|
|
146
|
+
.string()
|
|
147
|
+
.describe("The project UUID to retrieve docs for"),
|
|
148
|
+
orgId: z
|
|
149
|
+
.string()
|
|
150
|
+
.optional()
|
|
151
|
+
.describe("Organization UUID. Omit to auto-detect from session."),
|
|
152
|
+
}, async ({ projectId, orgId }) => {
|
|
153
|
+
return withErrorHandling(async () => {
|
|
154
|
+
const resolvedOrgId = orgId ?? (await auth.getOrganizationId());
|
|
155
|
+
const docs = await client.getProjectDocs(resolvedOrgId, projectId);
|
|
156
|
+
return {
|
|
157
|
+
content: [
|
|
158
|
+
{
|
|
159
|
+
type: "text",
|
|
160
|
+
text: JSON.stringify(docs, null, 2),
|
|
161
|
+
},
|
|
162
|
+
],
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
// --- list_artifacts ---
|
|
167
|
+
server.tool("list_artifacts", "List artifact files in a conversation's wiggle filesystem. Returns file metadata including paths, sizes, and types.", {
|
|
168
|
+
conversationId: z
|
|
169
|
+
.string()
|
|
170
|
+
.describe("The conversation UUID to list artifacts for"),
|
|
171
|
+
orgId: z
|
|
172
|
+
.string()
|
|
173
|
+
.optional()
|
|
174
|
+
.describe("Organization UUID. Omit to auto-detect from session."),
|
|
175
|
+
}, async ({ conversationId, orgId }) => {
|
|
176
|
+
return withErrorHandling(async () => {
|
|
177
|
+
const resolvedOrgId = orgId ?? (await auth.getOrganizationId());
|
|
178
|
+
const artifacts = await client.listArtifacts(resolvedOrgId, conversationId);
|
|
179
|
+
return {
|
|
180
|
+
content: [
|
|
181
|
+
{
|
|
182
|
+
type: "text",
|
|
183
|
+
text: JSON.stringify(artifacts, null, 2),
|
|
184
|
+
},
|
|
185
|
+
],
|
|
186
|
+
};
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
// --- download_artifact ---
|
|
190
|
+
server.tool("download_artifact", "Download an artifact file from a conversation's wiggle filesystem. Returns file content as text.", {
|
|
191
|
+
conversationId: z
|
|
192
|
+
.string()
|
|
193
|
+
.describe("The conversation UUID that contains the artifact"),
|
|
194
|
+
filePath: z
|
|
195
|
+
.string()
|
|
196
|
+
.describe("Full path of the artifact file (e.g. /mnt/user-data/...)"),
|
|
197
|
+
orgId: z
|
|
198
|
+
.string()
|
|
199
|
+
.optional()
|
|
200
|
+
.describe("Organization UUID. Omit to auto-detect from session."),
|
|
201
|
+
}, async ({ conversationId, filePath, orgId }) => {
|
|
202
|
+
return withErrorHandling(async () => {
|
|
203
|
+
const resolvedOrgId = orgId ?? (await auth.getOrganizationId());
|
|
204
|
+
const content = await client.downloadArtifact(resolvedOrgId, conversationId, filePath);
|
|
205
|
+
const text = typeof content === "string"
|
|
206
|
+
? content
|
|
207
|
+
: `[Binary content: ${content.byteLength} bytes]`;
|
|
208
|
+
return {
|
|
209
|
+
content: [
|
|
210
|
+
{
|
|
211
|
+
type: "text",
|
|
212
|
+
text,
|
|
213
|
+
},
|
|
214
|
+
],
|
|
215
|
+
};
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
return server;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@infinite-room-labs/claudesync-mcp-server",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"exports": {
|
|
6
|
+
".": {
|
|
7
|
+
"import": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"development": "./src/index.ts"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"claudesync-mcp": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
20
|
+
"zod": "^3.24.0",
|
|
21
|
+
"@infinite-room-labs/claudesync-core": "0.1.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/node": "^25.5.0",
|
|
25
|
+
"tsx": "^4.19.0",
|
|
26
|
+
"typescript": "^5.8.0",
|
|
27
|
+
"vitest": "^3.1.0"
|
|
28
|
+
},
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsc -p tsconfig.json",
|
|
31
|
+
"dev": "node --import tsx src/index.ts",
|
|
32
|
+
"test": "vitest run",
|
|
33
|
+
"test:watch": "vitest",
|
|
34
|
+
"typecheck": "tsc --noEmit"
|
|
35
|
+
}
|
|
36
|
+
}
|