MCP服务器
MCPServer 是一个Sublime Text包,它通过本地HTTP从Sublime的Python运行库中公开MCP工具。
今天,它附带了用于未保存缓冲区的MCP工具:
list_open_buffersread_bufferclose_buffer
用例
- 直接从打开的未保存选项卡中读取临时草稿或提示。
- 在AI客户端中总结或细化草稿,然后将结果发送给另一个MCP,如Notion。
- 通过关闭消耗的划痕缓冲区来清理工作标签
close_buffer. - 构建轻量级编辑器自动化,而无需将一次性笔记保存到磁盘。
架构完全在进程中。默认情况下,它会启动:
- 崇高的桥梁
127.0.0.1:6123 - MCP端点打开
127.0.0.1:6124/mcp
不需要单独的Node或TypeScript MCP服务器。
需求
- Sublime Text 4版本
4171或更新版本 - 插件包与Python 3.8的兼容性
- 如果你想在本地运行repo测试,请使用Python 3.11+
- 可以与可流式传输的HTTP MCP端点通信的本地MCP客户端
项目布局
sublime_mcp_server/:桥接逻辑和进程内MCP HTTP服务器sublime_mcp_server_plugin.py:Sublime Text插件入口点messages.json和messages/*.txt:包控制安装和升级消息python_tests/:桥接和MCP行为的pytest覆盖率
安装Sublime插件
正常使用时,将打包好的工件安装到Sublime的 Installed Packages 文件夹。
在macOS上:
mkdir -p "$HOME/Library/Application Support/Sublime Text/Installed Packages"
cp dist/MCPServer.sublime-package \
"$HOME/Library/Application Support/Sublime Text/Installed Packages/MCPServer.sublime-package"如果您之前安装了未打包的开发副本,请先将其删除,这样Sublime就不会加载该包两次:
rm -rf "$HOME/Library/Application Support/Sublime Text/Packages/MCPServer"复制文件后重新启动Sublime Text。
打包版本包括存储库的跟踪 .python版本 文件位于包根目录,这样Sublime在加载存档时可以选择正确的Python运行时。
对于本地开发,您仍然可以在下使用解包结账 Packages/MCPServer,但现在这是一个仅用于开发的工作流程,而不是推荐的安装方法。
端口配置
该包从以下位置读取其主机和端口配置 MCPServer配置.
默认值:
{
"bridge_host": "127.0.0.1",
"bridge_port": 6123,
"mcp_host": "127.0.0.1",
"mcp_port": 6124
}要在Sublime文本中覆盖它们:
- 打开命令选项板。
- 跑
Preferences: MCPServer Settings. - 将您的覆盖放在右侧的用户设置窗格中。
- 重新启动Sublime Text。
例子:
{
"bridge_port": 7001,
"mcp_port": 7002
}使用同一主机时,网桥和MCP端口必须不同。
包装和发布
Sublime Text软件包有两种常见的发布路径:
- 包控制默认通道:在GitHub上发布此仓库,创建语义版本标签,如
0.2.5,并将存储库提交给包控制一次。批准后,未来的semver标签是用户接收更新的方式。 - 自定义分发:构建一个
.sublime-package存档并托管您自己的packages.json如果您不想使用包控件的默认通道,请使用通道。
此仓库现在包括面向发布的元数据:
- 中的中心包显示名称、MCP服务器名称、版本和描述 sublime_mcp服务器/__初始化__南美国家巴拉圭的缩写(Paraguay)
- 中的包控制安装和升级消息 messages.json
- 发布说明
0.2.5在 留言/0.2.5.txt
建议发布清单:
- 更新中的版本 pyproject.toml 和 sublime_mcp服务器/__初始化__南美国家巴拉圭的缩写(Paraguay).
- 在下面添加匹配的升级说明
messages/. - 建立一个
.sublime-packagerepo根目录中的工件:
python3 scripts/build_release.py- 跑
pytest和python3 -m py_compile sublime_mcp_server_plugin.py sublime_mcp_server/*.py. - 提交发布更改。
- 创建并推送一个semver标签,例如
0.2.5. - 如果这是第一次公开发布,请将GitHub存储库URL提交给包控制。
对于手动安装,请使用生成的 dist/MCPServer.sublime-package 文件。稳定的文件名使Sublime中的包名保持干净,构建器注入 package-metadata.json 因此描述和版本在包UI中可见。
验证插件是否正在运行
一旦Sublime重新启动,插件应启动两个本地主机服务:
GET http://127.0.0.1:6123/buffersPOST http://127.0.0.1:6124/mcp
检查桥:
curl -sf http://127.0.0.1:6123/buffers | python3 -m json.tool检查MCP端点:
curl -sf \
-X POST http://127.0.0.1:6124/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1.0.0"}}}' \
| python3 -m json.tool你应该看看 serverInfo.name 着手 sublime_mcp_server.
如果在设置中更改了端口,请使用这些值,而不是 6123 和 6124.
MCP客户端设置
此项目从Sublime内部通过HTTP为MCP提供服务,因此您的MCP客户端只需连接到插件的端点。
建议的MCP客户端配置:
{
"mcpServers": {
"sublime_mcp_server": {
"type": "http",
"url": "http://127.0.0.1:6124/mcp"
}
}
}可用工具
list_open_buffers
列出未保存的打开的Sublime缓冲区。每个缓冲区描述符包括:
buffer_idtitlewindow_idis_dirtysyntaxpreview
read_buffer
读取一个未保存的Sublime缓冲区的当前实时文本和元数据。
输入:
{
"buffer_id": "38"
}close_buffer
强制关闭未保存的Sublime缓冲区并丢弃其当前内容。
输入:
{
"buffer_id": "38"
}手动端到端检查
- 打开Sublime文本。
- 创建一个或多个新的未保存选项卡。
- 添加一些测试文本。
- 验证缓冲区列表:
curl -sf http://127.0.0.1:6123/buffers | python3 -m json.tool- 使用MCP客户端或直接JSON-RPC请求列出工具并读取缓冲区。
直接JSON-RPC示例:
curl -sf \
-X POST http://127.0.0.1:6124/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
| python3 -m json.toolcurl -sf \
-X POST http://127.0.0.1:6124/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"read_buffer","arguments":{"buffer_id":"38"}}}' \
| python3 -m json.toolcurl -sf \
-X POST http://127.0.0.1:6124/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"close_buffer","arguments":{"buffer_id":"38"}}}' \
| python3 -m json.tool发展
运行测试:
pytest检查语法:
python3 -m py_compile sublime_mcp_server_plugin.py sublime_mcp_server/*.py