Token导航 LogoToken导航

MCP Server · AI代理

Bb Applescript MCP Server

一个通过AppleScript使LLM客户端与macOS应用程序交互的模型上下文协议服务器,提供安全、可控的脚本执行环境。

未说明官方级别未说明来源级核验工具 0
TypeScriptClaudeAI代理Claude Desktop

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
Beyond-Better
提供方
Beyond-Better

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

5

仓库热度

收录来源

1 个

MCP World

选型结论

Bb Applescript MCP Server 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,适配 Claude Desktop、Claude,没有现成的安装命令;接入前要先准备 OAuth 授权。

分类

AI代理

传输方式

未说明

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

AppleScript MCP 服务器

一个模型上下文协议(MCP)服务器,它使大型语言模型(LLM)客户端能够通过AppleScript与macOS应用程序进行交互。该服务器是使用(后续内容未给出,但基于前文,可推测为“某种技术或框架构建的”)构建的 @beyondbetter/bb-mcp-server 翻译为中文可以是:“超越更好的/bb-mcp服务器” 或者根据上下文简化为 “超越更好(项目/组织)的MCP服务器”,具体翻译可能需要根据“beyondbetter”和“bb-mcp-server”在实际应用中的具体含义来调整。如果“beyondbetter”是一个特定项目或组织的名称,那么翻译时可能需要保留其原名或采用官方翻译。同样,“mcp-server”也可能是一个特定技术或服务的名称,需要根据实际情况来确定最准确的翻译 该服务器提供安全、受控的预定义脚本执行环境,并可选地支持任意脚本执行。

特点/功能

  • 🔒 默认安全默认情况下禁用任意脚本执行
  • 📦 插件架构模块化设计,配备任务导向的插件
  • 🛠️ 标准工具阅读字典,检查权限,Finder 操作
  • 📝 BBEdit 集成创建笔记本和项目
  • ⏱️ 超时保护可配置的超时设置,带有硬性限制
  • 📄 结构化错误与大型语言模型(LLM)友好的提示相结合的一致错误处理
  • 📊 性能支持编译脚本和基于模板的脚本

先决条件

  • Deno(注:Deno是一个JavaScript和TypeScript运行时,由Ryan Dahl开发,可直接在浏览器或服务器上运行,此处仅作为名称翻译,不涉及具体功能或背景介绍)版本2.5.0或更高版本
  • macOS(发音为 /ˈmækOS/,中文常直接称为“苹果电脑操作系统”或简称“苹果系统”)执行AppleScript所需
  • 应用程序任何支持AppleEvents的macOS应用程序(可脚本化应用程序)

- 示例:Finder(内置)、BBEdit、Mail、Safari 等。 - 此服务器默认包含Finder和BBEdit的插件 - 你可以为任何可脚本化的应用程序创建插件

快速入门

选项1:直接从JSR运行(推荐)

无需安装! 只需Deno和一个配置文件。

1. 安装Deno(如需)
curl -fsSL https://deno.land/install.sh | sh
2. 在Beyond Better中进行配置

全局配置 (适用于所有项目):

  1. 打开BB设置
  2. 转到“MCP 服务器”选项卡
  3. 点击“配置服务器”
  4. 添加新服务器,使用:

- 服务器ID: applescript - 显示名称: AppleScript Tools - 运输类型: STDIO (Local Process) - 命令: deno - 论点;论据:

     run
     --allow-all
     --unstable-kv
     jsr:@beyondbetter/bb-applescript-mcp-server

项目级配置 (仅限特定项目):

  1. 在BB中打开你的项目
  2. 前往项目设置 → “MCP 服务器”
  3. 启用服务器以供 AppleScript Tools
3. 开始使用

就是这样!服务器直接从JSR运行,无需下载或安装。

Alternative: Claude Desktop Configuration

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
	"mcpServers": {
		"applescript": {
			"command": "deno",
			"args": [
				"run",
				"--allow-all",
				"--unstable-kv",
				"jsr:@beyondbetter/bb-applescript-mcp-server"
			]
		}
	}
}

重启Claude桌面应用。

4. 可选:配置

默认情况下,服务器以安全默认设置运行:

  • 任意脚本执行: 残疾的
  • 所有标准插件: 启用
  • 默认超时设置: 30秒默认,最长5分钟

要进行自定义,请在BB的MCP服务器配置中添加环境变量:

在BB设置 → MCP服务器 → 编辑服务器 → 环境变量中:

关键字值描述
LOG_LEVELinfo设置为 debug 用于查看详细日志
ENABLE_ARBITRARY_SCRIPTSfalse设置为 true 启用 run_script 工具
PLUGINS_ALLOWED_LIST(空)逗号分隔的列表,用于加载特定插件
PLUGINS_BLOCKED_LIST(空)用逗号分隔的列表,用于阻止插件

