@ankimcp/anki-mcp-server
Version:
Model Context Protocol server for Anki - enables AI assistants to interact with your Anki flashcards
171 lines • 7.17 kB
JavaScript
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var AppModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppModule = void 0;
const common_1 = require("@nestjs/common");
const core_1 = require("@nestjs/core");
const config_1 = require("@nestjs/config");
const mcp_nest_1 = require("@rekog/mcp-nest");
const origin_validation_guard_1 = require("./http/guards/origin-validation.guard");
const host_validation_guard_1 = require("./http/guards/host-validation.guard");
const essential_1 = require("./mcp/primitives/essential");
const gui_1 = require("./mcp/primitives/gui");
const app_config_service_1 = require("./app-config.service");
const config_2 = require("./config/index.js");
let AppModule = AppModule_1 = class AppModule {
static forStdio(mcp, configInput) {
const validatedConfig = config_2.configSchema.parse((0, config_2.transformEnvToConfig)(configInput));
return {
module: AppModule_1,
imports: [
config_1.ConfigModule.forRoot({
isGlobal: true,
cache: true,
load: [() => validatedConfig],
}),
essential_1.McpPrimitivesAnkiEssentialModule.forRoot({
ankiConfigProvider: {
provide: essential_1.ANKI_CONFIG,
useClass: app_config_service_1.AppConfigService,
},
appConfigProvider: {
provide: config_2.APP_CONFIG,
useValue: validatedConfig,
},
}),
gui_1.McpPrimitivesAnkiGuiModule.forRoot({
ankiConfigProvider: {
provide: essential_1.ANKI_CONFIG,
useClass: app_config_service_1.AppConfigService,
},
appConfigProvider: {
provide: config_2.APP_CONFIG,
useValue: validatedConfig,
},
}),
],
providers: [
{
provide: config_2.APP_CONFIG,
useValue: validatedConfig,
},
{
provide: mcp_nest_1.MCP_STRATEGY,
useValue: mcp,
},
app_config_service_1.AppConfigService,
],
exports: [config_2.APP_CONFIG, app_config_service_1.AppConfigService],
};
}
static forHttp(mcpHttp, configInput) {
const validatedConfig = config_2.configSchema.parse((0, config_2.transformEnvToConfig)(configInput));
return {
module: AppModule_1,
imports: [
config_1.ConfigModule.forRoot({
isGlobal: true,
cache: true,
load: [() => validatedConfig],
}),
essential_1.McpPrimitivesAnkiEssentialModule.forRoot({
ankiConfigProvider: {
provide: essential_1.ANKI_CONFIG,
useClass: app_config_service_1.AppConfigService,
},
appConfigProvider: {
provide: config_2.APP_CONFIG,
useValue: validatedConfig,
},
}),
gui_1.McpPrimitivesAnkiGuiModule.forRoot({
ankiConfigProvider: {
provide: essential_1.ANKI_CONFIG,
useClass: app_config_service_1.AppConfigService,
},
appConfigProvider: {
provide: config_2.APP_CONFIG,
useValue: validatedConfig,
},
}),
],
controllers: [mcpHttp.controller],
providers: [
{
provide: config_2.APP_CONFIG,
useValue: validatedConfig,
},
{
provide: mcp_nest_1.MCP_STRATEGY,
useValue: mcpHttp.strategy,
},
app_config_service_1.AppConfigService,
{
provide: core_1.APP_GUARD,
useClass: origin_validation_guard_1.OriginValidationGuard,
},
{
provide: core_1.APP_GUARD,
useClass: host_validation_guard_1.HostValidationGuard,
},
],
exports: [config_2.APP_CONFIG, app_config_service_1.AppConfigService],
};
}
static forTunnel(mcp, cliOverrides) {
const validatedConfig = (0, config_2.loadValidatedConfig)(cliOverrides);
return {
module: AppModule_1,
imports: [
config_1.ConfigModule.forRoot({
isGlobal: true,
cache: true,
load: [() => validatedConfig],
}),
essential_1.McpPrimitivesAnkiEssentialModule.forRoot({
ankiConfigProvider: {
provide: essential_1.ANKI_CONFIG,
useClass: app_config_service_1.AppConfigService,
},
appConfigProvider: {
provide: config_2.APP_CONFIG,
useValue: validatedConfig,
},
}),
gui_1.McpPrimitivesAnkiGuiModule.forRoot({
ankiConfigProvider: {
provide: essential_1.ANKI_CONFIG,
useClass: app_config_service_1.AppConfigService,
},
appConfigProvider: {
provide: config_2.APP_CONFIG,
useValue: validatedConfig,
},
}),
],
providers: [
{
provide: config_2.APP_CONFIG,
useValue: validatedConfig,
},
{
provide: mcp_nest_1.MCP_STRATEGY,
useValue: mcp,
},
app_config_service_1.AppConfigService,
],
exports: [config_2.APP_CONFIG, app_config_service_1.AppConfigService],
};
}
};
exports.AppModule = AppModule;
exports.AppModule = AppModule = AppModule_1 = __decorate([
(0, common_1.Module)({})
], AppModule);
//# sourceMappingURL=app.module.js.map