文件存储搜索服务器

一个基于Model Context Protocol (MCP)的全栈应用程序,提供文件存储和搜索功能。

  • by hrshtdotme
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 HarshitBreaksProd/mcp-server

使用说明

MCP服务器(模型上下文协议)

这是一个全栈monorepo应用程序,具有提供文件存储和搜索功能的模型上下文协议(MCP)服务器。该项目使用以下方式进行管理 涡轮仓库 它由Express后端、React/Vite前端和基于Prisma的数据库层组成。

🚀 特性

  • 文件搜索MCP服务器:公开MCP工具以存储、加载和搜索内存和磁盘上的文件。
    • store_file:将文件及其内容直接存储在内存中。
    • load_file:将文件从服务器的本地目录加载到内存中。
    • search_keyword:在存储的文件中搜索特定关键字。
    • list_directory_files:列出服务器目录中可用的所有文件。
    • list_loaded_files:列出当前加载到内存中的文件。
  • REST和MCP传输:服务器公开Express API并使用 StreamableHTTPServerTransport 通过HTTP处理MCP请求。
  • 现代前端:一个响应迅速的React应用程序,使用Vite、TailwindCSS v4、React Query和React Router构建。
  • 数据库集成:使用Prisma和PostgreSQL在monorepo中共享完全类型的数据库访问。
  • Turborepo Monorepo:具有共享配置和包的高效构建系统。

🏗️ 项目结构

此Turborepo包括以下软件包和应用程序:

应用

  • apps/server:承载MCP服务器的核心Node.js/Express应用程序。
  • apps/web:前端React应用程序。

包裹

  • packages/db:Prisma数据库模式和生成的客户端(@repo/db).
  • packages/ui:共享React组件。
  • packages/eslint-config:共享 eslint 配置。
  • packages/typescript-config:共享 tsconfig.json 整个monorepo中使用的映射。

💻 技术栈

  • 前端:React 19、Vite、TailwindCSS(v4)、React查询、React路由器、Lucide React。
  • 后端:Node.js、Express、, @modelcontextprotocol/sdk穆特。
  • 数据库:PostgreSQL、Prisma。
  • 工具:TypeScript、Turborepo、pnpm(v9+)、ESLint、Prettier。

🛠️ 入门指南

先决条件

  • Node.js(>=18)
  • pnpm (v9.0.0+)
  • PostgreSQL数据库

安装

  1. 克隆存储库并导航到项目目录:

    cd mcp-server
    
  2. 使用首选的包管理器安装依赖项(建议使用pnpm):

    pnpm install
    
  3. 设置环境变量:

    • 创建一个 .env 根目录或相应应用程序目录中的文件(apps/server, packages/db).
    • 添加您的 DATABASE_URL 对于Prisma和其他所需的环境变量(例如。, PORT, FRONTEND_URL).

运行应用程序

要同时开发所有应用程序和软件包,请从存储库的根运行以下命令:

pnpm run dev

这将使用Turborepo启动开发服务器:

  • Express MCP服务器将启动(默认端口:3000,通过映射 .env).
  • Vite前端将从其开发端口开始。

生产大楼

要构建所有应用程序和包,请执行以下操作:

pnpm run build

构建工件将在各自的环境中生成 dist 目录。

🤝 开发中

此项目使用 prettier 和 eslint 用于代码格式化和linting。在推送之前,一定要格式化你的代码!

pnpm run format
pnpm run lint