当前位置: 首页 > wzjs >正文

站内推广有哪些具体方式重庆网站开发公

站内推广有哪些具体方式,重庆网站开发公,门户网站是什么,什么公司时候做网站Desktop Extensions (DXT) 详解 什么是Desktop Extensions (DXT)? Desktop Extensions (DXT,桌面扩展) 是一种用于打包和分发本地MCP (Model Context Protocol) 服务器的标准化格式。它类似于Chrome扩展(.crx)或VS Code扩展(.vsix),允许用户…

Desktop Extensions (DXT) 详解

什么是Desktop Extensions (DXT)?

Desktop Extensions (DXT,桌面扩展) 是一种用于打包和分发本地MCP (Model Context Protocol) 服务器的标准化格式。它类似于Chrome扩展(.crx)或VS Code扩展(.vsix),允许用户通过单次点击安装本地MCP服务器。

Desktop Extensions​https://www.anthropic.com/engineering/desktop-extensions

DXT的核心是一个包含以下内容的ZIP压缩包: - 完整的本地MCP服务器代码/二进制文件 - 描述扩展功能和配置的manifest.json文件 - 其他资源文件(如图标、配置文件等)

DXT的主要特点

特点 (Feature)描述 (Description)优势 (Advantage)
单文件分发 (Single-file distribution)所有内容打包在一个.dxt文件中简化安装和分发过程
标准化配置 (Standardized configuration)通过manifest.json定义服务器配置消除手动配置错误
跨平台支持 (Cross-platform support)支持Node.js、Python和二进制服务器开发者可自由选择技术栈
用户配置集成 (User configuration integration)内置用户配置系统提供统一的配置界面
自动更新 (Automatic updates)支持扩展版本管理和更新确保用户使用最新版本

DXT使用方法

1. 安装CLI工具

npm install -g @anthropic-ai/dxt

2. 创建扩展

# 初始化新扩展
dxt init my-extension
cd my-extension# 开发你的MCP服务器代码
# (根据选择的服务器类型创建相应文件)# 打包扩展
dxt pack . my-extension.dxt

3. 签名扩展(可选)

# 自签名扩展(开发用途)
dxt sign my-extension.dxt --self-signed# 使用正式证书签名
dxt sign my-extension.dxt --cert cert.pem --key key.pem

4. 安装使用

生成的.dxt文件可直接在支持DXT格式的应用程序中安装使用。由于所有文件已预先打包,安装过程仅需解压即可。

Manifest定义详解

基本结构

{"dxt_version": "0.1","name": "my-extension","version": "1.0.0","description": "A simple MCP extension","author": {"name": "Extension Author"},"server": {"type": "node","entry_point": "server/index.js","mcp_config": {"command": "node","args": ["${__dirname}/server/index.js"]}}
}

关键字段说明

1. 元数据部分 (Metadata)

字段 (Field)类型 (Type)必填 (Required)描述 (Description)
dxt_versionstringDXT规范版本
namestring扩展的唯一标识名称
versionstring语义化版本号
descriptionstring简短描述
authorobject作者信息

2. 服务器配置 (Server Configuration)

"server": {"type": "python","entry_point": "server/main.py","mcp_config": {"command": "python","args": ["server/main.py"],"env": {"PYTHONPATH": "server/lib","API_KEY": "${user_config.api_key}"},"platform_overrides": {"win32": {"command": "python.exe"}}}
}

这里定义了服务端的核心配置,其中mcp_config部分是与 MCP 兼容的实际运行时配置,而外层的typeentry_point字段提供了更抽象的接口定义,为未来可能的扩展保留了灵活性。两者内容本质上是相关的,但外层配置提供了更高层次的抽象。

服务器类型支持:

  • node: Node.js服务器
  • python: Python服务器
  • binary: 预编译二进制

3. 用户配置 (User Configuration)

"user_config": {"api_key": {"type": "string","title": "API Key","description": "Your API key for authentication","sensitive": true,"required": true},"max_file_size": {"type": "number","title": "Maximum File Size (MB)","description": "Maximum file size to process","default": 10,"min": 1,"max": 100}
}

配置类型支持:

  • string: 文本输入
  • number: 数字输入
  • boolean: 复选框/开关
  • directory: 目录选择器
  • file: 文件选择器

directory 和 file 在实际类型定义里,其实是 string | string[ ] 。所以可以通过 multiple 参数来控制配置一个或者多个可访问的路径或者文件。

4. 工具和提示定义 (Tools and Prompts)

"tools": [{"name": "search_files","description": "Search for files in a directory"}
],
"prompts": [{"name": "explain_code","description": "Explain how code works","arguments": ["code", "language"],"text": "Explain this ${arguments.language} code:\n${arguments.code}"}
],
"tools_generated": true,
"prompts_generated": false

实际应用示例

文件搜索扩展示例

