No description
This MCP server provides personalized question answering by storing and retrieving user context and conversation history in DynamoDB. It supports user...
111 redis: {
112 url: process.env.REDIS_URL,
113 password: process.env.REDIS_PASSWORD,
114 },// Exploitable if MCP server is compromised or environment variables are leaked.
82 aws: {
83 region: process.env.AWS_REGION!,
84 accessKeyId: process.env.AWS_ACCESS_KEY_ID!,
85 secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!,
86 },// Exploitable if MCP server is compromised or environment variables are leaked.
77 jwt: {
78 secret: process.env.JWT_SECRET!,
79 expiresIn: process.env.JWT_EXPIRES_IN || '24h',
80 refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '7d',
81 },// Exploitable if MCP server is compromised or environment variables are leaked.
107 ai: {
108 openaiApiKey: process.env.OPENAI_API_KEY,
109 anthropicApiKey: process.env.ANTHROPIC_API_KEY,
110 },// Exploitable if MCP server is compromised or environment variables are leaked.
115 monitoring: {
116 sentryDsn: process.env.SENTRY_DSN,
117 },// Exploitable if MCP server is compromised or environment variables are leaked.
224 private async getUserContext(args: any): Promise<any> {
225 try {
226 const { userId, limit = 10 } = args;
227
228 // This would call the context service
229 // For now, return a placeholder
230 return {
231 contexts: [],
232 total: 0,
233 userId,
234 };
235 } catch (error) {
236 logger.error('Error getting user context', error);
237 throw error;
238 }
239 }// Network-exposed MCP server allows unauthenticated access to all user data.
224 private async getUserContext(args: any): Promise<any> {
225 try {
226 const { userId, limit = 10 } = args;
227 // ...
228 } catch (error) {
229 logger.error('Error getting user context', error);
230 throw error;
231 }
232 }
233
234 private async storeUserContext(args: any): Promise<any> {
235 try {
236 const { userId, content, source, tags = [] } = args;
237 // ...
238 } catch (error) {
239 logger.error('Error storing user context', error);
240 throw error;
241 }
242 }// Network-exposed MCP server accepts arbitrary input without validation.
237 async createTable(params: AWS.DynamoDB.CreateTableInput): Promise<void> {
238 try {
239 await this.service.createTable(params).promise();
240 logger.info(`Table ${params.TableName} created successfully`);
241 } catch (error) {
242 logger.error('DynamoDB createTable error', error);
243 throw error;
244 }
245 }
246
247 async deleteTable(tableName: string): Promise<void> {
248 try {
249 await this.service.deleteTable({ TableName: tableName }).promise();
250 logger.info(`Table ${tableName} deleted successfully`);
251 } catch (error) {
252 logger.error('DynamoDB deleteTable error', error);
253 throw error;
254 }
255 }// Local-only MCP, requires compromised LLM to exploit.