选项2:从本地仓库运行

对于开发或定制:

1. 克隆并设置
# Clone the repository
git clone https://github.com/your-username/bb-mcp-applescript.git
cd bb-mcp-applescript/server

# Copy environment template
cp .env.example .env
2. 配置环境

编辑 .env 进行定制:

# Basic Configuration
MCP_TRANSPORT=stdio
LOG_LEVEL=info

# Plugin Control
PLUGINS_ALLOWED_LIST=        # Empty = load all plugins
PLUGINS_BLOCKED_LIST=        # Block specific plugins

# Safety (IMPORTANT)
ENABLE_ARBITRARY_SCRIPTS=false  # Set to true to enable run_script tool

# Timeouts
APPLESCRIPT_TIMEOUT_DEFAULT=30000   # 30 seconds
APPLESCRIPT_TIMEOUT_MAX=300000      # 5 minutes
3. 运行服务器
# Development mode (with auto-reload)
deno task dev

# Production mode
deno task start
4. 在Beyond Better中进行配置

全局配置:

  1. 打开BB设置(或项目设置)
  2. 转到“MCP 服务器”选项卡
  3. 添加新服务器:

- 服务器ID: applescript - 显示名称: AppleScript Tools (Local Dev) - 运输类型: STDIO (Local Process) - 命令: deno - 论点;论据:

     run
     --allow-all
     --unstable-kv
     /absolute/path/to/bb-mcp-applescript/server/main.ts

- 环境变量 (可选): - LOG_LEVEL: debug - ENABLE_ARBITRARY_SCRIPTS: false

Alternative: Claude Desktop Configuration

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
	"mcpServers": {
		"applescript": {
			"command": "deno",
			"args": [
				"run",
				"--allow-all",
				"--unstable-kv",
				"/absolute/path/to/bb-mcp-applescript/server/main.ts"
			]
		}
	}
}

重启Claude桌面应用。

项目结构

server/
├── main.ts                          # Server entry point
├── deno.jsonc                       # Deno configuration
├── .env.example                     # Environment template
├── mcp_server_instructions.md       # LLM context/instructions
├── src/
│   ├── plugins/
│   │   ├── standard.plugin/         # Standard tools plugin
│   │   │   ├── plugin.ts            # Plugin implementation
│   │   │   └── scripts/             # AppleScript files
│   │   │       ├── read_dictionary.applescript
│   │   │       ├── check_permissions.applescript
│   │   │       └── finder/
│   │   │           ├── set_file_label.applescript
│   │   │           ├── get_file_label.applescript
│   │   │           ├── get_file_info_extended.applescript
│   │   │           ├── reveal_in_finder.applescript
│   │   │           └── get_selection.applescript
│   │   └── bbedit.plugin/           # BBEdit tools plugin
│   │       ├── plugin.ts
│   │       └── scripts/
│   │           ├── create_notebook.applescript
│   │           └── create_project.applescript
│   └── utils/
│       ├── scriptLoader.ts          # Script loading/discovery
│       ├── scriptRunner.ts          # Script execution
│       ├── templateRenderer.ts      # Template interpolation
│       └── errorHandler.ts          # Error standardization
└── tests/

可用工具

AppleScript 工具(标准插件)

🔧 运行脚本

状态默认禁用

执行任意 AppleScript 代码。

启用设置 ENABLE_ARBITRARY_SCRIPTS=true 在里面 .env

参数:

  • script执行AppleScript代码
  • timeout可选的超时时间(以毫秒为单位)

示例:

{
  script: 'tell application "Finder" to get name of startup disk',
  timeout: 5000
}
📖 读取字典

阅读一个应用程序的AppleScript词典,以了解其可脚本化的接口。

参数:

  • application应用程序名称(例如,“BBEdit”,“Finder”)
  • filter可选的过滤条件

- include.types要包含的类型数组 - include.names需包含的具体名称 - searchTerms模糊匹配的条件/术语 - format“full”或“summary”(默认:“summary”)

  • timeout可选的超时设置

示例:

{
  application: "BBEdit",
  filter: {
    include: { names: ["project", "notebook"] },
    searchTerms: ["create"],
    format: "summary"
  }
}
✅ 检查AppleScript权限

检查应用程序的自动化权限。

参数:

  • applications可选的应用程序名称数组(默认:\["Finder", "BBEdit", "Terminal"\])
  • timeout可选的超时时间

回报每个应用程序的权限状态,如有需要,附上说明。

Finder 工具(标准插件)

🏷️ 设置文件标签

为文件/文件夹设置Finder标签颜色。

