MCP 实验项目
本仓库包含一些我正在探索的 MCP(Model Context Protocol)服务器,用于在 Mac 上通过大语言模型(LLMs)执行 Bash 和 AppleScript 命令。我使用 Claude Desktop 客户端进行了测试。
示例用法
当工具正确配置并加载到 Claude Desktop 后,你可以让 Claude 执行新的任务。在受限模式下可用的工具包括:
say
:请说“Hello World!”
whoami
:当前运行的用户是谁?
在任意执行模式下(如下所述),你可以让 Claude 执行更复杂的操作。
环境要求
- macOS(AppleScript 工具必需)
- Claude Desktop 或其他 MCP 客户端
- Python 3.13 或更高版本
- Python 的
mcp
包
- 测试所需的
pytest
包
安装步骤
- 克隆仓库:
- 创建并激活虚拟环境:
- 安装所需的依赖项:
- 配置 Mac 上的 Claude Desktop 以加载服务器。
i. 修改配置文件,路径为:
~/Library/Application Support/Claude/claude_desktop_config.json
。ii. 本仓库中提供了一个示例配置文件
claude_decktop_config.example.json
。iii. 确保
command
和 args
字段指向正确的 Python 解释器和脚本路径。iv. 确保
MCP_EXECUTION_MODE
设置为所需的安全级别。任意执行模式
[!警告] 将环境变量MCP_EXECUTION_MODE
设置为arbitrary
将允许服务器执行客户端(LLM)生成的任意代码。这存在安全风险,可能导致意外后果。建议在沙盒环境中使用此模式。
要启用任意执行模式,将环境变量
MCP_EXECUTION_MODE
设置为 arbitrary
。此时客户端将暴露两个额外的工具:execute_bash
:以当前用户身份运行任意 Bash 脚本并返回结果。
execute_applescript
:以当前用户身份运行任意 AppleScript 脚本并返回结果。
文件结构
applescript.py
:定义execute_applescript
工具的服务器脚本,使用 AppleScript 完成任务。
bash.py
:定义execute_bash
工具的服务器脚本,使用 Bash 完成任务。
claude_desktop_config.example.json
:MCP 服务器的示例配置文件。你的配置文件可能位于~/Library/Application Support/Claude
。
requirements.txt
:项目的 Python 依赖项。
test
:用于 applescript 和 bash 工具的 Pytest 单元测试。
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
致谢
本项目由 Jordan Perr-Sauer 创建。
GitHub Copilot(使用 GPT-4o 和 Claude 3.5 Sonnet)生成了本仓库中的部分内容。
- Author:waytomcp
- URL:https://www.waytomcp.com/article/jordanperr/mcp-experiments
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!