@ frontmcp/ 使用
FrontMCP包的共享助手:名称和URI模板,跨平台加密,密钥值存储,文件系统访问,环境检测等. 这是一个内部包: @frontmcp/sdk 以及其它问题 @frontmcp/* 软件包依赖它并安装它。 只当您自己的代码像插件一样需要这些帮助时直接导入它.
安装
npm install @frontmcp/utils
它需要节点.js 24或后. 密码、 async 上下文、 事件发送器、 环境和路径帮助器也建有浏览器, 通过软件包选择 imports 地图. @frontmcp/lazy-zod 是需要的同伴依赖(它需要) zod 4. 其他可选,每个存储后端一个:
| 可选对等点 | 启用 |
|---|---|
ioredis | createStorage({ type: 'redis' }) 财务报告和审定财务报表 RedisStorageAdapter |
@vercel/kv | createStorage({ type: 'vercel-kv' }) |
@upstash/redis | createStorage({ type: 'upstash' }) |
使用量
import { createStorage, expandUriTemplate, matchUriTemplate, sha256Hex, toCase } from '@frontmcp/utils';
matchUriTemplate('tickets://{id}/comments/{commentId}', 'tickets://T-1/comments/42');
// { id: 'T-1', commentId: '42' }
expandUriTemplate('tickets://{id}', { id: 'T-2' }); // 'tickets://T-2'
toCase(['create', 'ticket'], 'snake'); // 'create_ticket'
sha256Hex('hello world'); // 'b94d27b9...'
const storage = await createStorage({ type: 'memory' });
await storage.set('ticket:T-1', 'open', { ttlSeconds: 60 });
await storage.get('ticket:T-1'); // 'open'
里面有什么东西
| 区域 | 出口 |
|---|---|
| 命名 | splitWords, (中文(简体) ), toCase, (中文(简体) ), shortHash, (中文(简体) ), ensureMaxLen, (中文(简体) ), idFromString |
| URIs 参考文献 | isValidMcpUri, (中文(简体) ), extractUriScheme, (中文(简体) ), parseUriTemplate, (中文(简体) ), matchUriTemplate, (中文(简体) ), expandUriTemplate, (中文(简体) ), extractTemplateParams (RFC 3986 URIs,RFC 6570模板) |
| 路径 | trimSlashes, (中文(简体) ), joinPath,和跨平台 pathJoin, (中文(简体) ), pathResolve, (中文(简体) ), basename, (中文(简体) ), dirname, (中文(简体) ), extname |
| 内容 | sanitizeToJson, (中文(简体) ), inferMimeType, (中文(简体) ), safeStringify, (中文(简体) ), canonicalJson |
| HTTP 密码 | validateBaseUrl, (中文(简体) ), buildSetCookie, (中文(简体) ), parseCookies, (中文(简体) ), getCookie, (中文(简体) ), isLocalhost, (中文(简体) ), isSecureRequest |
| 网络 | classifyIpAddress, (中文(简体) ), isGloballyRoutableIp, (中文(简体) ), parseIpv4, (中文(简体) ), expandIpv6, (中文(简体) ), isRedirectResponse,用于SSRF(服务器侧请求伪造)检查 |
| 输出的 HTTP | validateOutboundUrl, (中文(简体) ), sendOutboundRequest, (中文(简体) ), outboundFailureCategory,用于请求客户端选择的 URL |
| 逃跑 | escapeHtml, (中文(简体) ), escapeHtmlAttr, (中文(简体) ), escapeJsString, (中文(简体) ), safeJsonForScript |
| 密码 | sha256, (中文(简体) ), sha256Hex, (中文(简体) ), hmacSha256, (中文(简体) ), hkdfSha256, (中文(简体) ), encryptAesGcm, (中文(简体) ), decryptAesGcm, (中文(简体) ), randomBytes, (中文(简体) ), randomUUID, (中文(简体) ), timingSafeEqual, (中文(简体) ), base64urlEncode, (中文(简体) ), base64urlDecode |
| 捷克 | generateCodeVerifier, (中文(简体) ), generateCodeChallenge, (中文(简体) ), verifyCodeChallenge, (中文(简体) ), generatePkcePair (RFC 7636) (中文(简体) ) |
| 网络呼号 | signWebhookMessage, (中文(简体) ), webhookSignatureHeaders, (中文(简体) ), verifyWebhookSignature, (中文(简体) ), isStandardWebhookSecret, (中文(简体) ), generateWebhookMessageId (标准网呼) |
| 加密, 键 | encryptValue, (中文(简体) ), decryptValue, (中文(简体) ), signData, (中文(简体) ), verifyData, (中文(简体) ), KeyPersistence, (中文(简体) ), createKeyPersistence |
| 存储 | createStorage, (中文(简体) ), createMemoryStorage, (中文(简体) ), TypedStorage, (中文(简体) ), EncryptedTypedStorage,以及用于内存、Redis、Vercel KV、Upstash和文件系统的适配器 |
| 文件系统 | readFile, (中文(简体) ), writeFile, (中文(简体) ), mkdir, (中文(简体) ), stat, (中文(简体) ), fileExists, (中文(简体) ), readJSON, (中文(简体) ), writeJSON, (中文(简体) ), ensureDir, (中文(简体) ), isDirEmpty, (中文(简体) ), runCmd 还有更多 仅限节点.js; fs 首次使用的负载. |
| 进程 | spawnOwned, (中文(简体) ), reapOrphans, (中文(简体) ), watchParent, (中文(简体) ), watchPath, (中文(简体) ), stopProcessTree, (中文(简体) ), signalProcessTree仅限节点; child_process 首次使用的负载. |
| 环境 | getEnv, (中文(简体) ), isProduction, (中文(简体) ), isDevelopment, (中文(简体) ), isEdgeRuntime, (中文(简体) ), isServerless, (中文(简体) ), getRuntimeContext, (中文(简体) ), isNode, (中文(简体) ), isBrowser |
| 背景、事件 | AsyncLocalStorage, (中文(简体) ), EventEmitter浏览器 |
| 安全正则 | isPatternSafe, (中文(简体) ), createSafeRegExp, (中文(简体) ), safeTest, (中文(简体) ), safeMatch, (中文(简体) ), safeReplace,反对ReDoS(定期拒绝服务) |
| 模型工具调用 | processPlatformToolCalls,通过OpenAI,克洛德或Vercel AI工具呼叫您 callTool 函数并返回该平台格式的结果 |
| 机器标识 | getMachineId, (中文(简体) ), setMachineIdOverride, (中文(简体) ), getHostname |
相关软件包
@frontmcp/sdk:基于这些帮助者的架构.@frontmcp/auth:使用密码,PKCE和存储辅助.@frontmcp/storage-sqlite: 一个执行此软件包的 SQLite 存储适配器StorageAdapter。 。 。 .
捐款
资料来源: libs/utils欢迎提出问题和拉动请求;见 捐款额。 。 。 .
许可证
阿帕奇2.0 (英语). 见 自由主义。 。 。 .