参数:

  • paths文件/文件夹路径数组
  • labelIndex0=无,1=红色,2=橙色,3=黄色,4=绿色,5=蓝色,6=紫色,7=灰色
  • timeout可选的超时时间
🏷️ 获取文件标签

获取文件/文件夹的Finder标签颜色。

参数:

  • paths文件/文件夹路径数组
  • timeout可选超时时间
📊 获取文件详细信息

获取包含Spotlight注释、标签、标签等详细文件信息。

参数:

  • path文件或文件夹路径
  • timeout可选的超时时间
🔍 在Finder中显示

在Finder中显示并选择文件/文件夹。

参数:

  • paths要揭示的路径数组
  • timeout可选超时时间
📋 获取查找器选择项

获取Finder中当前选中的项目。

参数:

  • timeout可选超时时间

BBEdit 工具(BBEdit 插件)

📓 创建BB编辑笔记本

创建一个新的BBEdit笔记本。

参数:

  • name笔记本名称(必填)
  • location可选的保存位置(默认:~/Documents/BBEdit 笔记本/)
  • content可选的内容项数组

- type“文本”或“文件” - data文本内容或文件路径

  • open创建后是否自动打开(默认:true)
  • timeout可选的超时时间

示例:

{
  name: "Project Notes",
  content: [
    { type: "text", data: "Meeting notes..." },
    { type: "file", data: "/path/to/notes.txt" }
  ],
  open: true
}
📁 创建_bbedit项目

创建一个新的BBEdit项目。

参数:

  • name项目名称(必填)
  • location可选保存位置(默认:~/Documents/BBEdit Projects/)
  • items可选的文件/文件夹路径数组,用于添加
  • settings可选的项目设置(保留以供将来使用)
  • open创建后是否自动打开(默认:true)
  • timeout可选超时时间

示例:

{
  name: "Website Project",
  items: [
    "/Users/username/Projects/website/src",
    "/Users/username/Projects/website/docs"
  ],
  open: true
}

插件管理

插件加载策略

这台服务器使用的是 混合插件加载方法 自动适应运行时环境:

  • JSR模式当从JSR(例如。, jsr:@beyondbetter/bb-applescript-mcp-server):

- 内置插件(standard-tools、bbedit)是静态加载的 - 用户插件可以通过本地目录加载 PLUGINS_DISCOVERY_PATHS - 允许用户通过自定义插件扩展服务器功能

  • 本地模式当从本地目录运行时:

- 内置插件作为备用方案被静态加载 - 默认启用动态发现 - 在开发过程中支持热重载

服务器会自动检测其运行模式,并相应地配置插件加载。无需任何配置,即开即用!

📖 关于技术细节,见 插件加载文档

添加自定义插件

即使在通过JSR运行时,您也可以添加自己的插件:

  1. 创建一个插件目录: mkdir ~/my-applescript-plugins
  2. 添加您的插件文件(参见 插件指南)
  3. 设置环境变量: PLUGINS_DISCOVERY_PATHS=/path/to/your/plugins
  4. 重启服务器

您的自定义插件将与内置插件一起被发现并加载。

加载插件

插件会自动从(指定位置)发现 src/plugins/ 目录(本地模式)或静态加载(JSR模式)。

加载所有插件 (默认):

PLUGINS_ALLOWED_LIST=
PLUGINS_BLOCKED_LIST=

仅加载特定插件:

PLUGINS_ALLOWED_LIST=standard,bbedit
PLUGINS_BLOCKED_LIST=

加载除特定插件外的所有插件:

PLUGINS_ALLOWED_LIST=
PLUGINS_BLOCKED_LIST=experimental

创建自定义插件

插件允许您为任何可脚本化的 macOS 应用程序添加工具。请参阅完整指南:

📝 翻译成中文是:📝(这个符号本身没有直接对应的中文翻译,它通常表示“笔记”或“待办事项”等意思,具体含义需结合上下文理解。) 创建插件指南

Mail.app 插件的快速示例:

// src/plugins/mail.plugin/plugin.ts
import { AppPlugin, ToolRegistry, z } from 'jsr:@beyondbetter/bb-mcp-server';
import { findAndExecuteScript } from '../../utils/scriptLoader.ts';

export default {
	name: 'mail',
	version: '1.0.0',
	description: 'Tools for Mail.app',
	workflows: [],
	tools: [],

	async initialize(dependencies, toolRegistry, workflowRegistry) {
		const pluginDir = getPluginDir();
		
		toolRegistry.registerTool(
			'send_email',
			{
				title: 'Send Email',
				description: 'Create an email in Mail.app',
				category: 'Mail',
				inputSchema: {
					to: z.string().email().describe('Recipient'),
					subject: z.string().describe('Subject'),
					body: z.string().describe('Body'),
				},
			},
			async (args) => {
				// Runs scripts/send_email.applescript with template variables
				return await findAndExecuteScript(
					pluginDir,
					'send_email',
					{ to: args.to, subject: args.subject, body: args.body }
				);
			},
		);
	},
} as AppPlugin;

