这是一个安全、高性能的模型上下文协议(MCP)服务器,提供 完整的 SvelteKit 和 Tailwind CSS 文档(100% 覆盖)及代码片段,具有增强的安全性、正确的 TypeScript 实现和全面的错误处理。
any 类型src/
├── index.ts # 带有安全加固的主服务器
├── types.ts # TypeScript 类型定义
├── services/
│ └── fileService.ts # 带缓存的安全文件操作
└── utils/
├── security.ts # 输入验证和路径清理
└── errorHandler.ts # 全面的错误处理
安装此 MCP 服务器最简单的方法是通过 Smithery:
npx -y @smithery/cli install @CaullenOmdahl/tailwind-svelte-assistant --client claude
这将自动:
对于其他 MCP 客户端,使用直接服务器 URL:
https://server.smithery.ai/@CaullenOmdahl/tailwind-svelte-assistant/mcp
将其添加到您的 MCP 客户端配置中:
{
"mcpServers": {
"tailwind-svelte-assistant": {
"url": "https://server.smithery.ai/@CaullenOmdahl/tailwind-svelte-assistant/mcp",
"transport": "http"
}
}
}
npm install
npm run build
npm run watch
服务器使用安全默认值,但可以通过 ServerConfig 接口进行配置:
const CONFIG: ServerConfig = {
maxFileSize: 3 * 1024 * 1024, // 3MB 最大文件大小(用于完整文档)
cacheTimeout: 5 * 60 * 1000, // 5 分钟缓存超时
contentBasePath: './content',
svelteFullDocsPath: './content/docs/svelte-sveltekit-full.txt',
tailwindFullDocsPath: './content/docs/tailwind-docs-full.txt',
// ... 其他路径
};
文档会自动下载并更新:
# 更新所有文档(Svelte + Tailwind)
npm run update-content
此脚本:
来源:
// 自动内容缓存,带有可配置超时
const fileService = new SecureFileService(
1024 * 1024, // 最大文件大小
5 * 60 * 1000 // 缓存超时(5 分钟)
);
get_svelte_full_docs - 获取完整的 Svelte & SvelteKit 文档(1MB,100% 覆盖)
get_tailwind_full_docs - 获取完整的 Tailwind CSS 文档(2.1MB,100% 覆盖)
search_svelte_docs - 在 Svelte/SvelteKit 文档中搜索
query(字符串),limit(可选,默认:5)search_tailwind_docs - 在 Tailwind CSS 文档中搜索
query(字符串),limit(可选,默认:5)注意:这些工具仅覆盖约 4-8% 的可用文档。使用上面的完整文档工具以获得完整覆盖。
get_sveltekit_doc - 获取特定的 SvelteKit 文档主题get_tailwind_info - 获取特定的 Tailwind CSS 信息list_sveltekit_topics - 列出可用的 SvelteKit 文档(有限)list_tailwind_info_topics - 列出 Tailwind 文档(有限)get_component_snippet - 获取 Svelte 组件代码list_snippet_categories - 列出组件类别list_snippets_in_category - 列出类别中的片段所有工具包括:
选项 1:Smithery 托管(推荐)
{
"mcpServers": {
"tailwind-svelte-assistant": {
"url": "https://server.smithery.ai/@CaullenOmdahl/tailwind-svelte-assistant/mcp",
"transport": "http"
}
}
}
选项 2:本地安装
{
"mcpServers": {
"tailwind-svelte-assistant": {
"command": "node",
"args": ["./dist/index.js"],
"env": {}
}
}
}
// 获取完整的 Svelte/SvelteKit 文档(1MB,100% 覆盖)
await client.callTool("get_svelte_full_docs", {});
// 获取完整的 Tailwind CSS 文档(2.1MB,100% 覆盖)
await client.callTool("get_tailwind_full_docs", {});
// 在 Svelte 文档中搜索
await client.callTool("search_svelte_docs", {
query: "load 函数",
limit: 5 // 可选
});
// 在 Tailwind 文档中搜索
await client.callTool("search_tailwind_docs", {
query: "内边距实用类",
limit: 3 // 可选
});
// 获取特定的 SvelteKit 主题(仅覆盖约 8% 的文档)
await client.callTool("get_sveltekit_doc", { topic: "路由" });
// 获取特定的 Tailwind 信息(仅覆盖约 4% 的文档)
await client.callTool("get_tailwind_info", { query: "内边距" });
// 列出可用的主题(有限)
await client.callTool("list_tailwind_info_topics", {});
// 获取一个组件片段
await client.callTool("get_component_snippet", {
component_category: "页眉",
snippet_name: "默认导航栏"
});
// 列出片段类别
await client.callTool("list_snippet_categories", {});
npm run security-audit
npm run outdated-check
npm run inspector
包含的 Dockerfile 提供了一个安全的多阶段构建:
# 多阶段构建,带有安全加固
FROM node:18-alpine AS builder
# ... 构建过程
FROM node:18-alpine AS release
# ... 生产环境设置,使用非 root 用户
所有操作都以结构化的 JSON 格式记录,便于解析:
{
"timestamp": "2024-01-15T10:30:00.000Z",
"level": "info",
"operation": "tool_request",
"tool": "get_sveltekit_doc",
"topic": "路由"
}
import/export 而不是 requireany构建错误
# 清除 dist 并重新构建
rm -rf dist && npm run build
权限错误
# 确保可执行权限
chmod +x dist/index.js
导入错误
"type": "module"如果您发现安全漏洞,请通过带有 security 标签的 GitHub 问题报告。
本项目遵循与原始 Tailwind-Svelte-Assistant 项目相同的许可证。
此升级的 MCP 服务器将原始原型转变为具有 完整文档覆盖、企业级安全、性能和可维护性的生产就绪服务。