Windows MCP服务器

一个为Windows环境设计的全面模型上下文协议(MCP)服务器,提供文件操作、任务管理、数据库查询和系统监控等强大的系统集成功能。

  • by TBNilles
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 tbnilles/advanced-windows-mcp-server

使用说明

高级Windows MCP服务器

为Windows环境设计的综合模型上下文协议(MCP)服务器,为Claude Desktop提供强大的系统集成功能,包括文件操作、任务管理、数据库查询和系统监控。

🚀 特性

📝 个人生产力

  • 笔记管理器:使用持久存储创建、读取、列出和删除个人笔记
  • 任务管理器:创建和管理具有优先级、截止日期和完成跟踪的任务
  • 书签管理器:保存和组织带有标签和描述的网络书签

💻 系统操作

  • 文件操作:高级文件系统操作(读、写、复制、移动、删除、搜索)
  • 系统命令:执行具有安全限制的安全Windows系统命令
  • 进程监视器:监视正在运行的Windows进程
  • 系统信息:检索详细的Windows系统信息
  • 网络工具:网络配置显示和ping测试

🔧 开发工具

  • Git操作:Git存储库状态、日志和分支信息
  • HTTP请求:向外部API发出HTTP请求
  • 数据库查询:对集成SQLite数据库进行直接SQL查询

📋 先决条件

  • Windows 10/11 (Windows特定命令需要)
  • 转到1.19+ 从源头进行建设
  • 克劳德桌面 用于MCP集成
  • Git (可选,用于git操作工具)

🛠️ 安装

选项1:下载版本(推荐)

  1. 下载最新 mcp-server.exe 从 发布
  2. 将其放置在所需的目录中
  3. 配置Claude桌面(请参阅 配置)

选项2:从源代码构建

# Clone the repository
git clone https://github.com/TBNilles/advanced-windows-mcp.git
cd advanced-windows-mcp

# Build the executable
go build -o mcp-server.exe main.go

⚙️ 配置

Claude桌面设置

将服务器添加到Claude Desktop配置文件中:

位置: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "advanced-mcp-server": {
      "command": "C:\\path\\to\\your\\mcp-server.exe",
      "args": []
    }
  }
}

数据库位置

服务器在以下位置自动创建SQLite数据库:

%LOCALAPPDATA%\Claude\MCP\mcp_server.db

🎯 可用工具

工具 描述 主要功能
notes_manager 个人笔记管理 创建、阅读、列出、删除笔记
task_manager 任务跟踪系统 创建具有优先级和截止日期的任务
bookmark_manager 书签组织 保存带有描述和标签的URL
file_operations 文件系统操作 读取、写入、复制、移动、删除、搜索文件
system_command 安全系统命令 执行列入白名单的Windows命令
http_request HTTP客户端 发出GET/POST/PUT/DELETE请求
database_query 直接数据库访问 在集成数据库上执行SQL查询
git_operations Git存储库工具 状态、日志、分支信息
process_monitor 进程管理 列出正在运行的Windows进程
system_info 系统信息 操作系统、硬件和环境详细信息
network_info 网络实用程序 IP配置和连接测试

📖 使用示例

票据管理

Create a note about project ideas
List all my notes
Read note #1
Delete note #2

任务管理

Create a task "Review MCP documentation" with high priority due 2024-12-25
List all pending tasks
Mark task #1 as completed

文件操作

List files in C:\Projects
Read the contents of config.txt
Create a new file with some content
Search for *.go files in the current directory

系统操作

Show system information
List running processes  
Get network configuration
Ping google.com

开发工具

Show git status for this repository
Make an HTTP GET request to https://api.github.com
Query the database: SELECT * FROM notes WHERE title LIKE '%project%'

🏗️ 建筑

服务器遵循模块化架构,以实现可维护性和可扩展性:

advanced-windows-mcp/
├── main.go                 # Application entry point
├── server/
│   └── server.go          # Core MCP server logic
├── database/
│   └── database.go        # SQLite database management
├── types/
│   ├── types.go           # Tool result types
│   └── mcp.go            # MCP protocol types
└── tools/
    ├── helpers.go         # Shared utilities
    ├── notes.go          # Notes management
    ├── tasks.go          # Task management
    ├── bookmarks.go      # Bookmark management
    ├── system.go         # System commands & info
    ├── network.go        # Network operations
    ├── database.go       # Database queries
    ├── http.go           # HTTP requests
    ├── fileOperations.go # File system operations
    └── gitOperations.go  # Git repository operations

🔒 安全功能

命令白名单

系统命令仅限于安全白名单:

  • dir, echo, date, time, whoami
  • systeminfo, tasklist, ipconfig
  • netstat, ping, tree, type, ver, hostname

文件操作安全

  • 文件操作的可配置大小限制
  • 路径验证和清理
  • 文件修改的可选备份创建
  • 危险操作的安全检查(带超控选项)

数据库安全性

  • 无网络暴露的本地SQLite数据库
  • 参数化查询以防止SQL注入
  • 在适当的情况下采用只读访问模式

🚀 发展

添加新工具

  1. 在中创建新文件 tools/ 目录
  2. 使用签名实现工具功能:
    func ExecuteYourTool(arguments map[string]interface{}) (types.ToolResult, error)
    
  3. 将工具添加到 executeTool switch语句 server/server.go
  4. 将工具架构添加到 registerTools 在……里面 server/server.go

建造和测试

# Run tests
go test ./...

# Build for production
go build -ldflags="-s -w" -o mcp-server.exe main.go

# Test the server directly
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | ./mcp-server.exe

📊 数据库模式

备注表

CREATE TABLE notes (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    content TEXT NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

任务表

CREATE TABLE tasks (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    description TEXT,
    completed BOOLEAN DEFAULT FALSE,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    due_date DATETIME,
    priority TEXT DEFAULT 'medium'
);

书签表

CREATE TABLE bookmarks (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    url TEXT NOT NULL,
    description TEXT,
    tags TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

🐛 故障排除

常见问题

服务器无法启动

  • 检查路径是否正确 claude_desktop_config.json 是正确的
  • 确保可执行文件具有适当的权限
  • 验证Go依赖关系 go mod tidy

数据库错误

  • 确保中的写入权限 %LOCALAPPDATA%\Claude\MCP\
  • 检查磁盘空间可用性
  • 尝试删除数据库文件以重新创建它

工具验证错误

  • 完全重新启动克劳德桌面
  • 如果可能,清除克劳德桌面缓存
  • 验证可执行文件是否在代码更改后重建

调试模式

服务器记录到stderr,您可以捕获:

./mcp-server.exe 2> debug.log

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-tool)
  3. 提交您的更改(git commit -am 'Add amazing tool')
  4. 推到分支(git push origin feature/amazing-tool)
  5. 创建拉取请求

代码的风格

  • 遵循标准Go惯例
  • 使用 gofmt 用于格式化
  • 为导出的函数添加注释
  • 包括所有操作的错误处理

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

📞 支持


🔗 相关项目


内置于❤️ 克劳德桌面和MCP社区