该指南涵盖:

  • 插件结构和文件命名
  • AppleScript 模板变量
  • 每个插件对应多个工具
  • 错误处理和调试
  • 完整的可运行示例

脚本开发

模板脚本

在(某处)使用模板变量 .applescript 文件:

-- my_script.applescript
tell application "Finder"
    set file label of (POSIX file ${filePath} as alias) to ${labelIndex}
end tell

变量会自动进行转义和类型转换:

  • 字符串用引号括起来,已转义
  • 数组转换为AppleScript列表: {"item1", "item2"}
  • 物体;对象转换为AppleScript记录: {key:"value"}
  • 空/未定义转换为 missing value

编译脚本

为了获得更好的性能,请使用编译后的脚本:

# Compile an AppleScript
osacompile -o my_script.scpt my_script.applescript

编译后的脚本无需编译开销即可直接运行。

错误处理

所有工具返回一致的错误结构:

{
	"success": false,
	"error": {
		"type": "permission|timeout|script_error|system_error|disabled",
		"message": "Human-readable error",
		"code": "ERR_CODE",
		"hint": "LLM-friendly suggestion",
		"details": "Technical details"
	},
	"metadata": {
		"executionTime": 123,
		"scriptPath": "/path/to/script",
		"timeoutUsed": 30000
	}
}

常见问题

权限被拒绝

解决方案授予自动化权限

  1. 使用 check_applescript_permissions 确定哪些应用程序需要权限
  2. 进入系统设置 > 隐私与安全 > 自动化
  3. 为MCP服务器进程启用自动化
脚本超时

解决方案增加超时时间或优化脚本

  • 设定得更高 timeout 参数
  • 检查 APPLESCRIPT_TIMEOUT_MAX 配置
  • 将复杂操作分解为更小的脚本
禁用运行脚本

解决方案在配置中启用

  • 设置 ENABLE_ARBITRARY_SCRIPTS=true 在里面 .env
  • 重启服务器
  • 注意安全影响

安全考虑因素

  1. 🔒 随意脚本默认情况下禁用。仅在信任LLM客户端时启用。
  2. 📁 文件系统脚本以服务器进程权限运行。
  3. 🎯 应用程序控制可以控制任何已授予自动化权限的应用程序。
  4. ⏱️ 超时限制始终强制执行以防止脚本失控。
  5. 📝 错误详情可能包含系统信息。请检查错误输出。

性能优化技巧

  • 使用 编译后的脚本 (.scpt) 对于常用操作
  • 设定;套装 适当的暂停时间 基于操作复杂性
  • 批处理操作 在可能的情况下(例如,一次性处理多个文件)
  • 缓存结果 用于只读操作(例如,字典读取)

测试

# Run tests
deno task test

# Run specific test file
deno test tests/scriptRunner.test.ts

做出贡献

这是一个展示示例,用于 @beyondbetter/bb-mcp-server 翻译为中文是:“超越更好的/bb-mcp服务器”。不过,这里的“beyondbetter”可能是一个特定项目或组织的名称,如果它有官方的中文译名,应该使用那个译名。同时,“bb-mcp-server”也可能是一个特定技术或服务的名称,具体翻译可能需要根据上下文或官方资料来确定。在没有具体上下文的情况下,上述翻译是一个较为通用的表述 图书馆。

欢迎投稿:

  1. 为仓库创建分支
  2. 创建一个特性分支
  3. 为新功能添加测试
  4. 提交拉取请求

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件

相关项目

支持

______________________________________________________________________

使用(某种材料/技术)建造 @beyondbetter/bb-mcp-server 翻译成中文可以是:“超越更好的 bb-mcp 服务器”。不过,这里的“beyondbetter”可能是一个特定项目或公司的名称,直接翻译可能无法准确传达其原意,因此在实际应用中,可能需要根据上下文或品牌的具体含义来调整翻译。如果“beyondbetter”是品牌名,且没有官方中文译名,通常会保留原英文名称,或者根据品牌的核心理念进行意译 - 一个强大的框架,用于构建支持插件、工作流和OAuth的MCP服务器。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

AppleScriptTypeScript本地部署macOS自动化LLM集成脚本执行插件架构

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到OAuth 授权的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Bb Applescript MCP Server

MCP World · 本页

0未说明未标注1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Bb Applescript MCP Server 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Bb Applescript MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Bb Applescript MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Bb Applescript MCP Server 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Bb Applescript MCP Server 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP