Skip to main content
Glama
custom-headers-quickstart.md5.58 kB
# 自定义请求头快速开始指南 ## 概述 本指南展示如何在 mcp-swagger-server 中配置自定义请求头,用于代理 OpenAPI 接口时自动添加特定的 HTTP 头。 ## 快速开始 ### 1. 命令行方式 ```bash # 添加静态请求头 mcp-swagger-server \ --openapi https://api.example.com/swagger.json \ --custom-header "User-Agent=MCP-Client/1.0" \ --custom-header "X-Client-Version=1.0.0" # 添加环境变量请求头 mcp-swagger-server \ --openapi https://api.example.com/swagger.json \ --custom-header-env "X-Client-ID=CLIENT_ID" \ --custom-header-env "X-API-Source=API_SOURCE" # 启用调试模式 mcp-swagger-server \ --openapi https://api.example.com/swagger.json \ --custom-header "User-Agent=MCP-Client/1.0" \ --debug-headers ``` ### 2. 配置文件方式 创建配置文件 `config.json`: ```json { "openapi": "https://api.example.com/swagger.json", "transport": "stdio", "customHeaders": { "static": { "User-Agent": "MCP-Swagger-Client/1.0", "X-Client-Version": "1.0.0", "Accept": "application/json" }, "env": { "X-Client-ID": "CLIENT_ID", "X-Request-Source": "REQUEST_SOURCE" } }, "debugHeaders": true } ``` 运行命令: ```bash mcp-swagger-server --config config.json ``` ### 3. 环境变量方式 创建 `.env` 文件: ```bash # OpenAPI 配置 MCP_OPENAPI_URL=https://api.example.com/swagger.json MCP_TRANSPORT=stdio # 自定义请求头(格式:MCP_CUSTOM_HEADERS_<HEADER_NAME>=<VALUE>) MCP_CUSTOM_HEADERS_USER_AGENT=MCP-Client/1.0 MCP_CUSTOM_HEADERS_X_CLIENT_VERSION=1.0.0 MCP_CUSTOM_HEADERS_ACCEPT=application/json # 环境变量映射 CLIENT_ID=my-client-123 REQUEST_SOURCE=mcp-swagger-server ``` 运行命令: ```bash mcp-swagger-server --env .env ``` ## 常见用例 ### 1. API 客户端标识 ```json { "customHeaders": { "static": { "User-Agent": "MyApp/1.0", "X-Client-ID": "myapp-client", "X-API-Version": "v1" } } } ``` ### 2. 追踪和调试 ```json { "customHeaders": { "static": { "X-Request-Source": "mcp-swagger-server", "X-Debug-Mode": "true" }, "env": { "X-Trace-ID": "TRACE_ID", "X-Session-ID": "SESSION_ID" } } } ``` ### 3. 内容类型和编码 ```json { "customHeaders": { "static": { "Accept": "application/json", "Accept-Encoding": "gzip, deflate", "Accept-Language": "en-US,en;q=0.9" } } } ``` ## 进阶功能 ### 1. 条件请求头 ```json { "customHeaders": { "conditional": [ { "condition": "method === 'POST'", "headers": { "X-Request-Type": "mutation" } }, { "condition": "path.includes('/admin')", "headers": { "X-Admin-Request": "true" } } ] } } ``` ### 2. 动态请求头 ```json { "customHeaders": { "dynamic": { "X-Request-ID": "generateRequestId", "X-Timestamp": "generateTimestamp" } } } ``` 支持的预定义函数: - `generateRequestId`: 生成唯一请求ID - `generateTimestamp`: 生成ISO时间戳 - `generateUnixTimestamp`: 生成Unix时间戳 - `generateUUID`: 生成UUID v4 ## 重要说明 ### 1. 请求头优先级 1. **系统头**(如 Content-Type)- 最高优先级,不可覆盖 2. **认证头**(如 Authorization)- 由认证系统管理 3. **自定义头** - 用户配置的头 4. **默认头** - 系统默认值 ### 2. 受保护的请求头 以下请求头受到保护,不能被自定义头覆盖: - `content-type` - `content-length` - `host` - `connection` - `transfer-encoding` - `upgrade` ### 3. 与认证的区别 - **认证头**:专门用于身份验证,如 `Authorization: Bearer token` - **自定义头**:用于其他目的,如客户端标识、追踪、内容协商等 两者是独立的系统,可以同时使用。 ## 调试技巧 ### 1. 启用调试模式 ```bash mcp-swagger-server --debug-headers --openapi https://api.example.com/swagger.json ``` ### 2. 查看实际发送的请求头 调试模式会输出类似以下的信息: ``` Added static headers: { "User-Agent": "MCP-Client/1.0" } Added env headers: { "X-Client-ID": "client123" } Final custom headers: { "User-Agent": "MCP-Client/1.0", "X-Client-ID": "client123" } [GET /api/users] Final headers: { "Content-Type": "application/json", "User-Agent": "MCP-Client/1.0", "X-Client-ID": "client123" } ``` ### 3. 测试配置 使用工具如 `curl` 或 Postman 验证实际的 HTTP 请求是否包含了预期的请求头。 ## 最佳实践 1. **使用环境变量**管理敏感或环境特定的值 2. **启用调试模式**在开发时验证配置 3. **避免覆盖系统关键头**,特别是认证相关的头 4. **使用描述性的头名称**,便于调试和维护 5. **定期检查和更新**自定义头配置 ## 故障排除 ### 问题:自定义头没有生效 1. 检查是否与受保护的头名称冲突 2. 确认环境变量是否正确设置 3. 启用调试模式查看实际配置 4. 检查配置文件语法是否正确 ### 问题:环境变量头没有值 1. 确认环境变量确实存在 2. 检查环境变量名称是否正确 3. 确认 `.env` 文件路径正确 4. 使用 `echo $VARIABLE_NAME` 验证环境变量 ### 问题:配置文件不生效 1. 检查 JSON 语法是否正确 2. 确认文件路径正确 3. 验证文件权限 4. 检查配置文件编码格式 这个功能为您的 mcp-swagger-server 提供了强大的请求头自定义能力,可以满足各种 API 集成场景的需求。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zaizaizhao/mcp-swagger-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server