CramKit
本地首个学习工具,让Claude(通过MCP)结构化、索引化地访问您的考试材料。
堆栈
- 单体仓库:pnpm工作区+Turborepo
- 前端:React 19+Vite+顺风v4+shadcn/ui
- API:Hono(途经Bun)
- 数据库:通过Prisma实现SQLite
- 主控程序:
@modelcontextprotocol/sdk(HTTP+stdio传输) - PDF转换:
markitdown-ts
结构
packages/
web/ — React frontend (port 5173)
api/ — Hono API server (port 8787)
mcp/ — MCP server, HTTP (port 3001) + stdio
shared/ — Prisma client, Zod schemas, types, utils设置
pnpm install
cp .env.example .env # Configure environment
pnpm db:generate # Generate Prisma client
pnpm db:push # Create/push SQLite schema
pnpm dev # Start all services (web + api + mcp)环境
复制 .env.example 到 .env.变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
DATABASE_URL | file:./data/cramkit.db | SQLite文件路径 |
LLM_MODEL | claude-opus-4-6 | LLM型号ID |
CRAMKIT_API_URL | http://localhost:8787 | API基本URL(MCP服务器和web使用) |
脚本
pnpm dev # Start all services
pnpm build # Build all packages
pnpm test # Run all tests
pnpm test:watch # Tests in watch mode
pnpm lint # Check with Biome
pnpm lint:fix # Auto-fix with Biome
pnpm typecheck # TypeScript type checking
pnpm check # Run lint + typecheck + quality + tests
pnpm kill # Kill ports 8787, 5173, 3001
pnpm db:generate # Regenerate Prisma client
pnpm db:push # Push schema changes to SQLiteMCP配置
MCP服务器支持两种传输方式:
- 超文本传输协议 (默认)--运行
http://127.0.0.1:3001/mcp,在开发期间和前端聊天机器人中使用 - 标准 --用于管理流程本身的Claude Desktop
克劳德桌面
首先构建MCP服务器,然后添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"cramkit": {
"command": "node",
"args": ["path/to/cramkit/packages/mcp/dist/index.js", "--stdio"],
"env": {
"CRAMKIT_API_URL": "http://localhost:8787"
}
}
}
}确保API服务器正在运行(pnpm dev)在使用Claude Desktop和CramKit之前。
发展
HTTP MCP服务器自动启动 pnpm dev 在端口3001上(用覆盖 CRAMKIT_MCP_PORT).
