firebase-mcp 0.2.0 → 0.3.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/README.md +6 -11
- package/dist/cli/index.js +9 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +39 -47
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +46 -37
- package/dist/config/index.js.map +1 -1
- package/dist/firebase/index.d.ts +9 -18
- package/dist/firebase/index.d.ts.map +1 -1
- package/dist/firebase/index.js +28 -30
- package/dist/firebase/index.js.map +1 -1
- package/dist/project/index.d.ts +17 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +38 -0
- package/dist/project/index.js.map +1 -0
- package/dist/server/index.d.ts +11 -19
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +96 -46
- package/dist/server/index.js.map +1 -1
- package/dist/task/index.d.ts +53 -0
- package/dist/task/index.d.ts.map +1 -0
- package/dist/task/index.js +177 -0
- package/dist/task/index.js.map +1 -0
- package/dist/tools/auth/get_user.d.ts +9 -15
- package/dist/tools/auth/get_user.d.ts.map +1 -1
- package/dist/tools/auth/get_user.js +29 -20
- package/dist/tools/auth/get_user.js.map +1 -1
- package/dist/tools/auth/index.d.ts +1 -0
- package/dist/tools/auth/index.d.ts.map +1 -1
- package/dist/tools/auth/index.js +1 -0
- package/dist/tools/auth/index.js.map +1 -1
- package/dist/tools/auth/list_users.d.ts +7 -11
- package/dist/tools/auth/list_users.d.ts.map +1 -1
- package/dist/tools/auth/list_users.js +19 -11
- package/dist/tools/auth/list_users.js.map +1 -1
- package/dist/tools/auth/read.d.ts +15 -0
- package/dist/tools/auth/read.d.ts.map +1 -0
- package/dist/tools/auth/read.js +72 -0
- package/dist/tools/auth/read.js.map +1 -0
- package/dist/tools/config/get_config.d.ts +6 -0
- package/dist/tools/config/get_config.d.ts.map +1 -0
- package/dist/tools/config/get_config.js +31 -0
- package/dist/tools/config/get_config.js.map +1 -0
- package/dist/tools/config/index.d.ts +3 -0
- package/dist/tools/config/index.d.ts.map +1 -0
- package/dist/tools/config/index.js +19 -0
- package/dist/tools/config/index.js.map +1 -0
- package/dist/tools/config/reload_config.d.ts +8 -0
- package/dist/tools/config/reload_config.d.ts.map +1 -0
- package/dist/tools/config/reload_config.js +44 -0
- package/dist/tools/config/reload_config.js.map +1 -0
- package/dist/tools/firestore/aggregate_collection.d.ts +7 -12
- package/dist/tools/firestore/aggregate_collection.d.ts.map +1 -1
- package/dist/tools/firestore/aggregate_collection.js +21 -15
- package/dist/tools/firestore/aggregate_collection.js.map +1 -1
- package/dist/tools/firestore/count_documents.d.ts +7 -12
- package/dist/tools/firestore/count_documents.d.ts.map +1 -1
- package/dist/tools/firestore/count_documents.js +21 -15
- package/dist/tools/firestore/count_documents.js.map +1 -1
- package/dist/tools/firestore/get_collection_schema.d.ts +8 -13
- package/dist/tools/firestore/get_collection_schema.d.ts.map +1 -1
- package/dist/tools/firestore/get_collection_schema.js +23 -19
- package/dist/tools/firestore/get_collection_schema.js.map +1 -1
- package/dist/tools/firestore/get_document.d.ts +10 -17
- package/dist/tools/firestore/get_document.d.ts.map +1 -1
- package/dist/tools/firestore/get_document.js +32 -23
- package/dist/tools/firestore/get_document.js.map +1 -1
- package/dist/tools/firestore/get_many_documents.d.ts +7 -13
- package/dist/tools/firestore/get_many_documents.d.ts.map +1 -1
- package/dist/tools/firestore/get_many_documents.js +25 -26
- package/dist/tools/firestore/get_many_documents.js.map +1 -1
- package/dist/tools/firestore/index.d.ts +1 -0
- package/dist/tools/firestore/index.d.ts.map +1 -1
- package/dist/tools/firestore/index.js +1 -0
- package/dist/tools/firestore/index.js.map +1 -1
- package/dist/tools/firestore/list_collections.d.ts +7 -12
- package/dist/tools/firestore/list_collections.d.ts.map +1 -1
- package/dist/tools/firestore/list_collections.js +25 -22
- package/dist/tools/firestore/list_collections.js.map +1 -1
- package/dist/tools/firestore/list_documents.d.ts +7 -12
- package/dist/tools/firestore/list_documents.d.ts.map +1 -1
- package/dist/tools/firestore/list_documents.js +22 -20
- package/dist/tools/firestore/list_documents.js.map +1 -1
- package/dist/tools/firestore/list_indexes.d.ts +7 -11
- package/dist/tools/firestore/list_indexes.d.ts.map +1 -1
- package/dist/tools/firestore/list_indexes.js +22 -22
- package/dist/tools/firestore/list_indexes.js.map +1 -1
- package/dist/tools/firestore/query_collection.d.ts +7 -13
- package/dist/tools/firestore/query_collection.d.ts.map +1 -1
- package/dist/tools/firestore/query_collection.js +24 -27
- package/dist/tools/firestore/query_collection.js.map +1 -1
- package/dist/tools/firestore/query_collection_group.d.ts +7 -13
- package/dist/tools/firestore/query_collection_group.d.ts.map +1 -1
- package/dist/tools/firestore/query_collection_group.js +24 -24
- package/dist/tools/firestore/query_collection_group.js.map +1 -1
- package/dist/tools/firestore/read.d.ts +65 -0
- package/dist/tools/firestore/read.d.ts.map +1 -0
- package/dist/tools/firestore/read.js +197 -0
- package/dist/tools/firestore/read.js.map +1 -0
- package/dist/tools/firestore/read_collections.d.ts +7 -13
- package/dist/tools/firestore/read_collections.d.ts.map +1 -1
- package/dist/tools/firestore/read_collections.js +27 -33
- package/dist/tools/firestore/read_collections.js.map +1 -1
- package/dist/tools/index.d.ts +9 -103
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +76 -79
- package/dist/tools/index.js.map +1 -1
- package/package.json +3 -5
- package/dist/access/index.d.ts +0 -23
- package/dist/access/index.d.ts.map +0 -1
- package/dist/access/index.js +0 -35
- package/dist/access/index.js.map +0 -1
package/dist/server/index.js
CHANGED
|
@@ -1,60 +1,110 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.FirebaseMcpServer = exports.McpServerError = void 0;
|
|
4
4
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
5
5
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
6
6
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
7
|
-
const effect_1 = require("effect");
|
|
8
|
-
const access_1 = require("../access");
|
|
9
7
|
const config_1 = require("../config");
|
|
10
|
-
const
|
|
8
|
+
const project_1 = require("../project");
|
|
11
9
|
const tools_1 = require("../tools");
|
|
12
|
-
class McpServerError extends
|
|
10
|
+
class McpServerError extends Error {
|
|
11
|
+
cause;
|
|
12
|
+
_tag = 'McpServerError';
|
|
13
|
+
constructor(message, cause) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.cause = cause;
|
|
16
|
+
this.name = 'McpServerError';
|
|
17
|
+
}
|
|
13
18
|
}
|
|
14
19
|
exports.McpServerError = McpServerError;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
const toErrorResult = (code, message, details) => ({
|
|
21
|
+
content: [
|
|
22
|
+
{
|
|
23
|
+
type: 'text',
|
|
24
|
+
text: JSON.stringify({
|
|
25
|
+
success: false,
|
|
26
|
+
error: { code, message, details },
|
|
27
|
+
}),
|
|
28
|
+
},
|
|
21
29
|
],
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
isError: true,
|
|
31
|
+
});
|
|
32
|
+
class FirebaseMcpServer {
|
|
33
|
+
appConfig;
|
|
34
|
+
projectContexts = new Map();
|
|
35
|
+
mcpServer;
|
|
36
|
+
configPath;
|
|
37
|
+
constructor() {
|
|
38
|
+
this.configPath = (0, config_1.getConfigPath)();
|
|
39
|
+
this.mcpServer = new mcp_js_1.McpServer({ name: 'firebase-mcp', version: '0.1.0' }, { capabilities: { tools: {} } });
|
|
40
|
+
}
|
|
41
|
+
async start() {
|
|
42
|
+
const { exit } = (0, config_1.loadConfig)(this.configPath).fork();
|
|
43
|
+
const result = await exit;
|
|
44
|
+
if (result._tag === 'err')
|
|
45
|
+
throw result.error;
|
|
46
|
+
if (result._tag === 'die')
|
|
47
|
+
throw result.cause;
|
|
48
|
+
this.appConfig = result.value;
|
|
49
|
+
this.mcpServer.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({ tools: tools_1.allToolDefinitions }));
|
|
50
|
+
this.mcpServer.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
51
|
+
const name = request.params.name;
|
|
31
52
|
const args = request.params.arguments ?? {};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return effect_1.Effect.tryPromise({
|
|
48
|
-
try: () => mcpServer.server.connect(new stdio_js_1.StdioServerTransport()),
|
|
49
|
-
catch: (cause) => new McpServerError({
|
|
50
|
-
message: 'Failed to connect stdio transport',
|
|
51
|
-
cause,
|
|
52
|
-
}),
|
|
53
|
+
if (name === tools_1.GET_CONFIG) {
|
|
54
|
+
return (0, tools_1.getConfig)(this.appConfig);
|
|
55
|
+
}
|
|
56
|
+
if (name === tools_1.RELOAD_CONFIG) {
|
|
57
|
+
return (0, tools_1.reloadConfig)(async () => {
|
|
58
|
+
const { exit: cfgExit } = (0, config_1.loadConfig)(this.configPath).fork();
|
|
59
|
+
const cfgResult = await cfgExit;
|
|
60
|
+
if (cfgResult._tag !== 'ok') {
|
|
61
|
+
throw cfgResult._tag === 'err'
|
|
62
|
+
? cfgResult.error
|
|
63
|
+
: cfgResult.cause;
|
|
64
|
+
}
|
|
65
|
+
this.projectContexts.clear();
|
|
66
|
+
this.appConfig = cfgResult.value;
|
|
67
|
+
return { projects: Object.keys(cfgResult.value.projects) };
|
|
53
68
|
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
69
|
+
}
|
|
70
|
+
const projectId = typeof args.projectId === 'string' ? args.projectId : null;
|
|
71
|
+
if (!projectId) {
|
|
72
|
+
return toErrorResult('MISSING_PROJECT_ID', 'projectId is required. Call get_config to see available projects.');
|
|
73
|
+
}
|
|
74
|
+
const projectConfig = this.appConfig.projects[projectId];
|
|
75
|
+
if (!projectConfig) {
|
|
76
|
+
return toErrorResult('PROJECT_NOT_FOUND', `Project "${projectId}" not found in config. Call get_config to see available projects.`, { projectId, available: Object.keys(this.appConfig.projects) });
|
|
77
|
+
}
|
|
78
|
+
const { projectId: _stripped, ...toolArgs } = args;
|
|
79
|
+
let ctx;
|
|
80
|
+
try {
|
|
81
|
+
ctx = await this.getOrInitProject(projectId, projectConfig);
|
|
82
|
+
}
|
|
83
|
+
catch (cause) {
|
|
84
|
+
return toErrorResult('FIREBASE_INIT_ERROR', `Failed to initialize Firebase for project "${projectId}": ${String(cause)}`);
|
|
85
|
+
}
|
|
86
|
+
const { exit: toolExit } = (0, tools_1.dispatchTool)(ctx, name, toolArgs).fork();
|
|
87
|
+
const toolResult = await toolExit;
|
|
88
|
+
if (toolResult._tag === 'ok')
|
|
89
|
+
return toolResult.value;
|
|
90
|
+
return toErrorResult('INTERNAL_ERROR', `Unexpected error: ${String(toolResult._tag === 'err' ? toolResult.error : toolResult.cause)}`);
|
|
91
|
+
});
|
|
92
|
+
await this.mcpServer.server.connect(new stdio_js_1.StdioServerTransport());
|
|
93
|
+
}
|
|
94
|
+
getOrInitProject(projectId, config) {
|
|
95
|
+
const cached = this.projectContexts.get(projectId);
|
|
96
|
+
if (cached)
|
|
97
|
+
return cached;
|
|
98
|
+
const { exit } = (0, project_1.createProjectContext)(config).fork();
|
|
99
|
+
const promise = exit.then((result) => {
|
|
100
|
+
if (result._tag === 'ok')
|
|
101
|
+
return result.value;
|
|
102
|
+
this.projectContexts.delete(projectId);
|
|
103
|
+
throw result._tag === 'err' ? result.error : result.cause;
|
|
104
|
+
});
|
|
105
|
+
this.projectContexts.set(projectId, promise);
|
|
106
|
+
return promise;
|
|
107
|
+
}
|
|
58
108
|
}
|
|
59
|
-
exports.
|
|
109
|
+
exports.FirebaseMcpServer = FirebaseMcpServer;
|
|
60
110
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,wEAAiF;AACjF,iEAG4C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
type Ok<A> = {
|
|
2
|
+
_tag: 'ok';
|
|
3
|
+
value: A;
|
|
4
|
+
};
|
|
5
|
+
type Err<E> = {
|
|
6
|
+
_tag: 'err';
|
|
7
|
+
error: E;
|
|
8
|
+
};
|
|
9
|
+
type Die = {
|
|
10
|
+
_tag: 'die';
|
|
11
|
+
cause?: unknown;
|
|
12
|
+
};
|
|
13
|
+
export type Exit<A, E> = Ok<A> | Err<E> | Die;
|
|
14
|
+
export declare const Exit: {
|
|
15
|
+
ok: <A>(value: A) => Exit<A, never>;
|
|
16
|
+
err: <E>(error: E) => Exit<never, E>;
|
|
17
|
+
die: (cause?: unknown) => Exit<never, never>;
|
|
18
|
+
isOk: <A, E>(e: Exit<A, E>) => e is Ok<A>;
|
|
19
|
+
isErr: <A, E>(e: Exit<A, E>) => e is Err<E>;
|
|
20
|
+
isDie: <A, E>(e: Exit<A, E>) => e is Die;
|
|
21
|
+
};
|
|
22
|
+
export declare class Task<A, E> {
|
|
23
|
+
private readonly effect;
|
|
24
|
+
private constructor();
|
|
25
|
+
run(signal: AbortSignal): Promise<Exit<A, E>>;
|
|
26
|
+
fork(): {
|
|
27
|
+
exit: Promise<Exit<A, E>>;
|
|
28
|
+
abort: () => void;
|
|
29
|
+
};
|
|
30
|
+
map<B>(f: (a: A) => B): Task<B, E>;
|
|
31
|
+
flatMap<B, E2>(f: (a: A) => Task<B, E2>): Task<B, E | E2>;
|
|
32
|
+
tap(f: (a: A) => void | PromiseLike<void>): Task<A, E>;
|
|
33
|
+
mapError<E2>(f: (e: E) => E2): Task<A, E2>;
|
|
34
|
+
catchAll<B, E2>(f: (e: E) => Task<B, E2>): Task<A | B, E2>;
|
|
35
|
+
catchWhen<K extends keyof E, V extends E[K], B, E2>(key: K, value: V, handler: (e: Extract<E, Record<K, V>>) => Task<B, E2>): Task<A | B, E2 | Exclude<E, Record<K, V>>>;
|
|
36
|
+
filter<B extends A, E2>(predicate: (a: A) => a is B, onFalse: (a: A) => E2): Task<B, E | E2>;
|
|
37
|
+
filter<E2>(predicate: (a: A) => boolean, onFalse: (a: A) => E2): Task<A, E | E2>;
|
|
38
|
+
tapError(f: (e: E) => void | PromiseLike<void>): Task<A, E>;
|
|
39
|
+
static succeed<A>(value: A): Task<A, never>;
|
|
40
|
+
static fail<E>(error: E): Task<never, E>;
|
|
41
|
+
static die(cause?: unknown): Task<never, never>;
|
|
42
|
+
static never(): Task<never, never>;
|
|
43
|
+
static sync<A>(thunk: () => A): Task<A, never>;
|
|
44
|
+
static lazy<A, E>(thunk: () => Task<A, E>): Task<A, E>;
|
|
45
|
+
static attempt<A, E>(options: {
|
|
46
|
+
try: () => A | PromiseLike<A>;
|
|
47
|
+
catch: (error: unknown) => E;
|
|
48
|
+
}): Task<A, E>;
|
|
49
|
+
static gen<Eff extends Task<any, any>, T>(f: () => Generator<Eff, T, any>): Task<T, Eff extends Task<any, infer E> ? E : never>;
|
|
50
|
+
[Symbol.iterator](): Generator<Task<A, E>, A, any>;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Task = exports.Exit = void 0;
|
|
4
|
+
exports.Exit = {
|
|
5
|
+
ok: (value) => ({ _tag: 'ok', value }),
|
|
6
|
+
err: (error) => ({ _tag: 'err', error }),
|
|
7
|
+
die: (cause) => ({ _tag: 'die', cause }),
|
|
8
|
+
isOk: (e) => e._tag === 'ok',
|
|
9
|
+
isErr: (e) => e._tag === 'err',
|
|
10
|
+
isDie: (e) => e._tag === 'die',
|
|
11
|
+
};
|
|
12
|
+
const abortIfNeeded = (signal) => signal.aborted ? exports.Exit.die(signal.reason) : null;
|
|
13
|
+
const tryCatch = async (f) => {
|
|
14
|
+
try {
|
|
15
|
+
return await f();
|
|
16
|
+
}
|
|
17
|
+
catch (cause) {
|
|
18
|
+
return exports.Exit.die(cause);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
class Task {
|
|
22
|
+
effect;
|
|
23
|
+
constructor(effect) {
|
|
24
|
+
this.effect = effect;
|
|
25
|
+
}
|
|
26
|
+
run(signal) {
|
|
27
|
+
const aborted = abortIfNeeded(signal);
|
|
28
|
+
if (aborted)
|
|
29
|
+
return Promise.resolve(aborted);
|
|
30
|
+
return tryCatch(() => this.effect(signal));
|
|
31
|
+
}
|
|
32
|
+
fork() {
|
|
33
|
+
const controller = new AbortController();
|
|
34
|
+
return {
|
|
35
|
+
exit: this.run(controller.signal),
|
|
36
|
+
abort: () => controller.abort(),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
map(f) {
|
|
40
|
+
return new Task(async (signal) => {
|
|
41
|
+
const exit = await this.run(signal);
|
|
42
|
+
if (!exports.Exit.isOk(exit))
|
|
43
|
+
return exit;
|
|
44
|
+
return tryCatch(() => exports.Exit.ok(f(exit.value)));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
flatMap(f) {
|
|
48
|
+
return new Task(async (signal) => {
|
|
49
|
+
const exit = await this.run(signal);
|
|
50
|
+
if (!exports.Exit.isOk(exit))
|
|
51
|
+
return exit;
|
|
52
|
+
return f(exit.value).run(signal);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
tap(f) {
|
|
56
|
+
return new Task(async (signal) => {
|
|
57
|
+
const exit = await this.run(signal);
|
|
58
|
+
if (!exports.Exit.isOk(exit))
|
|
59
|
+
return exit;
|
|
60
|
+
return tryCatch(async () => {
|
|
61
|
+
await f(exit.value);
|
|
62
|
+
return exit;
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
mapError(f) {
|
|
67
|
+
return new Task(async (signal) => {
|
|
68
|
+
const exit = await this.run(signal);
|
|
69
|
+
if (!exports.Exit.isErr(exit))
|
|
70
|
+
return exit;
|
|
71
|
+
return tryCatch(() => exports.Exit.err(f(exit.error)));
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catchAll(f) {
|
|
75
|
+
return new Task(async (signal) => {
|
|
76
|
+
const exit = await this.run(signal);
|
|
77
|
+
if (!exports.Exit.isErr(exit))
|
|
78
|
+
return exit;
|
|
79
|
+
return f(exit.error).run(signal);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
catchWhen(key, value, handler) {
|
|
83
|
+
return new Task(async (signal) => {
|
|
84
|
+
const exit = await this.run(signal);
|
|
85
|
+
if (!exports.Exit.isErr(exit))
|
|
86
|
+
return exit;
|
|
87
|
+
if (exit.error?.[key] === value) {
|
|
88
|
+
return handler(exit.error).run(signal);
|
|
89
|
+
}
|
|
90
|
+
return exit;
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
filter(predicate, onFalse) {
|
|
94
|
+
return new Task(async (signal) => {
|
|
95
|
+
const exit = await this.run(signal);
|
|
96
|
+
if (!exports.Exit.isOk(exit))
|
|
97
|
+
return exit;
|
|
98
|
+
return tryCatch(() => {
|
|
99
|
+
if (predicate(exit.value))
|
|
100
|
+
return exports.Exit.ok(exit.value);
|
|
101
|
+
return exports.Exit.err(onFalse(exit.value));
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
tapError(f) {
|
|
106
|
+
return new Task(async (signal) => {
|
|
107
|
+
const exit = await this.run(signal);
|
|
108
|
+
if (!exports.Exit.isErr(exit))
|
|
109
|
+
return exit;
|
|
110
|
+
return tryCatch(async () => {
|
|
111
|
+
await f(exit.error);
|
|
112
|
+
return exit;
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
static succeed(value) {
|
|
117
|
+
return new Task(async () => exports.Exit.ok(value));
|
|
118
|
+
}
|
|
119
|
+
static fail(error) {
|
|
120
|
+
return new Task(async () => exports.Exit.err(error));
|
|
121
|
+
}
|
|
122
|
+
static die(cause) {
|
|
123
|
+
return new Task(async () => exports.Exit.die(cause));
|
|
124
|
+
}
|
|
125
|
+
static never() {
|
|
126
|
+
return new Task((signal) => new Promise((resolve) => {
|
|
127
|
+
const interval = setInterval(() => { }, 2 ** 31 - 1);
|
|
128
|
+
signal.addEventListener('abort', () => {
|
|
129
|
+
clearInterval(interval);
|
|
130
|
+
resolve(exports.Exit.die(signal.reason));
|
|
131
|
+
});
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
static sync(thunk) {
|
|
135
|
+
return new Task(() => tryCatch(() => exports.Exit.ok(thunk())));
|
|
136
|
+
}
|
|
137
|
+
static lazy(thunk) {
|
|
138
|
+
return new Task((signal) => tryCatch(() => thunk().run(signal)));
|
|
139
|
+
}
|
|
140
|
+
static attempt(options) {
|
|
141
|
+
return new Task(async () => {
|
|
142
|
+
try {
|
|
143
|
+
return exports.Exit.ok(await options.try());
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
return exports.Exit.err(options.catch(error));
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
static gen(f) {
|
|
151
|
+
return new Task(async (signal) => {
|
|
152
|
+
const iterator = f();
|
|
153
|
+
let state = iterator.next();
|
|
154
|
+
while (!state.done) {
|
|
155
|
+
const aborted = abortIfNeeded(signal);
|
|
156
|
+
if (aborted)
|
|
157
|
+
return aborted;
|
|
158
|
+
const exit = await state.value.run(signal);
|
|
159
|
+
if (exports.Exit.isOk(exit)) {
|
|
160
|
+
state = iterator.next(exit.value);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
return exit;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return exports.Exit.ok(state.value);
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
[Symbol.iterator]() {
|
|
170
|
+
const self = this;
|
|
171
|
+
return (function* () {
|
|
172
|
+
return (yield self);
|
|
173
|
+
})();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.Task = Task;
|
|
177
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
declare
|
|
2
|
+
import type { ProjectContext } from '../../project';
|
|
3
|
+
import { Task } from '../../task';
|
|
4
|
+
export declare class AuthGetUserError extends Error {
|
|
5
|
+
readonly cause?: unknown | undefined;
|
|
5
6
|
readonly _tag: "AuthGetUserError";
|
|
6
|
-
|
|
7
|
-
export declare class AuthGetUserError extends AuthGetUserError_base<{
|
|
8
|
-
readonly message: string;
|
|
9
|
-
readonly cause?: unknown;
|
|
10
|
-
}> {
|
|
7
|
+
constructor(message: string, cause?: unknown | undefined);
|
|
11
8
|
}
|
|
12
|
-
declare
|
|
13
|
-
readonly _tag: "AuthUserNotFoundError";
|
|
14
|
-
} & Readonly<A>;
|
|
15
|
-
export declare class AuthUserNotFoundError extends AuthUserNotFoundError_base<{
|
|
9
|
+
export declare class AuthUserNotFoundError extends Error {
|
|
16
10
|
readonly identifier: string;
|
|
17
|
-
|
|
11
|
+
readonly _tag: "AuthUserNotFoundError";
|
|
12
|
+
constructor(identifier: string);
|
|
18
13
|
}
|
|
19
14
|
export declare const GET_USER: "get_user";
|
|
20
15
|
export interface GetUserArgs {
|
|
@@ -22,6 +17,5 @@ export interface GetUserArgs {
|
|
|
22
17
|
email?: string;
|
|
23
18
|
}
|
|
24
19
|
export declare const getUserDefinition: Tool;
|
|
25
|
-
export declare const getUser: (input: GetUserArgs) =>
|
|
26
|
-
export {};
|
|
20
|
+
export declare const getUser: (ctx: ProjectContext, input: GetUserArgs) => Task<unknown, AuthGetUserError | AuthUserNotFoundError>;
|
|
27
21
|
//# sourceMappingURL=get_user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_user.d.ts","sourceRoot":"","sources":["../../../src/tools/auth/get_user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"get_user.d.ts","sourceRoot":"","sources":["../../../src/tools/auth/get_user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGlC,qBAAa,gBAAiB,SAAQ,KAAK;IAEZ,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IADrD,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAU;gBAChC,OAAO,EAAE,MAAM,EAAW,KAAK,CAAC,EAAE,OAAO,YAAA;CAItD;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAElC,QAAQ,CAAC,UAAU,EAAE,MAAM;IADvC,QAAQ,CAAC,IAAI,EAAG,uBAAuB,CAAU;gBAC5B,UAAU,EAAE,MAAM;CAIxC;AAED,eAAO,MAAM,QAAQ,EAAG,UAAmB,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB,EAAE,IAsB/B,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,cAAc,EAAE,OAAO,WAAW,4DAqC3D,CAAC"}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getUser = exports.getUserDefinition = exports.GET_USER = exports.AuthUserNotFoundError = exports.AuthGetUserError = void 0;
|
|
4
|
-
const
|
|
5
|
-
const firebase_1 = require("../../firebase");
|
|
4
|
+
const task_1 = require("../../task");
|
|
6
5
|
const normalize_1 = require("../normalize");
|
|
7
|
-
class AuthGetUserError extends
|
|
6
|
+
class AuthGetUserError extends Error {
|
|
7
|
+
cause;
|
|
8
|
+
_tag = 'AuthGetUserError';
|
|
9
|
+
constructor(message, cause) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.cause = cause;
|
|
12
|
+
this.name = 'AuthGetUserError';
|
|
13
|
+
}
|
|
8
14
|
}
|
|
9
15
|
exports.AuthGetUserError = AuthGetUserError;
|
|
10
|
-
class AuthUserNotFoundError extends
|
|
16
|
+
class AuthUserNotFoundError extends Error {
|
|
17
|
+
identifier;
|
|
18
|
+
_tag = 'AuthUserNotFoundError';
|
|
19
|
+
constructor(identifier) {
|
|
20
|
+
super(`User not found: ${identifier}`);
|
|
21
|
+
this.identifier = identifier;
|
|
22
|
+
this.name = 'AuthUserNotFoundError';
|
|
23
|
+
}
|
|
11
24
|
}
|
|
12
25
|
exports.AuthUserNotFoundError = AuthUserNotFoundError;
|
|
13
26
|
exports.GET_USER = 'get_user';
|
|
@@ -25,20 +38,21 @@ exports.getUserDefinition = {
|
|
|
25
38
|
type: 'string',
|
|
26
39
|
description: 'The email address of the user.',
|
|
27
40
|
},
|
|
41
|
+
projectId: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'Project key as defined in firebase-mcp.json',
|
|
44
|
+
},
|
|
28
45
|
},
|
|
46
|
+
required: ['projectId'],
|
|
29
47
|
},
|
|
30
48
|
};
|
|
31
|
-
const getUser = (input) =>
|
|
49
|
+
const getUser = (ctx, input) => task_1.Task.gen(function* () {
|
|
32
50
|
if (!input.uid && !input.email) {
|
|
33
|
-
return yield*
|
|
34
|
-
message: 'Either uid or email must be provided',
|
|
35
|
-
}));
|
|
51
|
+
return yield* task_1.Task.fail(new AuthGetUserError('Either uid or email must be provided'));
|
|
36
52
|
}
|
|
37
|
-
const
|
|
38
|
-
const userRecord = yield*
|
|
39
|
-
try: () => input.uid
|
|
40
|
-
? auth().getUser(input.uid)
|
|
41
|
-
: auth().getUserByEmail(input.email),
|
|
53
|
+
const auth = ctx.auth();
|
|
54
|
+
const userRecord = yield* task_1.Task.attempt({
|
|
55
|
+
try: () => input.uid ? auth.getUser(input.uid) : auth.getUserByEmail(input.email),
|
|
42
56
|
catch: (cause) => {
|
|
43
57
|
const code = cause != null &&
|
|
44
58
|
typeof cause === 'object' &&
|
|
@@ -47,14 +61,9 @@ const getUser = (input) => effect_1.Effect.gen(function* () {
|
|
|
47
61
|
? cause.code
|
|
48
62
|
: '';
|
|
49
63
|
if (code === 'auth/user-not-found') {
|
|
50
|
-
return new AuthUserNotFoundError(
|
|
51
|
-
identifier: input.uid ?? input.email ?? '',
|
|
52
|
-
});
|
|
64
|
+
return new AuthUserNotFoundError(input.uid ?? input.email ?? '');
|
|
53
65
|
}
|
|
54
|
-
return new AuthGetUserError({
|
|
55
|
-
message: `Failed to fetch user: ${input.uid ?? input.email}`,
|
|
56
|
-
cause,
|
|
57
|
-
});
|
|
66
|
+
return new AuthGetUserError(`Failed to fetch user: ${input.uid ?? input.email}`, cause);
|
|
58
67
|
},
|
|
59
68
|
});
|
|
60
69
|
return (0, normalize_1.normalizeValue)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_user.js","sourceRoot":"","sources":["../../../src/tools/auth/get_user.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"get_user.js","sourceRoot":"","sources":["../../../src/tools/auth/get_user.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
|
package/dist/tools/auth/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./get_user"), exports);
|
|
18
18
|
__exportStar(require("./list_users"), exports);
|
|
19
|
+
__exportStar(require("./read"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,yCAAuB"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
declare
|
|
2
|
+
import type { ProjectContext } from '../../project';
|
|
3
|
+
import { Task } from '../../task';
|
|
4
|
+
export declare class AuthListUsersError extends Error {
|
|
5
|
+
readonly cause?: unknown | undefined;
|
|
5
6
|
readonly _tag: "AuthListUsersError";
|
|
6
|
-
|
|
7
|
-
export declare class AuthListUsersError extends AuthListUsersError_base<{
|
|
8
|
-
readonly message: string;
|
|
9
|
-
readonly cause?: unknown;
|
|
10
|
-
}> {
|
|
7
|
+
constructor(message: string, cause?: unknown | undefined);
|
|
11
8
|
}
|
|
12
9
|
export declare const LIST_USERS: "list_users";
|
|
13
10
|
export interface ListUsersArgs {
|
|
@@ -15,9 +12,8 @@ export interface ListUsersArgs {
|
|
|
15
12
|
pageToken?: string;
|
|
16
13
|
}
|
|
17
14
|
export declare const listUsersDefinition: Tool;
|
|
18
|
-
export declare const listUsers: (input: ListUsersArgs) =>
|
|
15
|
+
export declare const listUsers: (ctx: ProjectContext, input: ListUsersArgs) => Task<{
|
|
19
16
|
users: unknown[];
|
|
20
17
|
nextPageToken: string | null;
|
|
21
|
-
}, AuthListUsersError
|
|
22
|
-
export {};
|
|
18
|
+
}, AuthListUsersError>;
|
|
23
19
|
//# sourceMappingURL=list_users.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_users.d.ts","sourceRoot":"","sources":["../../../src/tools/auth/list_users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"list_users.d.ts","sourceRoot":"","sources":["../../../src/tools/auth/list_users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGlC,qBAAa,kBAAmB,SAAQ,KAAK;IAEd,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IADrD,QAAQ,CAAC,IAAI,EAAG,oBAAoB,CAAU;gBAClC,OAAO,EAAE,MAAM,EAAW,KAAK,CAAC,EAAE,OAAO,YAAA;CAItD;AAED,eAAO,MAAM,UAAU,EAAG,YAAqB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,IAwBjC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,cAAc,EAAE,OAAO,aAAa;;;sBAmB/D,CAAC"}
|