{"dxt_version": "0.1","name": "file-search","display_name": "File Search Extension","version": "1.0.0","description": "Allows searching files in specified directories","author": {"name": "Search Tools Inc.","email": "support@searchtools.com"},"server": {"type": "node","entry_point": "server/index.js","mcp_config": {"command": "node","args": ["${__dirname}/server/index.js"],"env": {"SEARCH_PATHS": "${user_config.search_dirs}"}}},"user_config": {"search_dirs": {"type": "directory","title": "Search Directories","description": "Directories to include in searches","multiple": true,"required": true,"default": ["${HOME}/Documents"]},"max_depth": {"type": "number","title": "Maximum Search Depth","description": "How many subdirectory levels to search","default": 3,"min": 1,"max": 10}},"tools": [{"name": "search_files","description": "Search for files by name or content"},{"name": "get_file_info","description": "Get information about a file"}],"compatibility": {"claude_desktop": ">=1.2.0","platforms": ["darwin", "win32", "linux"],"runtimes": {"node": ">=16.0.0"}}
}

以上是一个 manifest.json 文件的完整配置示例,供大家参考。

总结

Desktop Extensions (DXT,桌面扩展) 是一种创新的本地MCP服务器打包和分发格式,具有以下核心优势:

  1. 简化分发:将复杂配置封装为单文件,实现一键安装
  2. 标准化接口:通过manifest.json明确定义服务器能力和配置需求
  3. 跨平台支持:兼容Node.js、Python和二进制等多种服务器类型
  4. 用户友好:内置配置系统提供统一的用户界面
  5. 生态系统集成:支持工具和提示的声明,便于AI应用集成

DXT特别适合需要与桌面AI应用集成的本地服务场景,如:

  • 文件系统访问工具
  • 本地数据库查询接口
  • 专业软件集成插件
  • 自定义自动化工具

通过标准化和简化本地MCP服务器的分发流程,DXT有望成为AI桌面应用生态系统中重要的组成部分。

上手开发 DXT

关于 DXT 的使用操作,网上已有大量演示。今天我们将重点讲解如何利用官方 GitHub 库进行开发。

Anthropics DXThttps://github.com/anthropics/dxt

DXT 库主要提供了用于创建和打包 DXT 文件的接口,并且提供解压缩已打包的 DXT 文件并转换为 MCP server 的功能。

现有的解压缩和转换接口

1. 核心配置转换接口

库中提供了 getMcpConfigForManifest 函数,这是将 DXT 扩展转换为 MCP server 配置的核心接口: config.ts:

export async function getMcpConfigForManifest(options: GetMcpConfigForManifestOptions,
): Promise<McpServerConfig | undefined> 

该函数的主要功能包括:

  • 解析 DXT manifest 中的 mcp_config 配置:
  const baseConfig = manifest.server?.mcp_config;if (!baseConfig) {return undefined;}
  • 处理平台特定的配置覆盖:
  if (baseConfig.platform_overrides) {if (process.platform in baseConfig.platform_overrides) {const platformConfig = baseConfig.platform_overrides[process.platform];result.command = platformConfig.command || result.command;result.args = platformConfig.args || result.args;result.env = platformConfig.env || result.env;}}
  • 执行变量替换,包括 ${__dirname}${user_config.*} 等:
  const variables: Record<string, string | string[]> = {__dirname: extensionPath,pathSeparator,"/": pathSeparator,...systemDirs,};// Build merged configuration from defaults and user settingsconst mergedConfig: Record<string, unknown> = {};// First, add defaults from manifestif (manifest.user_config) {for (const [key, configOption] of Object.entries(manifest.user_config)) {if (configOption.default !== undefined) {mergedConfig[key] = configOption.default;}}}// Then, override with user settingsif (userConfig) {Object.assign(mergedConfig, userConfig);}// Add merged configuration variables for substitutionfor (const [key, value] of Object.entries(mergedConfig)) {// Convert user config to the format expected by variable substitutionconst userConfigKey = `user_config.${key}`;if (Array.isArray(value)) {// Keep arrays as arrays for proper expansionvariables[userConfigKey] = value.map(String);} else if (typeof value === "boolean") {// Convert booleans to "true"/"false" strings as per specvariables[userConfigKey] = value ? "true" : "false";} else {// Convert other types to stringsvariables[userConfigKey] = String(value);}}

2. 变量替换系统

DXT 系统支持多种变量替换,用于将打包的扩展适配到运行时环境: MANIFEST.md

支持的变量包括:

  • ${__dirname}: 扩展目录的绝对路径
  • ${HOME}${DESKTOP}${DOCUMENTS}${DOWNLOADS}: 系统目录
  • ${user_config.*}: 用户配置值
  • ${pathSeparator} 或 ${/}: 路径分隔符

架构分析

DXT 到 MCP Server 的转换流程

