博物馆藏品聊天探索工具

基于Web的聊天界面,通过Rijksmuseum MCP+服务器探索Rijksmuseum藏品,提供分屏布局的OpenSeadragon深度缩放查看器和聊天界面。

  • by kintopp
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kintopp/rijksmuseum-mcp-client

使用说明

国家博物馆MCP客户端

基于网络的聊天界面,用于探索 国立博物馆藏品 通过 国立博物馆MCP+服务器。带有OpenSeadragon深度缩放查看器和聊天界面的拆分窗格布局。

运作原理

LLM(Mistral Large 3)使用13个MCP工具从国家博物馆约83万件藏品中搜索、过滤和检索艺术品。当打开艺术品时,IIIF图像直接加载到查看器中。用户可以缩放、平移、旋转、选择区域,并向LLM询问他们看到了什么。

Browser ──→ POST /api/chat ──→ OpenRouter (LLM streaming)
Browser ──→ POST /api/mcp  ──→ Rijksmuseum MCP+ server (tool execution)

后端代理LLM请求(API密钥位于服务器端),并充当Rijksmuseum服务器的MCP客户端。

特性

  • 带有导航控制、旋转、全屏的深度缩放IIIF查看器(OpenSeadragon)
  • 区域选择--拖动以选择一个区域,坐标将添加到聊天提示中
  • LLM工具调用驱动的查看器导航和覆盖
  • 聊天中的Markdown渲染(表格、代码块、列表、链接)
  • 可选技能文件,为LLM提供详细的研究工作流程
  • 停止按钮取消正在进行的查询

设置

npm install

创建一个 .env 文件:

OPENROUTER_API_KEY=your-openrouter-api-key

发展

npm run dev

同时启动Vite-dev服务器(前端)和Express后端。

生产

npm run build
npm start

部署

已配置为 铁路.Set OPENROUTER_API_KEY 作为服务上的环境变量。铁路提供 PORT 自动。

技术栈

包 角色
ai streamText() 具有工具执行和多步循环
@ai-sdk/openai-compatible OpenRouter适配器
@ai-sdk/react useChat() 消息历史和流式传输挂钩
express 后端服务器和MCP客户端代理
openseadragon IIIF深度变焦查看器
react UI框架
react-markdown 聊天中的Markdown渲染
vite 前端构建

访问

密码保护。

许可证

麻省理工学院