MCP Assist-LM Studio的MCP服务器
用Go编写的MCP(模型上下文协议)服务器,允许LLM使用终端命令并与文件系统交互。非常适合组织笔记和处理文件。
注: 这个项目是在人工智能的帮助下创建的。 俄语版本
特性
服务器提供以下工具:
- execute_命令 -执行任何终端命令(find、cat、echo、grep、ls、cd等)
- read_file -读取文件内容
- write_file -将内容写入文件
- list_directory -列出目录内容
- 查找文件 -按模式或名称查找文件
- create_directory -创建目录
- 删除文件 -删除文件和目录
- move_file -移动和重命名文件
安装
需求
- 达到1.21或更高
- LM Studio(最新版本)
建筑
cd /home/dastanaron/projects/mcp-assist
go mod tidy
go build -o mcp-assist ./cmd/mcp-assist或者在系统范围内安装:
go install ./cmd/mcp-assist连接到LM Studio
通过mcp.json配置
LM Studio使用 mcp.json 配置MCP服务器的文件。您需要直接编辑此文件。
第一步:打开mcp.json
在LM Studio中,找到编辑按钮 mcp.json 文件(通常在设置或MCP部分)。文件应该看起来像这样:
{
"mcpServers": {}
}步骤2:添加服务器配置
添加 mcp-assist 配置到 mcpServers 对象:
{
"mcpServers": {
"mcp-assist": {
"command": "/home/dastanaron/projects/mcp-assist/mcp-assist",
"args": [],
"env": {}
}
}
}重要提示:
- 替换路径
/home/dastanaron/projects/mcp-assist/mcp-assist带有可执行文件的实际路径 - 如果您是通过安装的
go install,路径将是:/home/dastanaron/go/bin/mcp-assist(或~/go/bin/mcp-assist)
步骤3:保存并重新启动
- 保存
mcp.json文件 - 重新启动LM Studio
- 在与模型的聊天中,尝试请求可用工具的列表或执行一个简单的命令
验证可执行路径
在添加到配置之前,请确保该文件存在:
ls -lh /home/dastanaron/projects/mcp-assist/mcp-assist如果找不到文件,请重新生成项目:
cd /home/dastanaron/projects/mcp-assist
go build -o mcp-assist ./cmd/mcp-assistLM Studio中的示例用法
连接后,您可以询问LLM:
- “查找当前目录中扩展名为.md的所有文件”
- “阅读README.md文件的内容”
- “创建一个名为'meeting-2024.txt'的新笔记,并在其中写下'meeting scheduled for tomorrow'”
- “执行/home/dastanaron/projects目录中的命令'ls-la'”
- “查找包含单词'TODO'的所有文件”
项目结构
mcp-assist/
├── cmd/
│ └── mcp-assist/
│ └── main.go # Main entry point
├── internal/
│ ├── handlers/
│ │ └── handlers.go # MCP protocol handlers
│ ├── mcp/
│ │ ├── server.go # Server structure
│ │ └── types.go # MCP protocol types
│ └── tools/
│ ├── tools.go # Tool definitions
│ └── implementations.go # Tool implementations
├── go.mod # Go dependencies
├── README.md # Documentation (English)
├── README.ru.md # Documentation (Russian)
├── QUICKSTART.md # Quick start guide (English)
├── QUICKSTART.ru.md # Quick start guide (Russian)
└── mcp-assist # Executable (after build)发展
添加新工具
要添加新工具,请执行以下操作:
- 将工具描述添加到
GetTools()功能在internal/tools/tools.go - 在中添加一个案例
Execute()功能在internal/tools/tools.go - 在中实现工具功能
internal/tools/implementations.go
测试
要手动测试服务器,请执行以下操作:
# Build the project
go build -o mcp-assist ./cmd/mcp-assist
# Test initialization
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | ./mcp-assist
# Test tools list (after initialization)
(echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}'; echo '{"jsonrpc":"2.0","id":2,"method":"tools/list"}') | ./mcp-assist连接前进行验证
确保可执行文件正常工作:
# Check that the file exists and is executable
ls -lh mcp-assist
# Check that it starts (should wait for input)
./mcp-assist &
sleep 1
kill %1安全
⚠️ 重要:此服务器可以完全访问您的文件系统,并可以执行任何终端命令。仅在受信任的环境中使用。
建议:
- 在没有额外保护的情况下,不要在生产服务器上使用
- 仅允许受信任的用户访问服务器
- 考虑对命令执行添加限制
许可证
MIT许可证-可自由用于您的项目。
支持
如果您遇到问题:
- 确保Go已安装并正常工作:
go version - 检查可执行文件的路径是否正确
- 确保LM Studio支持MCP(更新到最新版本)
- 检查LM Studio日志是否有错误