所以对于一个Desktop MCP Client 应用,典型的实现流程应当包括:

  1. 接收 .dxt 文件
  2. 解压缩 ZIP 档案
  3. 验证数字签名
  4. 解析 manifest.json
  5. 使用 getMcpConfigForManifest 生成 MCP 配置
  6. 启动 MCP server 进程

开源实现

由于 Claude Desktop 本身是闭源的,所以无法获知它的实际实现方式,所以我在我自己的开源项目 TUUI 中完整实现了一遍,这里提供一下使用效果:

配置界面需要配置允许访问的目录

file-system-node 默认提供了一系列用于访问本地路径的工具

LLM 自动编排工具调用来完成文件夹的访问和文件的写入

最后保持好习惯,所有代码都开源到了github:

https://github.com/AI-QL/tuui​​github.com/AI-QL/tuui

对于 Window 系统的小伙伴,可以安装 nodejs 之后,直接在最新 release 中下载 Portable 包和对应的两个 .dxt 文件示例来体验(注意:其中 file-system-node.dxt 这个官方包的 Allowed Directory 实际是个必须配置的参数。所以需要配置之后才能正常启动 MCP Server)

对于 MacOS 的小伙伴,就比较麻烦了,我在 README 中给出了一些 ISSUE 链接,需要魔改一下 node 的安装访问路径。由于对应的问题在开源社区还是 open 状态,所以我暂时也只能保持现状,等有了较为明确的结论再调试这部分。

好了,以上就是今天的内容,睡觉去了,又要秃了。。。。


文章转载自:

http://iIIJtvBu.gbcnz.cn
http://cAnmcD5L.gbcnz.cn
http://GlpcOamJ.gbcnz.cn
http://or5RClWe.gbcnz.cn
http://Ryeo4mPC.gbcnz.cn
http://0i226Tee.gbcnz.cn
http://z7GfrCjC.gbcnz.cn
http://F3VJlRW7.gbcnz.cn
http://DpmzbWzx.gbcnz.cn
http://clLFEQmi.gbcnz.cn
http://06fCR2Nt.gbcnz.cn
http://NDRuw72w.gbcnz.cn
http://J5MdauDk.gbcnz.cn
http://kxdkh5r2.gbcnz.cn
http://XAm5HD7d.gbcnz.cn
http://X6rXojmN.gbcnz.cn
http://2EJFNwKg.gbcnz.cn
http://CuzqNLRx.gbcnz.cn
http://t5b2LlAk.gbcnz.cn
http://WtoBBQNr.gbcnz.cn
http://RbHm6Efb.gbcnz.cn
http://t0a4lqHd.gbcnz.cn
http://Q8XinC4S.gbcnz.cn
http://iCEO697l.gbcnz.cn
http://sfwoPPAq.gbcnz.cn
http://p5R2IRcR.gbcnz.cn
http://qtDzYZ4S.gbcnz.cn
http://gWgDYoZb.gbcnz.cn
http://yJroRRJQ.gbcnz.cn
http://jOdwLPIB.gbcnz.cn
http://www.dtcms.com/wzjs/759784.html

相关文章:

  • 做爰全过程免费视频网站不需要写代码的网站开发软件
  • 搬瓦工vps建设网站广州安全教育平台官网登录
  • 网站建设策划书风险控制嘉兴网站免费制作
  • 购物网站ppt怎么做农村电商怎么赚钱
  • 大气网站图电子工程网校
  • 黄村专业网站开发公司网页生成图片
  • 石油化工工程建设人才招聘网站德州有名的网站建设公司
  • 光速网络网站网站每年续费费用
  • 济南建设网站制作优化分析网站cms系统排名
  • 专业建设网站哪个好互联网推广企业
  • 自己做简单网站cdr做网站
  • 教育类门户网站光纤做网站 移动不能访问电信
  • 建设网站查询密码网站如何做聚合页面
  • 网站设计平台 动易网络工程是学啥的
  • 网站手机版方案wordpress网站背景设置
  • 网站错误提示页设计wordpress 后台 模板
  • 寻找石家庄网站建设网站建设结束语
  • 网站运营工作的内容面试学校网站开发
  • 房管局 网站做房查贵阳酒店网站建设
  • 网站推广的基本方式温州网站设计服务
  • 微信网站开发视频教程黄金网站app视频下载小说
  • 广西柳州网站建设公司面包类网站设计
  • 餐饮网站系统做企业网站制作
  • 网站空间建站美工网站做兼职
  • 如何才能做好品牌网站建设自驾游网站建设方案
  • 优舟网站建设免费网络电视直播在线观看
  • 低成本网站制作施工企业向建设单位提供预付款担保产生的费用属于
  • 建设工程消防设计备案哪个网站wordpress邮箱验证
  • 哈尔滨网站建设市场wordpress修改注册
  • 17做网店类似网站正规拼多多代运营公司