File size: 3,111 Bytes
eb846d0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
{
  "name": "@samanhappy/mcphub",
  "version": "dev",
  "description": "A hub server for mcp servers",
  "main": "dist/index.js",
  "type": "module",
  "bin": {
    "mcphub": "bin/cli.js"
  },
  "files": [
    "dist",
    "bin",
    "mcp_settings.json",
    "servers.json",
    "frontend/dist",
    "README.md",
    "LICENSE"
  ],
  "scripts": {
    "build": "pnpm backend:build && pnpm frontend:build",
    "backend:build": "tsc",
    "start": "node dist/index.js",
    "backend:dev": "tsx watch src/index.ts",
    "backend:debug": "tsx watch src/index.ts --inspect",
    "lint": "eslint . --ext .ts",
    "format": "prettier --write \"src/**/*.ts\"",
    "test": "jest",
    "frontend:dev": "cd frontend && vite",
    "frontend:build": "cd frontend && vite build",
    "frontend:preview": "cd frontend && vite preview",
    "dev": "concurrently \"pnpm backend:dev\" \"pnpm frontend:dev\"",
    "debug": "concurrently \"pnpm backend:debug\" \"pnpm frontend:dev\"",
    "prepublishOnly": "npm run build && node scripts/verify-dist.js"
  },
  "keywords": [
    "typescript",
    "server",
    "mcp",
    "model context protocol"
  ],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.11.1",
    "@types/pg": "^8.15.2",
    "bcryptjs": "^3.0.2",
    "dotenv": "^16.3.1",
    "dotenv-expand": "^12.0.2",
    "express": "^4.21.2",
    "express-validator": "^7.2.1",
    "jsonwebtoken": "^9.0.2",
    "openai": "^4.103.0",
    "pg": "^8.16.0",
    "pgvector": "^0.2.1",
    "postgres": "^3.4.7",
    "reflect-metadata": "^0.2.2",
    "typeorm": "^0.3.24",
    "uuid": "^11.1.0"
  },
  "devDependencies": {
    "@radix-ui/react-accordion": "^1.2.3",
    "@radix-ui/react-slot": "^1.1.2",
    "@shadcn/ui": "^0.0.4",
    "@tailwindcss/postcss": "^4.1.3",
    "@tailwindcss/vite": "^4.1.7",
    "@types/bcryptjs": "^3.0.0",
    "@types/express": "^4.17.21",
    "@types/jest": "^29.5.5",
    "@types/jsonwebtoken": "^9.0.9",
    "@types/node": "^22.15.21",
    "@types/react": "^19.0.12",
    "@types/react-dom": "^19.0.4",
    "@types/uuid": "^10.0.0",
    "@typescript-eslint/eslint-plugin": "^6.7.4",
    "@typescript-eslint/parser": "^6.7.4",
    "@vitejs/plugin-react": "^4.4.1",
    "autoprefixer": "^10.4.21",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "concurrently": "^9.1.2",
    "eslint": "^8.50.0",
    "i18next": "^24.2.3",
    "i18next-browser-languagedetector": "^8.0.4",
    "jest": "^29.7.0",
    "lucide-react": "^0.486.0",
    "next": "^15.2.4",
    "postcss": "^8.5.3",
    "prettier": "^3.0.3",
    "react": "^19.1.0",
    "react-dom": "^19.1.0",
    "react-i18next": "^15.4.1",
    "react-router-dom": "^7.6.0",
    "tailwind-merge": "^3.1.0",
    "tailwind-scrollbar-hide": "^2.0.0",
    "tailwindcss": "^4.0.17",
    "ts-jest": "^29.1.1",
    "ts-node-dev": "^2.0.0",
    "tsx": "^4.7.0",
    "typescript": "^5.2.2",
    "vite": "^6.3.5",
    "zod": "^3.24.2"
  },
  "engines": {
    "node": "^18.0.0 || >=20.0.0"
  },
  "packageManager": "pnpm@10.11.0+sha256.a69e9cb077da419d47d18f1dd52e207245b29cac6e076acedbeb8be3b1a67bd7"
}