Tavily Hikari MCP 服务端
使用说明(Markdown 格式)
- 项目简介
- Tavily Hikari 作为一个 MCP 服务器端实现,充当对接客户端的上下文服务代理。它通过按令牌(API Key)进行调度,向上游 MCP 端点转发请求,同时对请求进行头部清洗、密钥注入与审计日志记录,提供可观测的使用与配额信息。
- 主要功能点
- MCP 请求转发:接收 MCP 客户端的 JSON-RPC 风格请求,转发到上游 MCP 端点并返回处理结果。
- 令牌与密钥管理:提供创建、绑定、轮换、禁用、软删除等密钥/令牌的完整管理能力。
- 访问控制与认证:支持前置代理的 ForwardAuth、内置管理员登录,以及 Linux Do OAuth 登录等多种认证模式。
- 审计日志与统计:将请求日志写入 SQLite 数据库,包含请求元数据、响应体并进行脱敏处理;提供按 token、按时间维度的统计汇总。
- 资源与工具代理:支持与 MCP 相关的资源/工具交互,提供数据访问与外部功能的注册/执行能力。
- 安全与隐私:对转发的请求头进行筛选与重写,抹除敏感信息(如 api_key),并在日志中对 API Key 进行脱敏处理。
- Frontend 控制台(可选):自带 React/Vite SPA,用于实时可视化对 Key 健康、请求日志等的观测。
- 安装步骤
- 安装 Rust 1.91+(仓库使用 rust-toolchain 指定版本)
- 构建与运行:
- 进入仓库根目录,执行 cargo build --release 构建后产物 tavily-hikari
- 直接运行可通过 cargo run(在本地开发环境中)或使用发布的二进制镜像部署
- 数据库与存储
- 数据默认使用 SQLite,数据库文件路径通过 --db-path 指定;若需要持久化,请使用持久卷/外部存储并确保权限可写
- 启动参数示例
- 启动时可通过命令行参数覆盖默认值,例如绑定地址、端口、上游 MCP 端点、以及要使用的密钥列表等
- 服务器配置(给 MCP 客户端使用的配置说明) 说明:MCP 客户端需要配置 MCP 服务器的启动命令与参数以建立连接,配置格式为 JSON。下例给出准确且可直接用于文档理解的示例;实际客户端可能不需要包含所有字段,但以下字段覆盖了常见使用场景。 { "serverName": "TavilyHikari MCP Proxy", "command": [ "/usr/local/bin/tavily-hikari" ], "args": [ "--bind", "0.0.0.0", "--port", "8787", "--db-path", "/var/lib/tavily/tavily_proxy.db", "--upstream", "https://mcp.tavily.com/mcp", "--keys", "tvly-demo-key" ], "notes": "这是 MCP 服务器端的启动配置,包含服务器名称、可执行文件路径与运行参数。MCP 客户端在建立连接时需使用以上 server 信息来定位、认证并向服务器发送 MCP 请求。" }
- 基本使用方法
- 启动前准备
- 安装并配置所需依赖(Rust 工具链、数据库目录/权限等)
- 选择合适的上游 MCP 端点地址
- 运行与监控
- 启动服务器后,访问 /health 进行就绪检查
- 通过 /mcp 接口向上游 MCP 端点发起请求,查看响应
- 使用 /api/tokens、/api/keys 等管理接口进行密钥与令牌的管理
- 安全与合规
- 使用 ForwardAuth、内置管理员、或 Linux Do OAuth 等方式保护管理员 API
- 日志会脱敏处理 api_key 字段,确保敏感信息不会暴露在审计日志中
- 启动前准备