Token导航 LogoToken导航TokenDH.com
LLM Integrated Movie Recommendation And Analysis System logo
数据服务stdio官方级别未说明来源级核验

LLM Integrated Movie Recommendation And Analysis System

MCP Server

@modelcontextprotocol/inspector

一个基于TypeScript、AWS Bedrock、MCP和SQLite构建的LLM集成电影推荐与分析系统,采用RAG架构回答自然语言电影问题、生成个性化推荐并提供比较分析。

工具数

5

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaude数据分析Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

StephanieSpanjian

提供方

StephanieSpanjian

最后核验

2026/5/17 20:23

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector node_modules/.bin/tsx src/index.ts mcp

详细介绍

电影RAG系统

一个LLM集成电影推荐和分析系统 TypeScript, AWS基岩, 主控程序 (模型上下文协议),以及 SQLite使用RAG(检索增强生成)架构来回答自然语言电影问题,生成个性化推荐,并提供比较分析。

建筑

┌─────────────────────────────────────────────────────────────┐
│                     MCP Client (Claude Desktop, etc.)       │
│                              │                              │
│                        stdio transport                      │
└──────────────────────────────┬──────────────────────────────┘
                               │
┌──────────────────────────────▼──────────────────────────────┐
│                        MCP Server                           │
│              (5 tools registered via zod schemas)            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────┐   ┌──────────────┐   ┌─────────────────┐  │
│  │  Retriever   │──▶│   Context     │──▶│   Generator     │  │
│  │  (SQL-based) │   │  (formatter)  │   │  (Bedrock LLM)  │  │
│  └──────┬──────┘   └──────────────┘   └─────────────────┘  │
│         │                                                   │
│  ┌──────▼──────────────────────────────────────────────┐    │
│  │              SQLite (better-sqlite3)                 │    │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────────────┐   │    │
│  │  │ movies   │  │ ratings  │  │ enriched_movies  │   │    │
│  │  │ (45k)    │  │ (100k)   │  │ (75, LLM-gen)   │   │    │
│  │  └──────────┘  └──────────┘  └──────────────────┘   │    │
│  │       movies.db      ratings.db (ATTACH DATABASE)    │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

技术栈

  • TypeScript (ES2022,NodeNext模块)
  • AWS基岩 --LLM推理 ConverseCommand (亚马逊Nova Pro)
  • 模型上下文协议(MCP) --通过stdio传输的工具服务器
  • SQLitebetter-sqlite3 跨数据库 ATTACH for joins
  • 萨德 --MCP工具输入的运行时模式验证

设置

先决条件

  • Node.js 24+(通过 非易失性存储器)
  • AWS CLI配置了 dev-bedrock 具有基岩通道的剖面图
  • 访问亚马逊Nova Pro(或其他基岩型号)

安装

nvm install 24
nvm use 24
npm install

cp .env.example .env
# Edit .env if needed (defaults to Nova Pro in us-east-1)

# Copy source databases into working directory
cp -r db_original db

AWS简介

该系统使用 dev-bedrock AWS CLI配置文件。确保它存在于 ~/.aws/credentials:

[dev-bedrock]
aws_access_key_id = YOUR_KEY
aws_secret_access_key = YOUR_SECRET

NPM脚本

脚本描述
npm run dev打印CLI使用情况
npm run enrich运行富集管道(75部电影)
npm run reset-enrichment清除富集数据以重新运行
npm run mcp启动MCP工具服务器(stdio)
npm run build将TypeScript编译为 dist/
npm start运行编译的JavaScript
npm run lint在上运行ESLint src/
npm run format运行Prettier src/

用法

数据丰富

使用LLM生成的属性丰富75部顶级电影:

npm run enrich

