# http-proxy **Repository Path**: smart-os/http-proxy ## Basic Information - **Project Name**: http-proxy - **Description**: 基于Go语言开发的MCP HTTP代理服务,专为AI工具提供HTTP请求能力 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-18 - **Last Updated**: 2025-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MCP HTTP代理服务 一个基于Go语言开发的MCP(Model Context Protocol)HTTP代理服务,专为AI工具提供HTTP请求能力。 ## 项目地址 🔗 **GitHub仓库**: [https://github.com/dreamSailing/http-proxy](https://github.com/dreamSailing/http-proxy) 🇨🇳 **Gitee镜像**: [https://gitee.com/smart-os/http-proxy](https://gitee.com/smart-os/http-proxy) ## 功能特性 - 🚀 **高性能HTTP代理**: 基于Go语言开发,支持高并发请求处理 - 🌐 **无限制访问**: 允许访问任何主机,支持所有HTTP方法和请求头 - 📝 **简洁日志**: 基于logrus的结构化日志系统,输出到控制台 - ⚙️ **硬编码配置**: 配置直接内置在代码中,无需外部配置文件 - 🔌 **MCP协议**: 完整实现MCP协议,与AI开发工具无缝集成 ## 系统要求 - Go 1.21 或更高版本 - 支持的操作系统:Windows、Linux、macOS - 内存:建议512MB以上 - 磁盘:100MB可用空间 ## 快速开始 ### 方式一:全局安装(推荐) #### 1. 从GitHub安装(推荐) ```bash # 直接从GitHub安装最新版本 go install github.com/dreamSailing/http-proxy/cmd/http-proxy@latest ``` **注意事项:** - 确保Go版本1.21或更高 - 确保`GOPATH/bin`在系统PATH中 - 如果网络连接有问题,可以尝试使用代理: ```bash # 使用goproxy.cn代理 GOPROXY=https://goproxy.cn,direct go install github.com/dreamSailing/http-proxy/cmd/http-proxy@latest # 或使用直接模式(跳过代理) GOPROXY=direct go install github.com/dreamSailing/http-proxy/cmd/http-proxy@latest ``` #### 2. 使用本地安装脚本 ##### Windows ```cmd install-local.bat ``` ##### Linux/macOS ```bash chmod +x install-local.sh ./install-local.sh ``` 该脚本会编译项目并将可执行文件安装到 GOPATH/bin,使其可以全局使用。 #### 3. 手动安装 ```bash # 编译项目 go build -o http-proxy.exe ./cmd/http-proxy # 复制到 GOPATH/bin copy http-proxy.exe "%GOPATH%\bin\http-proxy.exe" ``` #### 4. 使用全局命令 ```bash # 启动服务(配置已硬编码,无需配置文件) http-proxy ``` #### 5. 验证安装 检查命令是否可用: ```bash http-proxy -h ``` 如果显示帮助信息,说明安装成功。 #### 6. IDE集成(MCP配置) 在IDE的MCP配置中添加: ```json { "mcpServers": { "http-proxy": { "command": "http-proxy" } } } ``` **重要提示:** - 确保 `GOPATH/bin` 在系统 PATH 中 - 配置已硬编码,无需 `-config` 参数 - 服务通过标准输入输出进行MCP通信 ### 方式二:本地编译 #### 1. 安装依赖 ```bash # 克隆项目 git clone mcp-http-proxy cd mcp-http-proxy # 安装Go依赖 go mod tidy ``` #### 2. 编译和启动服务 ```bash # 编译项目 go build -o http-proxy.exe ./cmd/http-proxy # 启动服务(配置已硬编码,无需配置文件) .\http-proxy.exe ``` ### 4. 验证服务 MCP服务器通过标准输入输出进行通信,启动后会显示: ``` MCP HTTP Proxy Server listening on stdin/stdout MCP Server started ``` ## 项目结构 ``` mcp-http-proxy/ ├── cmd/ │ └── http-proxy/ # HTTP代理服务入口 ├── internal/ │ ├── mcp/ # MCP协议处理 │ └── proxy/ # HTTP代理引擎 ├── go.mod # Go模块文件 ├── go.sum # Go依赖锁定文件 ├── install-local.bat # Windows本地安装脚本 ├── install-local.sh # Linux/macOS本地安装脚本 └── README.md # 项目说明 ``` ## 配置说明 配置已硬编码到代码中,包含以下默认设置: - **MCP通信**: 通过标准输入输出进行通信 - **安全**: 无限制访问,允许所有主机和HTTP方法 - **日志**: INFO级别,JSON格式,输出到控制台 - **性能**: 高并发支持,优化的超时设置 ## API使用 ### MCP工具调用 服务提供 `http-proxy` 工具,支持发送HTTP请求: ```json { "tool": "http-proxy", "parameters": { "url": "https://api.example.com/data", "method": "GET", "headers": { "Authorization": "Bearer token", "Content-Type": "application/json" }, "body": "{\"key\": \"value\"}", "timeout": 30 } } ``` ### MCP工具 服务提供 `http-proxy` 工具,支持发送HTTP请求到外部API。 ## 开发指南 ### 添加新功能 1. 在 `internal/` 目录下创建新模块 2. 实现相应的接口和逻辑 3. 在 `main.go` 中集成新模块 4. 更新文档 ### 代码规范 - 使用Go标准代码格式:`go fmt` - 运行代码检查:`go vet` - 编写单元测试:`go test` - 遵循Go语言最佳实践 ### 构建和部署 ```bash # 构建HTTP代理服务 go build -o http-proxy.exe cmd/http-proxy/main.go # 交叉编译 GOOS=linux GOARCH=amd64 go build -o http-proxy-linux cmd/http-proxy/main.go GOOS=windows GOARCH=amd64 go build -o http-proxy.exe cmd/http-proxy/main.go # 运行测试 go test ./... ``` ## 故障排除 ### 常见问题 1. **全局安装问题** - 确保Go环境正确安装:`go version` - 检查GOPATH设置:`go env GOPATH` - 验证PATH包含GOPATH/bin:`echo $PATH`(Linux/macOS)或 `echo $env:PATH`(Windows) - 重新运行安装脚本:`install-local.bat`(Windows)或 `./install-local.sh`(Linux/macOS) 2. **服务启动失败** - 检查Go环境是否正确安装 - 查看控制台日志获取详细错误信息 - 确认没有其他进程占用标准输入输出 3. **HTTP请求问题** - 验证请求格式是否正确 - 检查网络连接是否正常 - 查看控制台日志获取详细错误信息 4. **MCP通信问题** - 确认MCP客户端正确连接 - 检查标准输入输出是否正常 - 验证JSON-RPC消息格式 - 查看控制台日志获取详细信息 ### 日志分析 日志直接输出到控制台,包含详细的运行信息: ```bash # 启动服务并查看日志 http-proxy # 将日志重定向到文件(可选) http-proxy > proxy.log 2>&1 # 实时查看重定向的日志 tail -f proxy.log ``` ## 性能优化 ### 配置优化 - 配置已优化为高性能默认值 - 支持高并发请求处理 - 日志输出到控制台,避免磁盘IO开销 ### 系统优化 - 增加系统文件描述符限制 - 调整Go运行时参数:`GOMAXPROCS` - 优化MCP消息处理性能 ## 安全建议 1. **网络安全** - 使用HTTPS加密传输 - 配置防火墙限制访问 - 定期更新SSL证书 2. **访问控制** - 定期审查访问日志 - 限制MCP客户端访问权限 - 监控服务使用情况 3. **数据安全** - 避免在控制台日志中记录敏感信息 - 监控异常访问行为 - 定期检查服务状态 ## 许可证 本项目采用 MIT 许可证,详见 LICENSE 文件。 ## 卸载 ### 全局安装卸载 删除全局命令: ```bash # 方式一:使用go clean(如果是通过go install安装的) go clean -i ./cmd/http-proxy # 方式二:手动删除 # Windows del "%GOPATH%\bin\http-proxy.exe" # Linux/macOS rm "$GOPATH/bin/http-proxy" ``` ### 本地编译卸载 直接删除编译生成的可执行文件: ```bash # Windows del http-proxy.exe # Linux/macOS rm http-proxy ``` ## 贡献 欢迎提交Issue和Pull Request来改进项目。在贡献代码前,请确保: 1. 代码符合Go语言规范 2. 添加必要的测试用例 3. 更新相关文档 4. 通过所有测试 ## 支持 如果您在使用过程中遇到问题,可以通过以下方式获取帮助: - 查看本文档的故障排除部分 - 提交GitHub Issue - 查看项目Wiki - 联系维护团队 --- **MCP HTTP代理服务** - 让AI开发更简单、更安全、更高效!