结构化学习工具

CramKit是一款本地优先的学习工具,通过MCP为Claude提供结构化、索引化的考试材料访问。

  • by gong8
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 gong8/cramkit

使用说明

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 SQLite

MCP配置

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).