Drizzle Docs MCP服务器
MCP(模型上下文协议)服务器,为AI模型提供可搜索的访问 淋ORM 文档。首次运行时,它会抓取官方文档网站,并在本地缓存结果,以便快速启动后续项目。
工具
文档
| 工具 | 说明 |
|---|---|
drizzle_search_docs | 在所有文档页面中搜索关键字 |
drizzle_get_page | 检索特定文档页面的完整内容 |
drizzle_list_topics | 按类别列出所有可用的文档主题 |
代码生成
| 工具 | 说明 |
|---|---|
drizzle_generate_schema | 转换SQL CREATE TABLE 将语句转换为Drizzle ORM TypeScript模式代码 |
drizzle_sql_to_drizzle | 将SQL查询(SELECT、INSERT、UPDATE、DELETE)转换为Drizzle查询构建器代码 |
两种代码生成工具都接受 dialect 参数("postgresql", "mysql",或 "sqlite")并通过正确的进口产生产出。
drizzle_generate_schema
解析一个或多个 CREATE TABLE 陈述并产生等价物 pgTable / mysqlTable / sqliteTable 具有列类型、约束和导入的定义。
参数:
sql(字符串)--SQLCREATE TABLE声明dialect(枚举,默认值"postgresql")--目标数据库方言
示例输入:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);示例输出(postgresql):
import { pgTable, serial, timestamp, varchar } from "drizzle-orm/pg-core";
export const users = pgTable("users", {
id: serial("id").primaryKey(),
email: varchar("email", { length: 255 }).notNull().unique(),
createdAt: timestamp("created_at", { withTimezone: true }).notNull().default(now()),
});drizzle_sql_to_drizzle
将SQL查询转换为Drizzle ORM查询构建器调用,将运算符映射到过滤器函数(eq, gt, like, and, or等等)。
参数:
sql(string)--要转换的SQL查询dialect(枚举,默认值"postgresql")--目标数据库方言schema_hint(字符串,可选)--表/列上下文,以获得更准确的输出
示例输入:
SELECT u.id, u.name, p.title
FROM users u
INNER JOIN posts p ON p.author_id = u.id
WHERE u.is_active = true
ORDER BY p.created_at DESC
LIMIT 10输出示例:
import { desc, eq } from "drizzle-orm";
db.select({ id: u.id, name: u.name, title: p.title })
.from(users)
.innerJoin(posts, eq(p.authorId, u.id))
.where(eq(u.isActive, true))
.orderBy(desc(p.createdAt))
.limit(10);先决条件
- Node.js>=18
设置
npm install构建
npm run build这将从以下位置编译TypeScript src/ 进入 dist/.
跑
生产 (需要先构建):
npm start发展 (通过热重新加载 tsx):
npm run dev服务器使用MCP协议通过stdio进行通信。首次启动时,它将抓取Drizzle文档网站并将页面缓存到 crawled_docs.json 以便后续启动更快。
使用Claude代码
将服务器添加到MCP配置中:
{
"mcpServers": {
"drizzle-docs": {
"command": "node",
"args": ["/absolute/path/to/drizzle-docs-mcp/dist/index.js"]
}
}
}HTTP传输模式
服务器还可以在HTTP模式下运行,这对于Docker部署或您想通过网络连接时非常有用。
# Start in HTTP mode on port 3000
node dist/index.js --http
# Use a custom port
PORT=8080 node dist/index.js --httpMCP端点将在 http://localhost:3000/mcp.
码头工人
构建并运行:
docker build -t drizzle-docs-mcp .
docker run -p 3000:3000 drizzle-docs-mcp使用Docker Compose:
docker compose upMCP服务器将在 http://localhost:3000/mcp.同一Docker网络上的其他容器可以通过以下方式连接 http://drizzle-docs-mcp:3000/mcp.
脚本
| 脚本 | 命令 | 描述 |
|---|---|---|
build | tsc | 编译TypeScript |
start | node dist/index.js | 运行已编译的服务器 |
dev | tsx watch src/index.ts | 以热重载的开发模式运行 |
clean | rm -rf dist | 删除构建工件 |