这创建了一个 enriched_movies 桌上 movies.db 每部电影有5个AI生成的属性(参见 丰富属性 在......下面

要重新运行富集(例如,使用不同的模型):

npm run reset-enrichment   # Clears existing enrichment data
npm run enrich             # Re-generates with current model

MCP服务器

启动MCP工具服务器:

npm run mcp

使用任何MCP客户端进行连接。用于测试 MCP检查员:

npx @modelcontextprotocol/inspector node_modules/.bin/tsx src/index.ts mcp

验证脚本

富集后,验证数据:

./scripts/test-enrichment.sh

数据库模式

movies 表(movies.db)--约45000部电影

类型注释
movieIdINTEGER主键
imdbId文本
title文本
概述文本绘图摘要
生产公司TEXTJSON数组 {id, name} 物体
发布日期文本
预算整数美元(未知时为0)
收入整数美元(如果未知,则为0)
运行时间整数分钟
语言文本
流派TEXTJSON数组 {id, name} 物体
状态文本

ratings 表(ratings.db)--约100000个评级

类型注释
ratingId整数主键
用户ID整数
movieIdINTEGERFK到电影
评级真实0.5-5.0分
时间戳整数Unix时间戳

enriched_movies 表(movies.db)--由创建 npm run enrich

类型约束
movieIdINT主键
情绪文本签到(积极、消极、中立)
感伤推理文本
budget层文本签入(低、中、高)
预算层次推理文本
revenueTier文本签入(低、中、高)
收入层次推理文本
生产效率评分真实值检查在1到10之间
有效性调整文本
受众吸引力文本签到(广泛、小众、邪教)
受众感知推理文本
rawLlmResponseTEXT用于可审计性的完整LLM输出
enrichedAtTEXT时间戳

丰富属性

富集管道将每部电影的数据发送到AWS Bedrock并使用 tool_use (强制工具调用)以提取结构化属性:

属性描述
情绪正面/负面/中性电影概述文本的基调
预算级别低/中/高基于生产预算的分类(\7500万美元)
收入等级低/中/高基于票房收入的分类(\3亿美元)
生产效率1-10分用户评分、预算效率(ROI)和质量的综合
受众吸引力广泛/小众/邪教目标受众类型(主流vs专业vs热情的少数群体)

每个属性都包括LLM生成的解释分类的推理。

MCP工具

MCP服务器公开了5个工具,每个工具都遵循RAG模式(检索→ 增强→ 生成):

工具说明
search_movies按类型、年份、预算/收入级别、情绪、观众吸引力或关键字过滤电影
recommend_movies基于用户评分历史的个性化推荐
summarize_user_preferences根据用户的评分生成口味档案
compare_movies2-5部电影在多个维度上的并排比较
query_movies自然语言问题——LLM提取过滤器、检索数据、生成答案

查询示例

"Recommend action movies with high revenue and positive sentiment"
"Summarize preferences for user 1"
"Compare Star Wars and Jurassic Park"
"What are the most profitable low-budget movies?"

RAG架构

每个MCP工具都遵循 检索增强生成 图案:

  1. 检索 --SQL查询 movies.dbratings.db (通过以下方式加入 ATTACH DATABASE).对于 query_movies,LLM首先使用以下公式从自然语言问题中提取结构化过滤器 tool_use.
  1. 增强 --检索到的数据被格式化为结构化文本上下文,其中包含电影详细信息、评级、丰富属性和用户历史记录(视情况而定)。
  1. 生成 --增强的上下文将通过特定于任务的系统提示发送到AWS Bedrock。LLM生成基于数据的对话式响应。

项目结构

src/
├── index.ts              # CLI entry point (enrich | reset-enrichment | mcp)
├── config.ts             # Bedrock client, env vars, DB paths
├── types.ts              # TypeScript interfaces
├── db/
│   ├── connection.ts     # SQLite singleton + ATTACH DATABASE
│   ├── movies.ts         # Movie queries with JSON parsing
│   ├── ratings.ts        # Rating queries + user preference stats
│   └── enriched.ts       # Enriched movies table CRUD + stats
├── enrichment/
│   ├── prompts.ts        # System prompt + Bedrock tool_use schema
│   └── pipeline.ts       # Batch enrichment pipeline with retry
├── rag/
│   ├── retriever.ts      # SQL-based retrieval for each tool
│   ├── context.ts        # Format data as LLM context strings
│   └── generator.ts      # Bedrock Converse calls for responses
└── mcp/
    ├── server.ts         # MCP server setup (stdio transport)
    └── tools.ts          # 5 tool definitions + handlers

设计决策

JOURNEY.md 了解架构选择、模型选择和经验教训的详细原理。

目录标签

目录标签

TypeScriptClaude数据分析电影推荐本地部署自然语言处理个性化推荐RAG架构

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP